v2 Add callback-free CPUs
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest2 patches 5 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/2 | rcu: Add callback-free CPUsDocumentation/ include/ init/ +4 more | +523 | 3 replies | |
| 2/2 | rcu: Separate accounting of callbacks from callback-free CPUskernel/ kernel/ kernel/ | +5 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH tip/core/rcu 0/2] v2 Add callback-free CPUs
Hello!
RCU callback execution can add significant OS jitter and also can degrade scheduling latency. This commit therefore adds the ability for selected CPUs ("rcu_nocbs=" boot parameter) to have their callbacks offloaded to kthreads, inspired by Joe Korty's and Jim Houston's JRCU. If the "rcu_nocb_poll" boot parameter is also specified, these kthreads will do polling, removing the need for the offloaded CPUs to do wakeups. At least one CPU must be doing normal callback processing: currently CPU 0 cannot be selected as a no-CBs CPU. In addition, attempts to offline the last normal-CBs CPU will fail.
Changes since v1 (https://lkml.org/lkml/2012/9/5/572):
1. Contains fixes for a few problems located by Fengguang Wu's
kbuild test robot.
2. Counters are now atomic_long_t rather than atomic_t, as
suggested by Peter Zijlstra.
3. The rcu_nocbs= kernel boot parameter is now documented.
4. Fixed a bug introduced by commit c96ea7cf (Avoid spurious
RCU CPU stall warnings) that resulted in boot-time NULL-pointer dereferences (reported by Paul Gortmaker).
4. Account for normal and offloaded callbacks separately, so that
offloading is represented in debugfs output.
The patches in this series are as follows:
1. Offload RCU callbacks based on boot-time kernel parameter.
2. Account for normal and offloaded callbacks separately, so that
offloading is represented in debugfs output.
Thanx, Paul
b/Documentation/kernel-parameters.txt | 5 b/include/trace/events/rcu.h | 1 b/init/Kconfig | 19 + b/kernel/rcutree.c | 63 ++++- b/kernel/rcutree.h | 48 ++++ b/kernel/rcutree_plugin.h | 399 +++++++++++++++++++++++++++++++++- b/kernel/rcutree_trace.c | 12 - 7 files changed, 528 insertions(+), 19 deletions(-)