Re: [RFC] Use compound pages for higher order slab allocations.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 3 Dec 2005, Manfred Spraul wrote:

> Christoph Lameter wrote:
> 
> > +static inline struct page *virt_to_compound_page(const void *addr)
> > +{
> > +	struct page * page = virt_to_page(addr);
> > +
> > +	if (PageCompound(page))
> > +        	page = (struct page *)page_private(page);
> > +
> >  
> This would end up in every kmem_cache_free/kfree call. Is it really worth the
> effort, are the high order allocation a problem?

The use of compound pages allows the handling of the higher order 
allocated page as one unit in a generic slab independent way. Currently 
struct page elements have a slab specific meaning and must be 
inspected in a slab specific way to figure out where the 
higher order page starts. Having compound pages allows a generic handling
of higher order pages unifying f.e. hugepage handling with slab handling etc.

Not sure if this is worth it but it may make the handling of these pages 
easier for page migration, hotplug and bad memory relocation. Other 
endeavors that either scan struct page arrays or may start processing with 
any struct page also currently have to deal with the slab specific way of 
handling higher order pages.

> I'm against such a change without a clear proof that just using high order
> allocations is not possible.

We are doing it right now so its definitely possible.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux