Do not depend on MAX_ORDER when grouping pages by mobility

Stephen Rothwell sfr at
Mon Nov 12 13:21:08 EST 2007

Hi Mel,

I discovered recently that a kernel built with ppc64_defconfig no longer
boots on legacy iSeries.  It did in 2.6.23.  I bisected down the commit
d9c2340052278d8eb2ffb16b0484f8f794def4de ("Do not depend on MAX_ORDER
when grouping pages by mobility") which fails while its parent is ok.
Also, an iseries_defconfig kernel will boot.  The reason it seem is
because on PowerPC 64 with CONFIG_HUGETLB_PAGE, HPAGE_SHIFT is not
constant and its value is determined at runtime early.

For legacy iSeries HPAGE_SHIFT remains 0 which means that
HUGETLB_PAGE_ORDER becomes -PAGE_SHIFT and things degenerate badly.

I can enable CONFIG_HUGETLB_PAGE_SIZE_VARIABLE for PowerPC 64, but I
still need to know a good value for HPAGE_SHIFT.  Do you have a
suggestion?  Is there a better way to fix this problem?  There are places
in the PowerPC code that assume that HPAGE_SHIFT == 0 means that we have
no huge pages.

Stephen Rothwell                    sfr at
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <>

More information about the Linuxppc-dev mailing list