RE: [RFC] Demand faulting for large pages

From: Chen, Kenneth W
Date: Mon Aug 08 2005 - 17:38:09 EST


Adam Litke wrote on Monday, August 08, 2005 3:17 PM
> The reason for the VM_FAULT_SIGBUS default return is because I thought a
> fault on a pte_present hugetlb page was an invalid/unhandled fault.
> I'll have another think about races to the fault handler though.

Two threads fault on the same pte, one won the race, install a pte, 2nd
thread then walk the page table, found the pte inserted by the first
thread, exit with SIGBUS, kernel then kills the entire app with sigbus.


> I've definitely been able to produce some strange behavior on 2.6.7
> relative to your post about this topic here:
> http://www.ussg.iu.edu/hypermail/linux/kernel/0406.2/0234.html
> I confirmed the fix in 2.6.8 and also don't see the problem when using
> my demand fault patch. Do you have a copy of the program you used to
> generate the Oops in the post linked above so I can use it as a test
> case? I'd guess either the problem is gone entirely with demand
> faulting, or just harder to trigger.

Demanding paging doesn't solve this problem. It is related to how pmds
are freed.


- Ken

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/