Re: [PATCH 1/2] Make page->private usable in compound pages V1

From: Christoph Lameter
Date: Fri Apr 06 2007 - 13:02:11 EST


On Thu, 5 Apr 2007, Andrew Morton wrote:

> > We add PageTail as an alias of PageReclaim. Compound pages cannot
> > currently be reclaimed. Because of the alias one needs to check
> > PageCompound first.
>
> So slub is using compound pages so that it can locate the head page in
> higher-order pages, whereas slab uses per-object (or per-order-0-page?)
> metadata for that?

Both SLAB and SLUB use compound pages.

>
> I see four instances of
>
> + page = virt_to_page(p);
> +
> + if (unlikely(PageCompound(page)))
> + page = page->first_page;
>
> A new virt_to_head_page() is needed.

Ok.

> Sigh. We're seeing rather a lot of churn to accommodate slub. Do we
> actually have any justification for all this? If we end up deciding to
> merge slub and to deprecate then remove slab, what would our reasons have
> been?

This is not SLUB specific. SLAB does the same. SLAB does special casing
for page size slabs and does not allow slab debugging because it would
use page->private if debugging would be enabled. Which would get into
trouble on i386.

If you want less SLUB churn on other fronts then I can add the special
casing for PAGE_SIZE slabs back into SLUB. Then we keep all the
inconsistencies in SLAB use in the code.

I'd rather clean up the stuff and then also remove the special casing from
SLAB.


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