Messages in this thread | | | From | Linus Torvalds <> | Date | Tue, 8 Jan 2013 09:38:50 -0800 | Subject | Re: oops in copy_page_rep() |
| |
On Tue, Jan 8, 2013 at 9:30 AM, Kirill A. Shutemov <kirill@shutemov.name> wrote: > > Check difference between patch above and merged one -- a1dd450. > Merged patch is obviously broken: huge_pmd_set_accessed() can be called > only if the pmd is under splitting.
Ok, that's a totally different issue, and seems to be due to different versions (Andrew - any idea why
http://lkml.org/lkml/2012/10/25/402
and commit a1dd450bcb1a ("mm: thp: set the accessed flag for old pages on access fault") are different?
That said, I actually think that commit a1dd450bcb1a is correct: huge_pmd_set_accessed() can not *possibly* need to check the splitting issue, since it takes the page table lock and re-verifies that the pmd entry is identical, before just setting the access flags.
So that whole thing is irrelevant. huge_pmd_set_accessed() almost certainly simply doesn't care about splitting.
But look at commit d10e63f29488. That's the one that removes pmd_trans_splitting() entirely, and does it for the case that *does* seem to care, namely do_huge_pmd_wp_page().
Linus
| |