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

Konstantin Khlebnikov
2020-01-18T08:04:29Z

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