Skip site navigation (1)Skip section navigation (2)
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>