It looks like there is a race in the do_wp_page() code that munlocks the old page after breaking up COW. The pte still points to that old page, so I don't see that we are protected against vmscan mlocking back the page right away. This can be easily worked around by moving that code to the end of do_wp_page(), after the pte has been pointed to the new page. Also, the corresponding code in __do_fault() seems entirely unnecessary, since there was never a pte pointing to the old page in our vma. Michel Lespinasse (2): mlock: fix race when munlocking pages in do_wp_page() mlock: do not munlock pages in __do_fault() mm/memory.c | 32 ++++++++++++-------------------- 1 files changed, 12 insertions(+), 20 deletions(-) -- 1.7.3.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>