lkml.org 
[lkml]   [2008]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch 2/6] mmu_notifier: Callbacks to invalidate address ranges
    On Wed, Jan 30, 2008 at 02:37:20PM +0100, Andrea Arcangeli wrote:
    > On Tue, Jan 29, 2008 at 06:28:05PM -0600, Jack Steiner wrote:
    > > On Tue, Jan 29, 2008 at 04:20:50PM -0800, Christoph Lameter wrote:
    > > > On Wed, 30 Jan 2008, Andrea Arcangeli wrote:
    > > >
    > > > > > invalidate_range after populate allows access to memory for which ptes
    > > > > > were zapped and the refcount was released.
    > > > >
    > > > > The last refcount is released by the invalidate_range itself.
    > > >
    > > > That is true for your implementation and to address Robin's issues. Jack:
    > > > Is that true for the GRU?
    > >
    > > I'm not sure I understand the question. The GRU never (currently) takes
    > > a reference on a page. It has no mechanism for tracking pages that
    > > were exported to the external TLBs.
    >
    > If you don't have a pin, then things like invalidate_range in
    > remap_file_pages can't be safe as writes through the external TLBs can
    > keep going on pages in the freelist. For you to be safe w/o a
    > page-pin, you need to return in the direction of invalidate_page
    > inside ptep_clear_flush (or anyway before
    > page_cache_release/__free_page/put_page...). You're generally not safe
    > with any invalidate_range that may run after the page pointed by the
    > pte has been freed (or can be freed by the VM anytime because of being
    > unpinned cache).

    Yuck....

    I see what you mean. I need to review to mail to see why this changed
    but in the original discussions with Christoph, the invalidate_range
    callouts were suppose to be made BEFORE the pages were put on the freelist.


    --- jack


    \
     
     \ /
      Last update: 2008-01-30 15:47    [W:0.024 / U:59.796 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site