Wolfgang Wander wrote: > Andrew Morton wrote: > >> +avoiding-mmap-fragmentation-revert-unneeded-64-bit-changes-vs-x86_64-task_size-fixes-for-compatibility-mode-processes.patch >> > > > As a heads-up. > > This one breaks the fragmentation reduction patch in 32 bit emulation mode. > Our test case shows the standard 17 fragmented regions in > /proc/self/maps (as in > the 2.6 standard kernel) vs the 2 regions in 2.6.12-rc5-mm2 (and before). > > Somehow the new way of detecting 32 bit remulation mode seems to fail here. > > I'll try to figure out a fix. > Here is one possibility: Since rc6 the difference between TASK_UNMAPPED_64 and TASK_UNMAPPED_32 is gone and both are now merged into TASK_UNMAPPED_BASE. Therefore we can no longer check our local base against TASK_UNMAPPED_BASE to see if we are running in 32bit emulation mode. The appended patch uses other (hopefully the right) means. Tested on x86_64 in 32 and 64 mode (64 bit fragments as desired, 32 bit collapses as desired). Signed-off-by: Wolfgang Wander