[GIT PULL] isolation: 1Hz residual tick offloading v4

From: Frederic Weisbecker
Date: Thu Jan 18 2018 - 19:02:45 EST


Ingo,

Please pull the sched/0hz-v2 branch that can be found at:

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
sched/0hz-v2

HEAD: 9b14d5204490f9acd03998a5e406ecadb87cddba

Changes in v4:

* Remove the nohz_offload option, just stick with the existing interface,
the change is transparent. Suggested by Luiz.

* Automatically pin workqueues to housekeepers.

---
Now that scheduler_tick() has become resilient towards the absence of
ticks, current->sched_class->task_tick() is the last piece that needs
at least 1Hz tick to keep scheduler stats alive.

This patchset offloads this residual 1Hz tick to workqueues. This way
the nohz full CPUs don't have anymore tick (assuming nothing else
requires it) as their residual 1Hz tick get handled by the housekeepers.

Nothing special is required for testing, just use the usual kernel
parameters, say on CPUs 1-7:

"nohz_full=1-7"
or
"isolcpus=nohz_offload,domain,1-7"

Thanks,
Frederic
---

Frederic Weisbecker (6):
sched: Rename init_rq_hrtick to hrtick_rq_init
nohz: Allow to check if remote CPU tick is stopped
sched/isolation: Isolate workqueues when "nohz_full=" is set
sched/isolation: Residual 1Hz scheduler tick offload
sched/nohz: Remove the 1 Hz tick code
sched/isolation: Tick offload documentation


Documentation/admin-guide/kernel-parameters.txt | 6 +-
include/linux/sched/isolation.h | 1 +
include/linux/sched/nohz.h | 4 -
include/linux/tick.h | 2 +
kernel/sched/core.c | 104 +++++++++++++++++-------
kernel/sched/idle_task.c | 1 -
kernel/sched/isolation.c | 8 +-
kernel/sched/sched.h | 13 +--
kernel/time/tick-sched.c | 13 +--
kernel/workqueue.c | 3 +-
10 files changed, 103 insertions(+), 52 deletions(-)