Re: [PATCH v2 1/2] mm/rmap: fix and simplify reusing mergeable anon_vma as parent when fork

From: Konstantin Khlebnikov
Date: Sat Jan 18 2020 - 03:04:28 EST


On 15/01/2020 04.20, Wei Yang wrote:
On Tue, Jan 14, 2020 at 10:42:52PM +0800, Li Xinhai wrote:
On 2020-01-13Âat 19:07ÂKonstantin KhlebnikovÂwrote:


Because I want to keep both heuristics.
This seems most sane way of interaction between them.

Unfortunately even this patch is slightly broken.
Condition prev->anon_vma->parent == pvma->anon_vma doesn't guarantee that
prev vma has the same set of anon-vmas like current vma.
I.e. anon_vma_clone(vma, prev) might be not enough for keeping connectivity.

New patch is required?

My suggestion is separate the fix and new approach instead of mess them into
one patch.

Yep, it's messy. Maybe it's could be better to revert recent change,
apply second patch from this set and write something new after that.


It is necessary to call anon_vma_clone(vma,Âpvma) to link all anon_vma which
currently linked by pvma, then link the prev->anon_vma to vma. By this way,
connectivity of vma should be maintained, right?

Building such case isn't trivial job but I see nothing that could prevent it.