]> err.no Git - linux-2.6/commit
[PATCH] Handle spurious page fault for hugetlb region
authorSeth, Rohit <rohit.seth@intel.com>
Tue, 18 Oct 2005 21:15:12 +0000 (14:15 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 19 Oct 2005 20:56:27 +0000 (13:56 -0700)
commit3359b54c8c07338f3a863d1109b42eebccdcf379
treef91edd52c71e57ce4b46e3875c9054666ca4e24c
parentbb7e257ef8d8ba43cab356aa1cc1b20d0106d45f
[PATCH] Handle spurious page fault for hugetlb region

The hugetlb pages are currently pre-faulted.  At the time of mmap of
hugepages, we populate the new PTEs.  It is possible that HW has already
cached some of the unused PTEs internally.  These stale entries never
get a chance to be purged in existing control flow.

This patch extends the check in page fault code for hugepages.  Check if
a faulted address falls with in size for the hugetlb file backing it.
We return VM_FAULT_MINOR for these cases (assuming that the arch
specific page-faulting code purges the stale entry for the archs that
need it).

Signed-off-by: Rohit Seth <rohit.seth@intel.com>
[ This is apparently arguably an ia64 port bug. But the code won't
  hurt, and for now it fixes a real problem on some ia64 machines ]

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
include/linux/hugetlb.h
mm/memory.c