On Fri, Oct 26, 2012 at 07:19:55AM +0100, Ni zhan Chen wrote:On 10/26/2012 12:44 AM, Will Deacon wrote:>From v2? I included something below my SoB. The code should do exactly theOn x86 memory accesses to pages without the ACCESSED flag set result in theCould you write changlog?
ACCESSED flag being set automatically. With the ARM architecture a page access
fault is raised instead (and it will continue to be raised until the ACCESSED
flag is set for the appropriate PTE/PMD).
For normal memory pages, handle_pte_fault will call pte_mkyoung (effectively
setting the ACCESSED flag). For transparent huge pages, pmd_mkyoung will only
be called for a write fault.
This patch ensures that faults on transparent hugepages which do not result
in a CoW update the access flags for the faulting pmd.
same as before, it's just rebased onto next so that I can play nicely with
Peter's patches.
The way handle_mm_fault is now structured after the numa changes means thatCc: Chris Metcalf <cmetcalf@xxxxxxxxxx>Could you explain why you not call pmd_trans_huge_lock to confirm the
Cc: Kirill A. Shutemov <kirill@xxxxxxxxxxxxx>
Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
---
Ok chaps, I rebased this thing onto today's next (which basically
necessitated a rewrite) so I've reluctantly dropped my acks and kindly
ask if you could eyeball the new code, especially where the locking is
concerned. In the numa code (do_huge_pmd_prot_none), Peter checks again
that the page is not splitting, but I can't see why that is required.
Cheers,
Will
pmd is splitting or stable as Andrea point out?
we only enter the huge pmd page aging code if the entry wasn't splitting
before taking the lock, so it seemed a bit gratuitous to jump through those
hoops again in pmd_trans_huge_lock.
Will