[GIT PULL] Introduce housekeeping subsystem v4

From: Frederic Weisbecker
Date: Mon Sep 18 2017 - 09:54:23 EST


Ingo,

Please pull the core/isolation-v4 branch that can be found at:

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
core/isolation-v4

HEAD: cf4c55aad44251369c8507c3823f9f9c51d4dc77

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(-)