On 28.09.23 18:24, Peter Xu wrote:
On Wed, Sep 27, 2023 at 03:29:35PM +0200, David Hildenbrand wrote:
if (!pte_same(*src_pte, orig_src_pte) ||
!pte_same(*dst_pte, orig_dst_pte) ||
folio_test_large(src_folio) ||
folio_estimated_sharers(src_folio) != 1) {
^ here you should check PageAnonExclusive. Please get rid of any implicit explicit/implcit mapcount checks.
David, is PageAnon 100% accurate now in the current tree?
IOW, can it be possible that the page has total_mapcount==1 but missing AnonExclusive bit in any possible way?
As described as reply to v1, without fork() and KSM, the PAE bit should stick around. If that's not the case, we should investigate why.
If we ever support the post-fork case (which the comment above remap_pages() excludes) we'll need good motivation why we'd want to make this overly-complicated feature even more complicated.