Messages in this thread |  | | Date | Fri, 26 Oct 2012 16:41:29 +0300 | | From | "Kirill A. Shutemov" <> | | Subject | Re: [PATCH 1/2] numa, mm: drop redundant check in do_huge_pmd_numa_page() |
| |
On Fri, Oct 26, 2012 at 03:08:05PM +0200, Peter Zijlstra wrote: > On Fri, 2012-10-26 at 15:54 +0300, Kirill A. Shutemov wrote: > > From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> > > > > We check if the pmd entry is the same as on pmd_trans_huge() in > > handle_mm_fault(). That's enough. > > > > Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> > > Ah indeed, Will mentioned something like this on IRC as well, I hadn't > gotten around to looking at it -- now have, thanks! > > Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> > > That said, where in handle_mm_fault() do we wait for a split to > complete? We have a pmd_trans_huge() && !pmd_trans_splitting(), so a > fault on a currently splitting pmd will fall through. > > Is it the return from the fault on unlikely(pmd_trans_huge()) ?
Yes, this code will catch it:
/* if an huge pmd materialized from under us just retry later */ if (unlikely(pmd_trans_huge(*pmd))) return 0;
If the pmd is under splitting it's still a pmd_trans_huge().
-- Kirill A. Shutemov [unhandled content-type:application/pgp-signature] |  |