Re: [PATCH 1/2] mm,migration: Prevent rmap_walk_[anon|ksm] seeing the wrong VMA information

Linus Torvalds
2010-05-05T15:35:12Z

On Wed, 5 May 2010, Mel Gorman wrote:
>
> rmap_walk() appears to be the only one that takes multiple locks but it itself
> is not serialised. If there are more than one process calling rmap_walk()
> on different processes sharing the same VMAs, is there a guarantee they walk
> it in the same order?

So I had this notion of the list always getting deeper and us guaranteeing
the order in it, but you're right - that's not the 'same_anon_vma' list,
it's the 'same_vma' one.

Damn. So yeah, I don't see us guaranteeing any ordering guarantees. My
bad.

That said, I do wonder if we could _make_ the ordering reliable. I did
that for the 'same_vma' one, because I wanted to be able to verify that
chains were consistent (and we also needed to be able to find the "oldest
anon_vma" for the case of re-instantiating pages that migth exist in
multiple different anon_vma's).

Any ideas?

Linus