From: Joel Fernandes <joel@joelfernandes.org>
To: "Paul E. McKenney" <paulmck@kernel.org>
Cc: Uladzislau Rezki <urezki@gmail.com>,
rcu@vger.kernel.org, linux-kernel@vger.kernel.org,
rushikesh.s.kadam@intel.com, neeraj.iitr10@gmail.com,
frederic@kernel.org, rostedt@goodmis.org,
vineeth@bitbyteword.org
Subject: Re: [PATCH v2 8/8] rcu/kfree: Fix kfree_rcu_shrink_count() return value
Date: Tue, 28 Jun 2022 16:56:14 +0000 [thread overview]
Message-ID: <YrsyrmDbfnkpfDEP@google.com> (raw)
In-Reply-To: <20220627214359.GQ1790663@paulmck-ThinkPad-P17-Gen-1>
On Mon, Jun 27, 2022 at 02:43:59PM -0700, Paul E. McKenney wrote:
> On Mon, Jun 27, 2022 at 09:18:13PM +0000, Joel Fernandes wrote:
> > On Mon, Jun 27, 2022 at 01:59:07PM -0700, Paul E. McKenney wrote:
> > > On Mon, Jun 27, 2022 at 08:56:43PM +0200, Uladzislau Rezki wrote:
> > > > > As per the comments in include/linux/shrinker.h, .count_objects callback
> > > > > should return the number of freeable items, but if there are no objects
> > > > > to free, SHRINK_EMPTY should be returned. The only time 0 is returned
> > > > > should be when we are unable to determine the number of objects, or the
> > > > > cache should be skipped for another reason.
> > > > >
> > > > > Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
> > > > > ---
> > > > > kernel/rcu/tree.c | 2 +-
> > > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
> > > > > index 711679d10cbb..935788e8d2d7 100644
> > > > > --- a/kernel/rcu/tree.c
> > > > > +++ b/kernel/rcu/tree.c
> > > > > @@ -3722,7 +3722,7 @@ kfree_rcu_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
> > > > > atomic_set(&krcp->backoff_page_cache_fill, 1);
> > > > > }
> > > > >
> > > > > - return count;
> > > > > + return count == 0 ? SHRINK_EMPTY : count;
> > > > > }
> > > > >
> > > > > static unsigned long
> > > > > --
> > > > > 2.37.0.rc0.104.g0611611a94-goog
> > > > >
> > > > Looks good to me!
> > > >
> > > > Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
> > >
> > > Now that you mention it, this does look independent of the rest of
> > > the series. I have pulled it in with Uladzislau's Reviewed-by.
> >
> > Thanks Paul and Vlad!
> >
> > Paul, apologies for being quiet. I have been working on the series and the
> > review comments carefully. I appreciate your help with this work.
>
> Not a problem. After all, this stuff is changing some of the trickier
> parts of RCU. We must therefore assume that some significant time and
> effort will be required to get it right.
To your point about trickier parts of RCU, the v2 series though I tested it
before submitting is now giving me strange results with rcuscale. Sometimes
laziness does not seem to be in effect (as pointed out by rcuscale), other
times I am seeing stalls.
So I have to carefully look through all of this again. I am not sure why I
was not seeing these issues with the exact same code before (frustrated).
thanks,
- Joel
next prev parent reply other threads:[~2022-06-28 16:57 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-22 22:50 [PATCH v2 0/8] Implement call_rcu_lazy() and miscellaneous fixes Joel Fernandes (Google)
2022-06-22 22:50 ` [PATCH v2 1/1] context_tracking: Use arch_atomic_read() in __ct_state for KASAN Joel Fernandes (Google)
2022-06-22 22:58 ` Joel Fernandes
2022-06-22 22:50 ` [PATCH v2 1/8] rcu: Introduce call_rcu_lazy() API implementation Joel Fernandes (Google)
2022-06-22 23:18 ` Joel Fernandes
2022-06-26 4:00 ` Paul E. McKenney
2022-06-23 1:38 ` kernel test robot
2022-06-26 4:00 ` Paul E. McKenney
2022-07-08 18:43 ` Joel Fernandes
2022-07-08 23:10 ` Paul E. McKenney
2022-07-10 2:26 ` Joel Fernandes
2022-07-10 16:03 ` Paul E. McKenney
2022-07-12 20:53 ` Joel Fernandes
2022-07-12 21:04 ` Paul E. McKenney
2022-07-12 21:10 ` Joel Fernandes
2022-07-12 22:41 ` Paul E. McKenney
2022-06-29 11:53 ` Frederic Weisbecker
2022-06-29 17:05 ` Paul E. McKenney
2022-06-29 20:29 ` Joel Fernandes
2022-06-29 22:01 ` Frederic Weisbecker
2022-06-30 14:08 ` Joel Fernandes
2022-06-22 22:50 ` [PATCH v2 2/8] rcu: shrinker for lazy rcu Joel Fernandes (Google)
2022-06-22 22:50 ` [PATCH v2 3/8] fs: Move call_rcu() to call_rcu_lazy() in some paths Joel Fernandes (Google)
2022-06-22 22:50 ` [PATCH v2 4/8] rcu/nocb: Add option to force all call_rcu() to lazy Joel Fernandes (Google)
2022-06-22 22:50 ` [PATCH v2 5/8] rcu/nocb: Wake up gp thread when flushing Joel Fernandes (Google)
2022-06-26 4:06 ` Paul E. McKenney
2022-06-26 13:45 ` Joel Fernandes
2022-06-26 13:52 ` Paul E. McKenney
2022-06-26 14:37 ` Joel Fernandes
2022-06-22 22:51 ` [PATCH v2 6/8] rcuscale: Add test for using call_rcu_lazy() to emulate kfree_rcu() Joel Fernandes (Google)
2022-06-23 2:09 ` kernel test robot
2022-06-23 3:00 ` kernel test robot
2022-06-23 8:10 ` kernel test robot
2022-06-26 4:13 ` Paul E. McKenney
2022-07-08 4:25 ` Joel Fernandes
2022-07-08 23:06 ` Paul E. McKenney
2022-07-12 20:27 ` Joel Fernandes
2022-07-12 20:58 ` Paul E. McKenney
2022-07-12 21:15 ` Joel Fernandes
2022-07-12 22:41 ` Paul E. McKenney
2022-06-22 22:51 ` [PATCH v2 7/8] rcu/nocb: Rewrite deferred wake up logic to be more clean Joel Fernandes (Google)
2022-06-22 22:51 ` [PATCH v2 8/8] rcu/kfree: Fix kfree_rcu_shrink_count() return value Joel Fernandes (Google)
2022-06-26 4:17 ` Paul E. McKenney
2022-06-27 18:56 ` Uladzislau Rezki
2022-06-27 20:59 ` Paul E. McKenney
2022-06-27 21:18 ` Joel Fernandes
2022-06-27 21:43 ` Paul E. McKenney
2022-06-28 16:56 ` Joel Fernandes [this message]
2022-06-28 21:13 ` Joel Fernandes
2022-06-29 16:56 ` Paul E. McKenney
2022-06-29 19:47 ` Joel Fernandes
2022-06-29 21:07 ` Paul E. McKenney
2022-06-30 14:25 ` Joel Fernandes
2022-06-30 15:29 ` Paul E. McKenney
2022-06-29 16:52 ` Paul E. McKenney
2022-06-26 3:12 ` [PATCH v2 0/8] Implement call_rcu_lazy() and miscellaneous fixes Paul E. McKenney
2022-07-08 4:17 ` Joel Fernandes
2022-07-08 22:45 ` Paul E. McKenney
2022-07-10 1:38 ` Joel Fernandes
2022-07-10 15:47 ` Paul E. McKenney
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=YrsyrmDbfnkpfDEP@google.com \
--to=joel@joelfernandes.org \
--cc=frederic@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=neeraj.iitr10@gmail.com \
--cc=paulmck@kernel.org \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=rushikesh.s.kadam@intel.com \
--cc=urezki@gmail.com \
--cc=vineeth@bitbyteword.org \
/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.