lkml.org 
[lkml]   [2016]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH 4/5] mm: Use radix_tree_iter_retry()
    From
    Date
    On 01/27/2016 10:17 PM, Matthew Wilcox wrote:
    > From: Matthew Wilcox <willy@linux.intel.com>
    >
    > Instead of a 'goto restart', we can now use radix_tree_iter_retry()
    > to restart from our current position. This will make a difference
    > when there are more ways to happen across an indirect pointer. And it
    > eliminates some confusing gotos.
    >
    > Signed-off-by: Matthew Wilcox <willy@linux.intel.com>

    [...]

    > diff --git a/mm/shmem.c b/mm/shmem.c
    > index fa2ceb2d2655..6ec14b70d82d 100644
    > --- a/mm/shmem.c
    > +++ b/mm/shmem.c
    > @@ -388,8 +388,10 @@ restart:
    > * don't need to reset the counter, nor do we risk infinite
    > * restarts.
    > */
    > - if (radix_tree_deref_retry(page))
    > - goto restart;
    > + if (radix_tree_deref_retry(page)) {
    > + slot = radix_tree_iter_retry(&iter);
    > + continue;
    > + }
    >
    > if (radix_tree_exceptional_entry(page))
    > swapped++;

    This should be applied on top. There are no restarts anymore.

    ----8<----
    From 3b0bdd370b57fb6d83b213e140cd1fb0e8962af8 Mon Sep 17 00:00:00 2001
    From: Vlastimil Babka <vbabka@suse.cz>
    Date: Fri, 29 Jan 2016 15:41:31 +0100
    Subject: [PATCH] mm: Use radix_tree_iter_retry()-fix

    Remove now-obsolete-and-misleading comment.

    Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
    ---
    mm/shmem.c | 5 -----
    1 file changed, 5 deletions(-)

    diff --git a/mm/shmem.c b/mm/shmem.c
    index 8f89abd4eaee..4d758938340c 100644
    --- a/mm/shmem.c
    +++ b/mm/shmem.c
    @@ -382,11 +382,6 @@ unsigned long shmem_partial_swap_usage(struct address_space *mapping,

    page = radix_tree_deref_slot(slot);

    - /*
    - * This should only be possible to happen at index 0, so we
    - * don't need to reset the counter, nor do we risk infinite
    - * restarts.
    - */
    if (radix_tree_deref_retry(page)) {
    slot = radix_tree_iter_retry(&iter);
    continue;
    --
    2.7.0


    \
     
     \ /
      Last update: 2016-01-29 16:01    [W:3.696 / U:0.256 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site