[RFC PATCH 0/9] Introduce housekeeping subsystem

From: Frederic Weisbecker
Date: Fri Jul 21 2017 - 09:21:41 EST


I'm leaving for two weeks so this is food for thoughts in the meantime :)

We have a design issue with nohz_full: it drives the isolation features
through the *housekeeping*() functions: kthreads, unpinned timers,
watchdog, ...

But things should work the other way around because the tick is just an
isolation feature among others.

So we need a housekeeping subsystem to drive all these isolation
features, including nohz full in a later iteration. For now this is a
basic draft. In the long run this subsystem should also drive the tick
offloading (remove residual 1Hz) and all unbound kthreads.

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

HEAD: 68e3af1de5db228bf6c2a5e721bce59a02cfc4e1

Thanks,
Frederic
---

Frederic Weisbecker (9):
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: Use own boot option, independant from nohz
housekeeping: Move it under own config, independant from NO_HZ
workqueue: Affine unbound workqueues to housekeeping cpumask


drivers/net/ethernet/tile/tilegx.c | 2 +-
include/linux/housekeeping.h | 39 +++++++++++++++++++++++
include/linux/tick.h | 37 ----------------------
init/Kconfig | 6 ++++
kernel/Makefile | 1 +
kernel/housekeeping.c | 65 ++++++++++++++++++++++++++++++++++++++
kernel/rcu/tree_plugin.h | 1 +
kernel/rcu/update.c | 1 +
kernel/sched/core.c | 7 ++--
kernel/sched/fair.c | 3 +-
kernel/time/tick-sched.c | 18 -----------
kernel/watchdog.c | 12 +++----
kernel/workqueue.c | 3 +-
13 files changed, 126 insertions(+), 69 deletions(-)