|
|
Log in / Subscribe / Register

Introduce housekeeping subsystem v4

From:  Frederic Weisbecker <fweisbec-AT-gmail.com>
To:  Ingo Molnar <mingo-AT-kernel.org>
Subject:  [GIT PULL] Introduce housekeeping subsystem v4
Date:  Mon, 18 Sep 2017 15:53:57 +0200
Message-ID:  <1505742849-30473-1-git-send-email-fweisbec@gmail.com>
Cc:  LKML <linux-kernel-AT-vger.kernel.org>, 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>, Mike Galbraith <efault-AT-gmx.de>, Rik van Riel <riel-AT-redhat.com>, Wanpeng Li <kernellwp-AT-gmail.com>

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


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