lkml.org 
[lkml]   [2013]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: process 'stuck' at exit.
    From
    Date
    On Tue, 2013-12-10 at 14:33 -0800, Linus Torvalds wrote:
    > On Tue, Dec 10, 2013 at 2:19 PM, Linus Torvalds
    > <torvalds@linux-foundation.org> wrote:
    > >
    > > Shouldn't we do something like the attached?
    >
    > So I think that kernel/futex.c part of the patch might be a good idea,
    > but on x86-64 (which is what Dave is running), the
    >
    > if (end >> __VIRTUAL_MASK_SHIFT)
    >
    > test in get_user_pages_fast() should have been equivalent. And even on
    > 32-bit, we do check the _PAGE_USER bits in the page tables, so I guess
    > it's all good on a get_user_pages_fast() side.
    >
    > So never mind. It's not the address checking.
    >
    > And I think I see what's up.
    >
    > I think what happens is:
    > - get_user_pages_fast(address, 1, 1, &page) fails (because it's read-only)
    > - get_user_pages_fast(address, 1, 0, &page) succeeds and gets a large-page
    > - __get_user_pages_fast(address, 1, 1, &page) fails (because it's read-only).
    >
    > so what triggers this is likely that Dave now does large-pages, and
    > one of them is a read-only mapping.
    >
    > So I would suggest replacing the second "1" in the
    > __get_user_pages_fast() call with a "!ro" instead. So how about this
    > second patch instead (the access_ok() move remains).
    >
    > Comments?
    >

    You're too fast for me, but I'm trying to keep up.

    It was my understanding that access_ok() was an optimization for private
    futexes, but something more heavy weight was required for shared. I
    believe that was find_vma() in the past, but Peter Z changed that with
    fast gup. Trying to page that all in now and get the exact details....

    --
    Darren Hart
    Intel Open Source Technology Center
    Yocto Project - Linux Kernel




    \
     
     \ /
      Last update: 2013-12-11 00:01    [W:4.842 / U:0.308 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site