lkml.org 
[lkml]   [2017]   [Aug]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [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

    \
     
     \ /
      Last update: 2017-08-10 02:59    [W:2.803 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site