Use of contiguous physical memory in cxgbe driver

John Baldwin jhb at freebsd.org
Thu Feb 13 20:24:47 UTC 2014


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.

-- 
John Baldwin


More information about the freebsd-net mailing list