lkml.org 
[lkml]   [2023]   [May]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/8] mm: vmscan: move shrinker_debugfs_remove() before synchronize_srcu()
    Date
    From: Qi Zheng <zhengqi.arch@bytedance.com>

    The debugfs_remove_recursive() will wait for debugfs_file_put()
    to return, so there is no need to put it after synchronize_srcu()
    to wait for the rcu read-side critical section to exit.

    Just move it before synchronize_srcu(), which is also convenient
    to put the heavy synchronize_srcu() in the delayed work later.

    Signed-off-by: Qi Zheng <zhengqi.arch@bytedance.com>
    ---
    mm/vmscan.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/mm/vmscan.c b/mm/vmscan.c
    index eeca83e28c9b..a773e97e152e 100644
    --- a/mm/vmscan.c
    +++ b/mm/vmscan.c
    @@ -818,11 +818,11 @@ void unregister_shrinker(struct shrinker *shrinker)
    debugfs_entry = shrinker_debugfs_detach(shrinker, &debugfs_id);
    mutex_unlock(&shrinker_mutex);

    + shrinker_debugfs_remove(debugfs_entry, debugfs_id);
    +
    atomic_inc(&shrinker_srcu_generation);
    synchronize_srcu(&shrinker_srcu);

    - shrinker_debugfs_remove(debugfs_entry, debugfs_id);
    -
    kfree(shrinker->nr_deferred);
    shrinker->nr_deferred = NULL;
    }
    --
    2.30.2
    \
     
     \ /
      Last update: 2023-05-31 11:59    [W:2.383 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site