[PATCH 0/8] sched/isolation: Split housekeeping cpumask

Frederic Weisbecker posted 8 patches 4 years, 5 months ago
arch/x86/kernel/cpu/aperfmperf.c |   6 +-
arch/x86/kvm/x86.c               |   2 +-
drivers/base/cpu.c               |   2 +-
drivers/pci/pci-driver.c         |  21 +++--
include/linux/sched/isolation.h  |  43 ++++++-----
kernel/cgroup/cpuset.c           |   6 +-
kernel/cpu.c                     |   4 +-
kernel/irq/cpuhotplug.c          |   4 +-
kernel/irq/manage.c              |   4 +-
kernel/kthread.c                 |   4 +-
kernel/rcu/tasks.h               |   2 +-
kernel/rcu/tree_plugin.h         |   2 +-
kernel/sched/core.c              |  12 +--
kernel/sched/fair.c              |  10 +--
kernel/sched/isolation.c         | 162 +++++++++++++++++++++++++--------------
kernel/sched/topology.c          |   8 +-
kernel/watchdog.c                |   2 +-
kernel/workqueue.c               |   4 +-
net/core/net-sysfs.c             |   6 +-
19 files changed, 180 insertions(+), 124 deletions(-)
[PATCH 0/8] sched/isolation: Split housekeeping cpumask
Posted by Frederic Weisbecker 4 years, 5 months ago
Hi,

To prepare for extending cpusets to control CPU isolation features
(nohz_full, rcu_nocbs, unbound timers, workqueues, kthreads affinity...),
we need to split the global housekeeping_mask to one cpumask per isolation
feature.

Doing so is quite a chunk already so I'm working on that as a standalone
patchset. Once that get merged, the next step is to finally provide a
cpuset interface for one of these isolation features: rcu_nocb could
be interesting to handle first as nohz_full depends on it.

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

HEAD: 2c07a16ff50d1e722babee28b926d70522e6bd3e

Thanks,
	Frederic
---

Frederic Weisbecker (8):
      pci: Decouple HK_FLAG_WQ and HK_FLAG_DOMAIN cpumask fetch
      workqueue: Decouple HK_FLAG_WQ and HK_FLAG_DOMAIN cpumask fetch
      net: Decouple HK_FLAG_WQ and HK_FLAG_DOMAIN cpumask fetch
      sched/isolation: Use single feature type while referring to housekeeping cpumask
      sched/isolation: Consolidate check for housekeeping minimum service
      sched/isolation: Consolidate error handling
      sched/isolation: Fix housekeeping_mask memory leak
      sched/isolation: Split housekeeping cpumask per isolation features


 arch/x86/kernel/cpu/aperfmperf.c |   6 +-
 arch/x86/kvm/x86.c               |   2 +-
 drivers/base/cpu.c               |   2 +-
 drivers/pci/pci-driver.c         |  21 +++--
 include/linux/sched/isolation.h  |  43 ++++++-----
 kernel/cgroup/cpuset.c           |   6 +-
 kernel/cpu.c                     |   4 +-
 kernel/irq/cpuhotplug.c          |   4 +-
 kernel/irq/manage.c              |   4 +-
 kernel/kthread.c                 |   4 +-
 kernel/rcu/tasks.h               |   2 +-
 kernel/rcu/tree_plugin.h         |   2 +-
 kernel/sched/core.c              |  12 +--
 kernel/sched/fair.c              |  10 +--
 kernel/sched/isolation.c         | 162 +++++++++++++++++++++++++--------------
 kernel/sched/topology.c          |   8 +-
 kernel/watchdog.c                |   2 +-
 kernel/workqueue.c               |   4 +-
 net/core/net-sysfs.c             |   6 +-
 19 files changed, 180 insertions(+), 124 deletions(-)
Re: [PATCH 0/8] sched/isolation: Split housekeeping cpumask
Posted by Marcelo Tosatti 4 years, 5 months ago
On Tue, Jan 04, 2022 at 03:49:36PM +0100, Frederic Weisbecker wrote:
> Hi,
> 
> To prepare for extending cpusets to control CPU isolation features
> (nohz_full, rcu_nocbs, unbound timers, workqueues, kthreads affinity...),
> we need to split the global housekeeping_mask to one cpumask per isolation
> feature.
> 
> Doing so is quite a chunk already so I'm working on that as a standalone
> patchset. Once that get merged, the next step is to finally provide a
> cpuset interface for one of these isolation features: rcu_nocb could
> be interesting to handle first as nohz_full depends on it.
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
> 	isolation/split
> 
> HEAD: 2c07a16ff50d1e722babee28b926d70522e6bd3e
> 
> Thanks,
> 	Frederic

Looks good.

Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>


Re: [PATCH 0/8] sched/isolation: Split housekeeping cpumask
Posted by Phil Auld 4 years, 5 months ago
On Tue, Jan 04, 2022 at 03:49:36PM +0100 Frederic Weisbecker wrote:
> Hi,
> 
> To prepare for extending cpusets to control CPU isolation features
> (nohz_full, rcu_nocbs, unbound timers, workqueues, kthreads affinity...),
> we need to split the global housekeeping_mask to one cpumask per isolation
> feature.
> 
> Doing so is quite a chunk already so I'm working on that as a standalone
> patchset. Once that get merged, the next step is to finally provide a
> cpuset interface for one of these isolation features: rcu_nocb could
> be interesting to handle first as nohz_full depends on it.
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
> 	isolation/split
> 
> HEAD: 2c07a16ff50d1e722babee28b926d70522e6bd3e
> 
> Thanks,
> 	Frederic
> ---

This is excellent, thanks!

Reviewed-by: Phil Auld <pauld@redhat.com>


> 
> Frederic Weisbecker (8):
>       pci: Decouple HK_FLAG_WQ and HK_FLAG_DOMAIN cpumask fetch
>       workqueue: Decouple HK_FLAG_WQ and HK_FLAG_DOMAIN cpumask fetch
>       net: Decouple HK_FLAG_WQ and HK_FLAG_DOMAIN cpumask fetch
>       sched/isolation: Use single feature type while referring to housekeeping cpumask
>       sched/isolation: Consolidate check for housekeeping minimum service
>       sched/isolation: Consolidate error handling
>       sched/isolation: Fix housekeeping_mask memory leak
>       sched/isolation: Split housekeeping cpumask per isolation features
> 
> 
>  arch/x86/kernel/cpu/aperfmperf.c |   6 +-
>  arch/x86/kvm/x86.c               |   2 +-
>  drivers/base/cpu.c               |   2 +-
>  drivers/pci/pci-driver.c         |  21 +++--
>  include/linux/sched/isolation.h  |  43 ++++++-----
>  kernel/cgroup/cpuset.c           |   6 +-
>  kernel/cpu.c                     |   4 +-
>  kernel/irq/cpuhotplug.c          |   4 +-
>  kernel/irq/manage.c              |   4 +-
>  kernel/kthread.c                 |   4 +-
>  kernel/rcu/tasks.h               |   2 +-
>  kernel/rcu/tree_plugin.h         |   2 +-
>  kernel/sched/core.c              |  12 +--
>  kernel/sched/fair.c              |  10 +--
>  kernel/sched/isolation.c         | 162 +++++++++++++++++++++++++--------------
>  kernel/sched/topology.c          |   8 +-
>  kernel/watchdog.c                |   2 +-
>  kernel/workqueue.c               |   4 +-
>  net/core/net-sysfs.c             |   6 +-
>  19 files changed, 180 insertions(+), 124 deletions(-)
> 

--