Messages in this thread | | | Subject | Re: [RFC/PATCH] mm/futex: Fix futex writes on archs with SW tracking of dirty & young | From | Peter Zijlstra <> | Date | Tue, 19 Jul 2011 13:10:24 +0200 |
| |
On Tue, 2011-07-19 at 14:29 +1000, Benjamin Herrenschmidt wrote: > The futex code currently attempts to write to user memory within > a pagefault disabled section, and if that fails, tries to fix it > up using get_user_pages(). > > This doesn't work on archs where the dirty and young bits are > maintained by software, since they will gate access permission > in the TLB, and will not be updated by gup(). > > In addition, there's an expectation on some archs that a > spurious write fault triggers a local TLB flush, and that is > missing from the picture as well. > > I decided that adding those "features" to gup() would be too much > for this already too complex function, and instead added a new > simpler fixup_user_fault() which is essentially a wrapper around > handle_mm_fault() which the futex code can call. > > Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
| |