rcu/nocb: De-offload and re-offload support v3
From: | Frederic Weisbecker <frederic-AT-kernel.org> | |
To: | LKML <linux-kernel-AT-vger.kernel.org> | |
Subject: | [PATCH 00/16] rcu/nocb: De-offload and re-offload support v3 | |
Date: | Fri, 23 Oct 2020 16:46:33 +0200 | |
Message-ID: | <20201023144649.53046-1-frederic@kernel.org> | |
Cc: | Frederic Weisbecker <frederic-AT-kernel.org>, Steven Rostedt <rostedt-AT-goodmis.org>, Mathieu Desnoyers <mathieu.desnoyers-AT-efficios.com>, "Paul E . McKenney" <paulmck-AT-kernel.org>, Lai Jiangshan <jiangshanlai-AT-gmail.com>, Neeraj Upadhyay <neeraju-AT-codeaurora.org>, Joel Fernandes <joel-AT-joelfernandes.org>, Josh Triplett <josh-AT-joshtriplett.org> | |
Archive-link: | Article |
Hi, This is the third attempt to make rcu-nocb mutable at runtime. See v2 there: https://lwn.net/Articles/832031/ Many fixes included and rcutorture support: 03: Whitespace fix 04: Add "rcu/nocb: Always init segcblist on CPU up" (Thanks rcutorture!) 05: Add return value for failure on (de)offloading 06: Add "rcu/nocb: Don't deoffload an offline CPU with pending work" (Thanks Paul!) 12: Add "rcu/nocb: Only cond_resched() from actual offloaded batch processing" (Thanks rcutorture!) 14: Write a real and more self-confident changelog 15/16: Add rcutorture support (thanks Paul!) My last remaining worry, as exposed in 13/16, is that __call_rcu_core() isn't called during transition states. I need to see how I can handle that. git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git rcu/nocb-toggle-v2 HEAD: 0247cd09fd48a38741e5cc6634810985b405baca Thanks, Frederic --- Frederic Weisbecker (15): rcu: Implement rcu_segcblist_is_offloaded() config dependent rcu: Turn enabled/offload states into a common flag rcu: Provide basic callback offloading state machine bits rcu/nocb: Always init segcblist on CPU up rcu: De-offloading CB kthread rcu/nocb: Don't deoffload an offline CPU with pending work rcu: De-offloading GP kthread rcu: Re-offload support rcu: Shutdown nocb timer on de-offloading rcu: Flush bypass before setting SEGCBLIST_SOFTIRQ_ONLY rcu: Set SEGCBLIST_SOFTIRQ_ONLY at the very last stage of de-offloading rcu/nocb: Only cond_resched() from actual offloaded batch processing rcu: Process batch locally as long as offloading isn't complete rcu: Locally accelerate callbacks as long as offloading isn't complete tools/rcutorture: Support nocb toggle in TREE01 Paul E. McKenney (1): rcutorture: Test runtime toggling of CPUs' callback offloading Documentation/admin-guide/kernel-parameters.txt | 8 + include/linux/rcu_segcblist.h | 119 +++++++- include/linux/rcupdate.h | 4 + kernel/rcu/rcu_segcblist.c | 13 +- kernel/rcu/rcu_segcblist.h | 45 ++- kernel/rcu/rcutorture.c | 86 +++++- kernel/rcu/tree.c | 47 +-- kernel/rcu/tree.h | 2 + kernel/rcu/tree_plugin.h | 330 +++++++++++++++++++-- .../selftests/rcutorture/configs/rcu/TREE01.boot | 4 +- 10 files changed, 603 insertions(+), 55 deletions(-)