cvs commit: src/sys/fs/specfs spec_vnops.c

Marcel Moolenaar marcel at xcllnt.net
Wed Aug 27 20:42:07 PDT 2003


On Wed, Aug 27, 2003 at 11:20:31PM -0400, Jeff Roberson wrote:
> On Wed, 27 Aug 2003, Marcel Moolenaar wrote:
> 
> > On Wed, Aug 27, 2003 at 10:55:13PM -0400, Jeff Roberson wrote:
> > > On Wed, 27 Aug 2003, Marcel Moolenaar wrote:
> > >
> > > > marcel      2003/08/27 18:52:14 PDT
> > > >
> > > >   FreeBSD src repository
> > > >
> > > >   Modified files:
> > > >     sys/fs/specfs        spec_vnops.c
> > > >   Log:
> > > >   The valid field in struct vm_page can be of type unsigned long when
> > > >   32K pages are selected. In spec_getpages() change the printf format
> > > >   specifier and add an explicit cast so that we always print the field
> > > >   as a long type.
> > > >
> > > >   Revision  Changes    Path
> > > >   1.209     +2 -2      src/sys/fs/specfs/spec_vnops.c
> > >
> > > Are you aware of the UMA problems with 32k pages?
> >
> > No, what are the problems?
> >
> 
> It uses an 8 bit index to identify individual items in a slab.  This is to
> save space in place of the full pointer that is used in traditional slab
> allocators.  With an 8 bit index your smallest allocation on 4k pages is
> 16 bytes and 32 bytes on 8k.  It'd be 128 bytes on 32k.  You're going to
> have to conditionally compile UMA with 16bit indexes.

Ah, ok. This is not specific to 32K pages, really. It's just that
the internal fragmentation tends to reach unacceptable levels
when the page size is too large.

Have you measured the space overhead of using 16-bit indexes as
compared to using 8-bit indexes?

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel at xcllnt.net


More information about the cvs-src mailing list