All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joel Fernandes <joel@joelfernandes.org>
To: "Uladzislau Rezki (Sony)" <urezki@gmail.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
	"Paul E . McKenney" <paulmck@kernel.org>,
	RCU <rcu@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Oleksiy Avramchenko <oleksiy.avramchenko@sonymobile.com>
Subject: Re: [PATCH v1 6/6] mm/list_lru.c: remove kvfree_rcu_local() function
Date: Mon, 16 Mar 2020 11:49:55 -0400	[thread overview]
Message-ID: <20200316154955.GH190951@google.com> (raw)
In-Reply-To: <20200315181840.6966-7-urezki@gmail.com>

On Sun, Mar 15, 2020 at 07:18:40PM +0100, Uladzislau Rezki (Sony) wrote:
> Since there is newly introduced kvfree_rcu() API,
> there is no need in queuing and using call_rcu()
> to kvfree() an object after the GP.
> 
> Remove kvfree_rcu_local() function and replace
> call_rcu() by new kvfree_rcu() API that does
> the same but in more efficient way.

This patch LGTM:
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>

thanks,

 - Joel
> 
> Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
> ---
>  mm/list_lru.c | 13 +++----------
>  1 file changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/mm/list_lru.c b/mm/list_lru.c
> index 386424688f80..69becdb22408 100644
> --- a/mm/list_lru.c
> +++ b/mm/list_lru.c
> @@ -12,6 +12,7 @@
>  #include <linux/slab.h>
>  #include <linux/mutex.h>
>  #include <linux/memcontrol.h>
> +#include <linux/rcupdate.h>
>  #include "slab.h"
>  
>  #ifdef CONFIG_MEMCG_KMEM
> @@ -383,21 +384,13 @@ static void memcg_destroy_list_lru_node(struct list_lru_node *nlru)
>  	struct list_lru_memcg *memcg_lrus;
>  	/*
>  	 * This is called when shrinker has already been unregistered,
> -	 * and nobody can use it. So, there is no need to use kvfree_rcu_local().
> +	 * and nobody can use it. So, there is no need to use kvfree_rcu().
>  	 */
>  	memcg_lrus = rcu_dereference_protected(nlru->memcg_lrus, true);
>  	__memcg_destroy_list_lru_node(memcg_lrus, 0, memcg_nr_cache_ids);
>  	kvfree(memcg_lrus);
>  }
>  
> -static void kvfree_rcu_local(struct rcu_head *head)
> -{
> -	struct list_lru_memcg *mlru;
> -
> -	mlru = container_of(head, struct list_lru_memcg, rcu);
> -	kvfree(mlru);
> -}
> -
>  static int memcg_update_list_lru_node(struct list_lru_node *nlru,
>  				      int old_size, int new_size)
>  {
> @@ -429,7 +422,7 @@ static int memcg_update_list_lru_node(struct list_lru_node *nlru,
>  	rcu_assign_pointer(nlru->memcg_lrus, new);
>  	spin_unlock_irq(&nlru->lock);
>  
> -	call_rcu(&old->rcu, kvfree_rcu_local);
> +	kvfree_rcu(old, rcu);
>  	return 0;
>  }
>  
> -- 
> 2.20.1
> 

      reply	other threads:[~2020-03-16 15:50 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-15 18:18 [PATCH v1 0/6] Introduce kvfree_rcu() logic Uladzislau Rezki (Sony)
2020-03-15 18:18 ` [PATCH v1 1/6] mm/list_lru.c: rename kvfree_rcu() to local variant Uladzislau Rezki (Sony)
2020-03-15 18:18 ` [PATCH v1 2/6] rcu: introduce kvfree_rcu() interface Uladzislau Rezki (Sony)
2020-03-16 15:45   ` Joel Fernandes
2020-03-16 18:55     ` Uladzislau Rezki
2020-03-16 18:57       ` Joel Fernandes
2020-03-16 19:01         ` Joel Fernandes
2020-03-16 19:03         ` Uladzislau Rezki
2020-03-16 19:48           ` Joel Fernandes
2020-03-15 18:18 ` [PATCH v1 3/6] rcu: rename rcu_invoke_kfree_callback/rcu_kfree_callback Uladzislau Rezki (Sony)
2020-03-16 15:47   ` Joel Fernandes
2020-03-15 18:18 ` [PATCH v1 4/6] rcu: rename __is_kfree_rcu_offset() macro Uladzislau Rezki (Sony)
2020-03-16 15:48   ` Joel Fernandes
2020-03-15 18:18 ` [PATCH v1 5/6] rcu: rename kfree_call_rcu()/__kfree_rcu() Uladzislau Rezki (Sony)
2020-03-16 15:25   ` Joel Fernandes
2020-03-16 19:01     ` Uladzislau Rezki
2020-04-21  3:15       ` Andrew Morton
2020-04-21 12:03         ` Uladzislau Rezki
2020-04-22 23:03           ` Joel Fernandes
2020-04-22 23:16             ` Paul E. McKenney
2020-03-15 18:18 ` [PATCH v1 6/6] mm/list_lru.c: remove kvfree_rcu_local() function Uladzislau Rezki (Sony)
2020-03-16 15:49   ` Joel Fernandes [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200316154955.GH190951@google.com \
    --to=joel@joelfernandes.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleksiy.avramchenko@sonymobile.com \
    --cc=paulmck@kernel.org \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=urezki@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.