* [PATCH 1/1] rcu/kvfree: Do not run a page work if a cache is disabled
@ 2023-04-11 13:13 Uladzislau Rezki (Sony)
2023-04-12 4:49 ` Paul E. McKenney
0 siblings, 1 reply; 2+ messages in thread
From: Uladzislau Rezki (Sony) @ 2023-04-11 13:13 UTC (permalink / raw)
To: Paul E . McKenney
Cc: RCU, quic_neeraju, Boqun Feng, Joel Fernandes, LKML,
Uladzislau Rezki, Oleksiy Avramchenko, Frederic Weisbecker
By default the cache size is 5 pages per-cpu. But it can
be disabled at boot time by setting the rcu_min_cached_objs
to zero.
Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
---
kernel/rcu/tree.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 35be35f8236b..21e3d9dffde5 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -3246,6 +3246,10 @@ static void fill_page_cache_func(struct work_struct *work)
static void
run_page_cache_worker(struct kfree_rcu_cpu *krcp)
{
+ // If cache disabled, bail out.
+ if (!rcu_min_cached_objs)
+ return;
+
if (rcu_scheduler_active == RCU_SCHEDULER_RUNNING &&
!atomic_xchg(&krcp->work_in_progress, 1)) {
if (atomic_read(&krcp->backoff_page_cache_fill)) {
--
2.30.2
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH 1/1] rcu/kvfree: Do not run a page work if a cache is disabled
2023-04-11 13:13 [PATCH 1/1] rcu/kvfree: Do not run a page work if a cache is disabled Uladzislau Rezki (Sony)
@ 2023-04-12 4:49 ` Paul E. McKenney
0 siblings, 0 replies; 2+ messages in thread
From: Paul E. McKenney @ 2023-04-12 4:49 UTC (permalink / raw)
To: Uladzislau Rezki (Sony)
Cc: RCU, quic_neeraju, Boqun Feng, Joel Fernandes, LKML,
Oleksiy Avramchenko, Frederic Weisbecker
On Tue, Apr 11, 2023 at 03:13:41PM +0200, Uladzislau Rezki (Sony) wrote:
> By default the cache size is 5 pages per-cpu. But it can
> be disabled at boot time by setting the rcu_min_cached_objs
> to zero.
>
> Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
That does get rid of a needless hrtimer &c in that case, good!
I have queued this with the usual wordsmithing below, so please check
it.
Thanx, Paul
------------------------------------------------------------------------
commit 5e433764beec0134a9a677f399a6e4539eb8870d
Author: Uladzislau Rezki (Sony) <urezki@gmail.com>
Date: Tue Apr 11 15:13:41 2023 +0200
rcu/kvfree: Do not run a page work if a cache is disabled
By default the cache size is 5 pages per CPU, but it can be disabled at
boot time by setting the rcu_min_cached_objs to zero. When that happens,
the current code will uselessly set an hrtimer to schedule refilling this
cache with zero pages. This commit therefore streamlines this process
by simply refusing the set the hrtimer when rcu_min_cached_objs is zero.
Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 41daae3239b5..f855d2a85597 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -3247,6 +3247,10 @@ static void fill_page_cache_func(struct work_struct *work)
static void
run_page_cache_worker(struct kfree_rcu_cpu *krcp)
{
+ // If cache disabled, bail out.
+ if (!rcu_min_cached_objs)
+ return;
+
if (rcu_scheduler_active == RCU_SCHEDULER_RUNNING &&
!atomic_xchg(&krcp->work_in_progress, 1)) {
if (atomic_read(&krcp->backoff_page_cache_fill)) {
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-04-12 4:49 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-11 13:13 [PATCH 1/1] rcu/kvfree: Do not run a page work if a cache is disabled Uladzislau Rezki (Sony)
2023-04-12 4:49 ` Paul E. McKenney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®