Date: Thu, 13 Feb 2014 15:16:54 -0500 From: John Baldwin <jhb@freebsd.org> To: Adrian Chadd <adrian@freebsd.org> Cc: FreeBSD Net <freebsd-net@freebsd.org>, Garrett Wollman <wollman@freebsd.org>, Navdeep Parhar <np@freebsd.org>, "net@freebsd.org" <net@freebsd.org> Subject: Re: Use of contiguous physical memory in cxgbe driver Message-ID: <6154054.5G06XIekg6@ralph.baldwin.cx> In-Reply-To: <CAJ-VmokDb4dkhzO6NnYrFKKV2g-bau8H47h2g=wOkvGcqYzRow@mail.gmail.com> References: <21216.22944.314697.179039@hergotha.csail.mit.edu> <201402121446.19278.jhb@freebsd.org> <CAJ-VmokDb4dkhzO6NnYrFKKV2g-bau8H47h2g=wOkvGcqYzRow@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, February 12, 2014 03:36:38 PM Adrian Chadd wrote: > On 12 February 2014 11:46, John Baldwin <jhb@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6154054.5G06XIekg6>