Re: [patch] mm: fix anon_vma races

Hugh Dickins
2008-10-19T09:52:46Z

On Sat, 18 Oct 2008, Peter Zijlstra wrote:
>
> fault_creation:
>
> anon_vma_prepare()
> page_add_new_anon_rmap();
>
> expand_creation:
>
> anon_vma_prepare()
> anon_vma_lock();
>
> rmap_lookup:
>
> page_referenced()/try_to_unmap()
> page_lock_anon_vma()
>
> vma_lookup:
>
> vma_adjust()/vma_*
> vma->anon_vma
>
> teardown:
>
> unmap_vmas()
> zap_range()
> page_remove_rmap()
> free_page()
> free_pgtables()
> anon_vma_unlink()
> free_range()
>
> IOW we remove rmap, free the page (set mapping=NULL) and then unlink and
> free the anon_vma.
>
> But at that time vma->anon_vma is still set.
>
>
> head starts to hurt,..

Comprehension isn't my strong suit at the moment: I don't grasp
what problem you're seeing here - if you can spell it out in more
detail for me, I'd like to try stopping your head hurt - though not
at cost of making mine hurt more!

Hugh