Messages in this thread | | | Date | Thu, 10 Aug 2017 03:58:28 +0300 | From | "Kirill A. Shutemov" <> | Subject | Re: [PATCH 05/16] mm: Protect VMA modifications using VMA sequence count |
| |
On Wed, Aug 09, 2017 at 12:43:33PM +0200, Laurent Dufour wrote: > On 09/08/2017 12:12, Kirill A. Shutemov wrote: > > On Tue, Aug 08, 2017 at 04:35:38PM +0200, Laurent Dufour wrote: > >> The VMA sequence count has been introduced to allow fast detection of > >> VMA modification when running a page fault handler without holding > >> the mmap_sem. > >> > >> This patch provides protection agains the VMA modification done in : > >> - madvise() > >> - mremap() > >> - mpol_rebind_policy() > >> - vma_replace_policy() > >> - change_prot_numa() > >> - mlock(), munlock() > >> - mprotect() > >> - mmap_region() > >> - collapse_huge_page() > > > > I don't thinks it's anywhere near complete list of places where we touch > > vm_flags. What is your plan for the rest? > > The goal is only to protect places where change to the VMA is impacting the > page fault handling. If you think I missed one, please advise.
That's very fragile approach. We rely here too much on specific compiler behaviour.
Any write access to vm_flags can, in theory, be translated to several write accesses. For instance with setting vm_flags to 0 in the middle, which would result in sigfault on page fault to the vma.
Nothing (apart from common sense) prevents compiler from generating this kind of pattern.
-- Kirill A. Shutemov
| |