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