Message ID | 20220512030442.2530552-14-joel@joelfernandes.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Implement call_rcu_lazy() and miscellaneous fixes | expand |
On Thu, May 12, 2022 at 03:04:41AM +0000, Joel Fernandes (Google) 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 3828ac3bf1c4..f191542cdf5e 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c > @@ -3637,7 +3637,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.36.0.550.gb090851708-goog > Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com> -- Uladzisalu Rezki
On Fri, May 13, 2022 at 04:54:02PM +0200, Uladzislau Rezki wrote: > On Thu, May 12, 2022 at 03:04:41AM +0000, Joel Fernandes (Google) 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 3828ac3bf1c4..f191542cdf5e 100644 > > --- a/kernel/rcu/tree.c > > +++ b/kernel/rcu/tree.c > > @@ -3637,7 +3637,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.36.0.550.gb090851708-goog > > > Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com> thanks! - Joel > > -- > Uladzisalu Rezki
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 3828ac3bf1c4..f191542cdf5e 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -3637,7 +3637,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
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(-)