[GIT PULL] Introduce housekeeping subsystem v5
From: Frederic Weisbecker
Date: Tue Oct 24 2017 - 09:37:29 EST
(No significant change since v4, only a rebase against -rc6)
Ingo,
Please pull the core/isolation-v5 branch that can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
core/isolation-v5
HEAD: 64b71f4e9bffef1d7c9ffd2fae9b688be6da95b5
Summary of changes:
* Move the housekeeping code that was tied to NO_HZ to its own subsystem.
Currently NO_HZ governs the other isolation features which is not right
as dynticks is just an isolation feature like the others. We want to
centralize the CPU isolation decisions to a subsystem of its own instead.
* Integrate isolcpus code to housekeeping and treat it as a CPU isolation
feature.
* Reuse the "isolcpus=" kernel parameter to control the CPU isolation.
For now only tick and domains can be isolated after this patchset:
isolcpus=1-7 # isolate domains on CPU range 1 to 7
# "domain" flag is implicit by default to
# keep the current behaviour
isolcpus=domain,1-7 # do the same
isolcpus=nohz,1-7 # apply nohz_full to CPU range 1 to 7
isolcpus=nohz,domain,1-7 # apply nohz_full and isolate domains of
# CPU range 1 to 7
Thanks,
Frederic
---
Frederic Weisbecker (12):
housekeeping: Move housekeeping related code to its own file
watchdog: Use housekeeping_cpumask() instead of ad-hoc version
housekeeping: Provide a dynamic off-case to housekeeping_any_cpu()
housekeeping: Make housekeeping cpumask private
housekeeping: Use its own static key
housekeeping: Rename is_housekeeping_cpu to housekeeping_cpu
housekeeping: Move it under its own config, independant from NO_HZ
housekeeping: Introduce housekeeping flags
housekeeping: Handle nohz_full= parameter
housekeeping: Move isolcpus to housekeeping
housekeeping: Add basic isolcpus flags
housekeeping: Document isolcpus flags
Documentation/admin-guide/kernel-parameters.txt | 33 +++---
drivers/base/cpu.c | 11 +-
drivers/net/ethernet/tile/tilegx.c | 6 +-
include/linux/housekeeping.h | 51 ++++++++
include/linux/sched.h | 2 -
include/linux/tick.h | 39 +------
init/Kconfig | 7 ++
init/main.c | 2 +
kernel/Makefile | 1 +
kernel/cgroup/cpuset.c | 15 +--
kernel/housekeeping.c | 149 ++++++++++++++++++++++++
kernel/rcu/tree_plugin.h | 3 +-
kernel/rcu/update.c | 3 +-
kernel/sched/core.c | 25 +---
kernel/sched/fair.c | 3 +-
kernel/sched/topology.c | 24 +---
kernel/time/tick-sched.c | 31 +----
kernel/watchdog.c | 13 +--
18 files changed, 276 insertions(+), 142 deletions(-)