There has to be a compromise between the bits used for sparsemem and the bits used for page->flags on 32-bit platforms. Using fewer bits means that the granularity of sections decreases, so they grow in size. This makes sparse less flexible. So, temporarily raise this so that we have a reasonable number of sections to test with. Larger numbers of sections let us find races and test boundaries with smaller machines. Signed-off-by: Dave Hansen --- memhotplug-dave/include/asm-i386/sparsemem.h | 2 +- memhotplug-dave/include/linux/mmzone.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff -puN include/asm-i386/mmzone.h~E3-for-debugging-more-FLAGS_RESERVED include/asm-i386/mmzone.h diff -puN include/linux/mmzone.h~E3-for-debugging-more-FLAGS_RESERVED include/linux/mmzone.h --- memhotplug/include/linux/mmzone.h~E3-for-debugging-more-FLAGS_RESERVED 2005-07-28 13:50:28.000000000 -0700 +++ memhotplug-dave/include/linux/mmzone.h 2005-07-28 13:50:28.000000000 -0700 @@ -458,7 +458,7 @@ extern struct pglist_data contig_page_da * with 32 bit page->flags field, we reserve 8 bits for node/zone info. * there are 3 zones (2 bits) and this leaves 8-2=6 bits for nodes. */ -#define FLAGS_RESERVED 8 +#define FLAGS_RESERVED 10 #elif BITS_PER_LONG == 64 /* diff -puN mm/Kconfig~E3-for-debugging-more-FLAGS_RESERVED mm/Kconfig diff -puN arch/i386/Kconfig~E3-for-debugging-more-FLAGS_RESERVED arch/i386/Kconfig diff -puN include/asm-i386/sparsemem.h~E3-for-debugging-more-FLAGS_RESERVED include/asm-i386/sparsemem.h --- memhotplug/include/asm-i386/sparsemem.h~E3-for-debugging-more-FLAGS_RESERVED 2005-07-28 13:50:28.000000000 -0700 +++ memhotplug-dave/include/asm-i386/sparsemem.h 2005-07-28 13:50:28.000000000 -0700 @@ -15,7 +15,7 @@ * MAX_PHYSMEM_BITS 2^N: how much memory we can have in that space */ #ifdef CONFIG_X86_PAE -#define SECTION_SIZE_BITS 30 +#define SECTION_SIZE_BITS 28 #define MAX_PHYSADDR_BITS 36 #define MAX_PHYSMEM_BITS 36 #else _