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