diff options
| author | Zqiang <qiang.zhang@linux.dev> | 2025-11-17 20:53:11 +0800 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2025-11-17 05:16:10 -1000 |
| commit | 348d3c587ac6fa5aaa24ab5c71b7b5635c47e765 (patch) | |
| tree | bfcfb891b67a222e3d86c70a757988b457283fb6 | |
| parent | 1dcb98bbb7538d4b9015d47c934acdf5ea86045c (diff) | |
sched_ext: Use kvfree_rcu() to release per-cpu ksyncs object
The free_kick_syncs_rcu() rcu-callback only invoke kvfree() to
release per-cpu ksyncs object, this can use kvfree_rcu() replace
call_rcu() to release per-cpu ksyncs object in the free_kick_syncs().
Signed-off-by: Zqiang <qiang.zhang@linux.dev>
Signed-off-by: Tejun Heo <tj@kernel.org>
| -rw-r--r-- | kernel/sched/ext.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 918573f3f088..dca9ca0c1854 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -4161,13 +4161,6 @@ static const char *scx_exit_reason(enum scx_exit_kind kind) } } -static void free_kick_syncs_rcu(struct rcu_head *rcu) -{ - struct scx_kick_syncs *ksyncs = container_of(rcu, struct scx_kick_syncs, rcu); - - kvfree(ksyncs); -} - static void free_kick_syncs(void) { int cpu; @@ -4178,7 +4171,7 @@ static void free_kick_syncs(void) to_free = rcu_replace_pointer(*ksyncs, NULL, true); if (to_free) - call_rcu(&to_free->rcu, free_kick_syncs_rcu); + kvfree_rcu(to_free, rcu); } } |
