lkml.org 
[lkml]   [2009]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Question about x86/mm/gup.c's use of disabled interrupts
    Jeremy Fitzhardinge wrote:
    >>> Disabling the interrupt will prevent the tlb flush IPI from coming
    >>> in and flushing this cpu's tlb, but I don't see how it will prevent
    >>> some other cpu from actually updating the pte in the pagetable,
    >>> which is what we're concerned about here.
    >>
    >> The thread that cleared the pte holds the pte lock and is now waiting
    >> for the IPI. The thread that wants to update the pte will wait for
    >> the pte lock, thus also waits on the IPI and gup_fast()'s
    >> local_irq_enable(). I think.
    >
    > But hasn't it already done the pte update at that point?
    >
    > (I think this conversation really is moot because the kernel never
    > does P->P pte updates any more; its always P->N->P.)

    I thought you were concerned about cpu 0 doing a gup_fast(), cpu 1 doing
    P->N, and cpu 2 doing N->P. In this case cpu 2 is waiting on the pte lock.

    >>> Is this the only reason to disable interrupts?
    >>
    >> Another comment says it also prevents pagetable teardown.
    >
    > We could take a reference to the mm to get the same effect, no?
    >

    Won't stop munmap().

    --
    I have a truly marvellous patch that fixes the bug which this
    signature is too narrow to contain.



    \
     
     \ /
      Last update: 2009-03-18 22:43    [W:0.028 / U:59.952 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site