|
|
Subscribe / Log in / New account

Introduce housekeeping subsystem

From:  Frederic Weisbecker <fweisbec-AT-gmail.com>
To:  LKML <linux-kernel-AT-vger.kernel.org>
Subject:  [RFC PATCH 0/9] Introduce housekeeping subsystem
Date:  Fri, 21 Jul 2017 15:21:21 +0200
Message-ID:  <1500643290-25842-1-git-send-email-fweisbec@gmail.com>
Cc:  Frederic Weisbecker <fweisbec-AT-gmail.com>, Peter Zijlstra <peterz-AT-infradead.org>, Chris Metcalf <cmetcalf-AT-mellanox.com>, Thomas Gleixner <tglx-AT-linutronix.de>, Luiz Capitulino <lcapitulino-AT-redhat.com>, Christoph Lameter <cl-AT-linux.com>, "Paul E . McKenney" <paulmck-AT-linux.vnet.ibm.com>, Ingo Molnar <mingo-AT-kernel.org>, Mike Galbraith <efault-AT-gmx.de>, Rik van Riel <riel-AT-redhat.com>, Wanpeng Li <kernellwp-AT-gmail.com>

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


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds