lkml.org 
[lkml]   [2004]   [Mar]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: 2.6.5-rc2-aa5

    Andrew Moroton <akpm@osld.org> wrote:
    >> Andrea Arcangeli <andrea@suse.de> wrote:
    >>
    >> Notably there is a BUG_ON(page->mapping) triggering in
    >> page_remove_rmap in the pagecache case. that could be ex-pagecache
    >> being
    >> removed from pagecache before all ptes have been zapped, infact the
    >> page_remove_rmap triggers in the vmtruncate path.
    >
    > Confused. vmtruncate zaps the ptes before removing pages from
    > pagecache,
    > so I'd expect a non-null ->mapping in page_remove_rmap() is a very
    > common
    > thing. truncate a file which someone has mmapped and it'll happen every
    > time, will it not?

    Andrea missed a not (!) in the BUG_ON. It is BUG_ON(!page->mapping).

    The race Andrea hit _may_ be the mremap vs. vmtruncate race I hit:

    http://marc.theaimsgroup.com/?l=linux-mm&m=107720111303624

    A first truncate that raced with mremap and left an orphaned pte.
    The following truncate tried to clear the orphaned pte, and reached
    page_remove_rmap with page->mapping == NULL.

    Yes. It can happen in all 2.4 and 2.6 kernels.

    Hugh has a better fix than mine for the mremap vs. truncate race
    in his anobjrmap 7/6 patch.

    http://marc.theaimsgroup.com/?l=linux-kernel&m=107998825716363

    With prio_tree we have to modify Hugh's fix, though.

    Thanks,
    Rajesh

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:02    [W:0.020 / U:33.048 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site