Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Jan 2014 14:27:14 -0800
From:      John-Mark Gurney <jmg@funkthat.com>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        Garrett Wollman <wollman@csail.mit.edu>, FreeBSD Net <freebsd-net@freebsd.org>
Subject:   Re: Big physically contiguous mbuf clusters
Message-ID:  <20140129222714.GK93141@funkthat.com>
In-Reply-To: <CAJ-VmomC5Ge3JwfUsgMrJ_rGqiYxfxR4wWzn5A-KAu7HBsueMw@mail.gmail.com>
References:  <21225.20047.947384.390241@khavrinen.csail.mit.edu> <CAJ-VmomC5Ge3JwfUsgMrJ_rGqiYxfxR4wWzn5A-KAu7HBsueMw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Adrian Chadd wrote this message on Wed, Jan 29, 2014 at 14:21 -0800:
> On 29 January 2014 10:54, Garrett Wollman <wollman@csail.mit.edu> wrote:
> > Resolved: that mbuf clusters longer than one page ought not be
> > supported.  There is too much physical-memory fragmentation for them
> > to be of use on a moderately active server.  9k mbufs are especially
> > bad, since in the fragmented case they waste 3k per allocation.
> 
> I've been wondering whether it'd be feasible to teach the physical
> memory allocator about >page sized allocations and to create zones of
> slightly more physically contiguous memory.
> 
> For servers with lots of memory we could then keep these around and
> only dip into them for temporary allocations (eg not VM pages that may
> be held for some unknown amount of time.)
> 
> Question is - can we enforce that kind of behaviour?

It shouldn't be too hard to do...  Since everything pretty much goes
through uma we can adopt a scheme similar to what Solaris does (read
Magazines and Vmem: Extending the Slab Allocator to Many CPUs and
Arbitrary Resources)...  Instead of dealing w/ page size allocations,
everything is larger, say 16KB, and broken down from there...

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140129222714.GK93141>