Use of contiguous physical memory in cxgbe driver
Konstantin Belousov
kostikbel at gmail.com
Thu Feb 13 20:42:48 UTC 2014
On Thu, Feb 13, 2014 at 03:16:54PM -0500, John Baldwin wrote:
> On Wednesday, February 12, 2014 03:36:38 PM Adrian Chadd wrote:
> > On 12 February 2014 11:46, John Baldwin <jhb at freebsd.org> wrote:
> > > Is this because UMA keeps lots of mbufs cached in your workload? The
> > > physmem buddy allocator certainly seeks to minimize fragmentation.
> > > However, it can't go yank memory out of UMA caches to do so.
> >
> > I'll ask you on irc, but where's that happening? My read of the code
> > is that once it grabs a larger page and fragments it, it's lost.
>
> It seeks to use the smallest size possible however. It is true that we don't
> attempt to move a busy page elsewhere to free up memory (e.g. if you had a 2MB
> free chunk with one busy 4k page in the middle), but we can't really do that
> safely. Given the existence of the direct map, we can't relocate a page and
> be sure that we have also relocated all possible pointers to it.
Well, this depends on the current use of the page. We would be unable
to page-out if the statement is completely true. We could relocate
the 'user' pages, i.e. pages belonging to active or inactive queues,
which are not hold/busy/wired. But I agree that for the load discussed,
this is a minority and we indeed cannot relocate the content of the
unmanaged page.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20140213/7a49a386/attachment.sig>
More information about the freebsd-net
mailing list