[no subject]

From: Zhang, Yanmin
Date: Mon Oct 18 2004 - 20:14:02 EST


In base kernel 2.6.9-rc4, function hugetlb_get_unmapped_area failed to
find an unmapped area while unmapped area is huge. That's because
hugetlb_get_unmapped_area just searches forward from
mm->free_area_cache. If reaching TASK_SIZE, it does not go back to
TASK_UNMAPPED_BASE, just returns -ENOMEM.
The attachment is a simple case to trigger it on IA32 machine.

The other attachment is the patch to fix it.
1) Add a specific hugetlb_get_unmapped_area on i386.
2) Generic hugetlb_get_unmapped_area is also fixed.

Signed-off-by: Zhang Yanmin <yanmin.zhang@xxxxxxxxx>

<<case.tar>> <<hugetlb_unmapped_area_2.6.9_rc4_i386.patch.diff>>

Attachment: case.tar
Description: case.tar

Attachment: hugetlb_unmapped_area_2.6.9_rc4_i386.patch.diff
Description: hugetlb_unmapped_area_2.6.9_rc4_i386.patch.diff