THP, rmap and page_referenced_one()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have been wondering about the following:

Before the THP work, the if (vma->vm_flags & VM_LOCKED) test in
page_referenced_one() was placed after the page_check_address() call,
but now it is placed above it. Could this be a problem ?

My understanding is that the page_check_address() check may return
false positives - for example, if an anon page was created before a
process forked, rmap will indicate that the page could be mapped in
both of the processes, even though one of them might have since broken
COW. What would happen if the child process mlocks the corresponding
VMA ? my understanding is that this would break COW, but not cause
rmap to be updated, so the parent's page would still be marked in rmap
as being possibly mapped in the children's VM_LOCKED vma. With the
VM_LOCKED check now placed above the page_check_address() call, this
would cause vmscan to see both the parent's and the child's pages as
being unevictable.

Am I missing something there ? In particular, I am not sure if marking
the children's VMA as mlocked would somehow cause rmap to realize it
can't share pages with the parent anymore (but I don't think that's
the case, and it could cause other issues if it was...)

-- 
Michel "Walken" Lespinasse
A program is never fully debugged until the last user dies.

--
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>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]