All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch 0/3] affine kernel threads to specified cpumask (v3)
@ 2020-03-28 15:21 Marcelo Tosatti
  2020-03-28 15:21 ` [patch 1/3] kthread: switch to cpu_possible_mask Marcelo Tosatti
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Marcelo Tosatti @ 2020-03-28 15:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Frederic Weisbecker, Chris Friesen, Thomas Gleixner,
	Peter Zijlstra, Andrew Morton, Jim Somerville, Christoph Lameter

This is a kernel enhancement to configure the cpu affinity of kernel
threads via kernel boot option isolcpus=no_kthreads,<isolcpus_params>,<cpulist>

When this option is specified, the cpumask is immediately applied upon
thread launch. This does not affect kernel threads that specify cpu
and node.

This allows CPU isolation (that is not allowing certain threads
to execute on certain CPUs) without using the isolcpus=domain parameter,
making it possible to enable load balancing on such CPUs
during runtime.

Note-1: this is based off on Wind River's patch at
https://github.com/starlingx-staging/stx-integ/blob/master/kernel/kernel-std/centos/patches/affine-compute-kernel-threads.patch

Difference being that this patch is limited to modifying
kernel thread cpumask: Behaviour of other threads can
be controlled via cgroups or sched_setaffinity.

Note-2: Wind River's patch was based off Christoph Lameter's patch at
https://lwn.net/Articles/565932/ with the only difference being
the kernel parameter changed from kthread to kthread_cpus.

Changelog:

v2: use isolcpus= subcommand (Thomas Gleixner)

v3: s/MontaVista/Wind River/ on changelog (Chris Friesen)
    documentation updates		  (Chris Friesen)
    undeprecate isolcpus		  (Chris Friesen)
    general cleanups			  (Frederic Weisbecker)
    separate cpu_possible_mask kthread    
    mask change				  (Frederic Weisbecker)



^ permalink raw reply	[flat|nested] 12+ messages in thread

* [patch 1/3] kthread: switch to cpu_possible_mask
  2020-03-28 15:21 [patch 0/3] affine kernel threads to specified cpumask (v3) Marcelo Tosatti
@ 2020-03-28 15:21 ` Marcelo Tosatti
  2020-03-28 15:21 ` [patch 2/3] isolcpus: affine kernel threads to specified cpumask Marcelo Tosatti
  2020-03-28 15:21 ` [patch 3/3] isolcpus: undeprecate on documentation Marcelo Tosatti
  2 siblings, 0 replies; 12+ messages in thread
From: Marcelo Tosatti @ 2020-03-28 15:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Frederic Weisbecker, Chris Friesen, Thomas Gleixner,
	Peter Zijlstra, Andrew Morton, Jim Somerville, Christoph Lameter,
	Frederic Weisbecker, Marcelo Tosatti

Next patch will switch unbound kernel threads mask to 
housekeeping_cpumask(), a subset of cpu_possible_mask.

Switch from cpu_all_mask to cpu_possible_mask separately,
to ease bisection.

Suggested-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

---
 kernel/kthread.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6/kernel/kthread.c
===================================================================
--- linux-2.6.orig/kernel/kthread.c
+++ linux-2.6/kernel/kthread.c
@@ -347,7 +347,7 @@ struct task_struct *__kthread_create_on_
 		 * The kernel thread should not inherit these properties.
 		 */
 		sched_setscheduler_nocheck(task, SCHED_NORMAL, &param);
-		set_cpus_allowed_ptr(task, cpu_all_mask);
+		set_cpus_allowed_ptr(task, cpu_possible_mask);
 	}
 	kfree(create);
 	return task;
@@ -572,7 +572,7 @@ int kthreadd(void *unused)
 	/* Setup a clean context for our children to inherit. */
 	set_task_comm(tsk, "kthreadd");
 	ignore_signals(tsk);
-	set_cpus_allowed_ptr(tsk, cpu_all_mask);
+	set_cpus_allowed_ptr(tsk, cpu_possible_mask);
 	set_mems_allowed(node_states[N_MEMORY]);
 
 	current->flags |= PF_NOFREEZE;



^ permalink raw reply	[flat|nested] 12+ messages in thread

* [patch 2/3] isolcpus: affine kernel threads to specified cpumask
  2020-03-28 15:21 [patch 0/3] affine kernel threads to specified cpumask (v3) Marcelo Tosatti
  2020-03-28 15:21 ` [patch 1/3] kthread: switch to cpu_possible_mask Marcelo Tosatti
@ 2020-03-28 15:21 ` Marcelo Tosatti
  2020-03-31  0:57   ` Frederic Weisbecker
  2020-03-28 15:21 ` [patch 3/3] isolcpus: undeprecate on documentation Marcelo Tosatti
  2 siblings, 1 reply; 12+ messages in thread
From: Marcelo Tosatti @ 2020-03-28 15:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Frederic Weisbecker, Chris Friesen, Thomas Gleixner,
	Peter Zijlstra, Andrew Morton, Jim Somerville, Christoph Lameter,
	Marcelo Tosatti

This is a kernel enhancement to configure the cpu affinity of kernel threads via kernel boot option isolcpus=no_kthreads,<isolcpus_params>,<cpulist>

When this option is specified, the cpumask is immediately applied upon
thread launch. This does not affect kernel threads that specify cpu
and node.

This allows CPU isolation (that is not allowing certain threads
to execute on certain CPUs) without using the isolcpus=domain parameter,
making it possible to enable load balancing on such CPUs
during runtime (see kernel-parameters.txt).

Note-1: this is based off on Wind River's patch at
https://github.com/starlingx-staging/stx-integ/blob/master/kernel/kernel-std/centos/patches/affine-compute-kernel-threads.patch

Difference being that this patch is limited to modifying
kernel thread cpumask: Behaviour of other threads can
be controlled via cgroups or sched_setaffinity.

Note-2: Wind River's patch was based off Christoph Lameter's patch at
https://lwn.net/Articles/565932/ with the only difference being
the kernel parameter changed from kthread to kthread_cpus.

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

---
 Documentation/admin-guide/kernel-parameters.txt |    8 ++++++++
 include/linux/sched/isolation.h                 |    1 +
 kernel/kthread.c                                |    6 ++++--
 kernel/sched/isolation.c                        |    6 ++++++
 4 files changed, 19 insertions(+), 2 deletions(-)

Index: linux-2.6/Documentation/admin-guide/kernel-parameters.txt
===================================================================
--- linux-2.6.orig/Documentation/admin-guide/kernel-parameters.txt
+++ linux-2.6/Documentation/admin-guide/kernel-parameters.txt
@@ -1959,6 +1959,14 @@
 			  the CPU affinity syscalls or cpuset.
 			  <cpu number> begins at 0 and the maximum value is
 			  "number of CPUs in system - 1".
+			  When using cpusets, use the isolcpus option "kthread"
+			  to avoid creation of kernel threads on isolated CPUs.
+
+			kthread
+			  Adjust the CPU affinity mask of unbound kernel threads to
+			  not contain CPUs on the isolated list. This complements
+			  the isolation provided by the cpusets mechanism described
+			  above and by managed_irq option.
 
 			managed_irq
 
Index: linux-2.6/include/linux/sched/isolation.h
===================================================================
--- linux-2.6.orig/include/linux/sched/isolation.h
+++ linux-2.6/include/linux/sched/isolation.h
@@ -14,6 +14,7 @@ enum hk_flags {
 	HK_FLAG_DOMAIN		= (1 << 5),
 	HK_FLAG_WQ		= (1 << 6),
 	HK_FLAG_MANAGED_IRQ	= (1 << 7),
+	HK_FLAG_KTHREAD		= (1 << 8),
 };
 
 #ifdef CONFIG_CPU_ISOLATION
Index: linux-2.6/kernel/kthread.c
===================================================================
--- linux-2.6.orig/kernel/kthread.c
+++ linux-2.6/kernel/kthread.c
@@ -23,6 +23,7 @@
 #include <linux/ptrace.h>
 #include <linux/uaccess.h>
 #include <linux/numa.h>
+#include <linux/sched/isolation.h>
 #include <trace/events/sched.h>
 
 static DEFINE_SPINLOCK(kthread_create_lock);
@@ -347,7 +348,8 @@ struct task_struct *__kthread_create_on_
 		 * The kernel thread should not inherit these properties.
 		 */
 		sched_setscheduler_nocheck(task, SCHED_NORMAL, &param);
-		set_cpus_allowed_ptr(task, cpu_possible_mask);
+		set_cpus_allowed_ptr(task,
+				     housekeeping_cpumask(HK_FLAG_KTHREAD));
 	}
 	kfree(create);
 	return task;
@@ -572,7 +574,7 @@ int kthreadd(void *unused)
 	/* Setup a clean context for our children to inherit. */
 	set_task_comm(tsk, "kthreadd");
 	ignore_signals(tsk);
-	set_cpus_allowed_ptr(tsk, cpu_possible_mask);
+	set_cpus_allowed_ptr(tsk, housekeeping_cpumask(HK_FLAG_KTHREAD));
 	set_mems_allowed(node_states[N_MEMORY]);
 
 	current->flags |= PF_NOFREEZE;
Index: linux-2.6/kernel/sched/isolation.c
===================================================================
--- linux-2.6.orig/kernel/sched/isolation.c
+++ linux-2.6/kernel/sched/isolation.c
@@ -169,6 +169,12 @@ static int __init housekeeping_isolcpus_
 			continue;
 		}
 
+		if (!strncmp(str, "kthread,", 8)) {
+			str += 8;
+			flags |= HK_FLAG_KTHREAD;
+			continue;
+		}
+
 		pr_warn("isolcpus: Error, unknown flag\n");
 		return 0;
 	}



^ permalink raw reply	[flat|nested] 12+ messages in thread

* [patch 3/3] isolcpus: undeprecate on documentation
  2020-03-28 15:21 [patch 0/3] affine kernel threads to specified cpumask (v3) Marcelo Tosatti
  2020-03-28 15:21 ` [patch 1/3] kthread: switch to cpu_possible_mask Marcelo Tosatti
  2020-03-28 15:21 ` [patch 2/3] isolcpus: affine kernel threads to specified cpumask Marcelo Tosatti
@ 2020-03-28 15:21 ` Marcelo Tosatti
  2020-03-31 15:22   ` Peter Zijlstra
  2 siblings, 1 reply; 12+ messages in thread
From: Marcelo Tosatti @ 2020-03-28 15:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Frederic Weisbecker, Chris Friesen, Thomas Gleixner,
	Peter Zijlstra, Andrew Morton, Jim Somerville, Christoph Lameter,
	Marcelo Tosatti

isolcpus is used to control steering of interrupts to managed_irqs and
kernel threads, therefore its incorrect to state that its deprecated.

Remove deprecation warning.

Suggested-by: Chris Friesen <chris.friesen@windriver.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

---
 Documentation/admin-guide/kernel-parameters.txt |    1 -
 1 file changed, 1 deletion(-)

Index: linux-2.6/Documentation/admin-guide/kernel-parameters.txt
===================================================================
--- linux-2.6.orig/Documentation/admin-guide/kernel-parameters.txt
+++ linux-2.6/Documentation/admin-guide/kernel-parameters.txt
@@ -1926,7 +1926,6 @@
 			Format: <RDP>,<reset>,<pci_scan>,<verbosity>
 
 	isolcpus=	[KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
-			[Deprecated - use cpusets instead]
 			Format: [flag-list,]<cpu-list>
 
 			Specify one or more CPUs to isolate from disturbances



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [patch 2/3] isolcpus: affine kernel threads to specified cpumask
  2020-03-28 15:21 ` [patch 2/3] isolcpus: affine kernel threads to specified cpumask Marcelo Tosatti
@ 2020-03-31  0:57   ` Frederic Weisbecker
  2020-03-31 11:50     ` Marcelo Tosatti
  0 siblings, 1 reply; 12+ messages in thread
From: Frederic Weisbecker @ 2020-03-31  0:57 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: linux-kernel, Frederic Weisbecker, Chris Friesen,
	Thomas Gleixner, Peter Zijlstra, Andrew Morton, Jim Somerville,
	Christoph Lameter

On Sat, Mar 28, 2020 at 12:21:19PM -0300, Marcelo Tosatti wrote:
> This is a kernel enhancement to configure the cpu affinity of kernel threads via kernel boot option isolcpus=no_kthreads,<isolcpus_params>,<cpulist>
> 
> When this option is specified, the cpumask is immediately applied upon
> thread launch. This does not affect kernel threads that specify cpu
> and node.
> 
> This allows CPU isolation (that is not allowing certain threads
> to execute on certain CPUs) without using the isolcpus=domain parameter,
> making it possible to enable load balancing on such CPUs
> during runtime (see kernel-parameters.txt).
> 
> Note-1: this is based off on Wind River's patch at
> https://github.com/starlingx-staging/stx-integ/blob/master/kernel/kernel-std/centos/patches/affine-compute-kernel-threads.patch
> 
> Difference being that this patch is limited to modifying
> kernel thread cpumask: Behaviour of other threads can
> be controlled via cgroups or sched_setaffinity.
> 
> Note-2: Wind River's patch was based off Christoph Lameter's patch at
> https://lwn.net/Articles/565932/ with the only difference being
> the kernel parameter changed from kthread to kthread_cpus.
> 
> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> 
> ---
>  Documentation/admin-guide/kernel-parameters.txt |    8 ++++++++
>  include/linux/sched/isolation.h                 |    1 +
>  kernel/kthread.c                                |    6 ++++--
>  kernel/sched/isolation.c                        |    6 ++++++
>  4 files changed, 19 insertions(+), 2 deletions(-)
> 
> Index: linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> ===================================================================
> --- linux-2.6.orig/Documentation/admin-guide/kernel-parameters.txt
> +++ linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> @@ -1959,6 +1959,14 @@
>  			  the CPU affinity syscalls or cpuset.
>  			  <cpu number> begins at 0 and the maximum value is
>  			  "number of CPUs in system - 1".
> +			  When using cpusets, use the isolcpus option "kthread"
> +			  to avoid creation of kernel threads on isolated CPUs.
> +
> +			kthread
> +			  Adjust the CPU affinity mask of unbound kernel threads to
> +			  not contain CPUs on the isolated list. This complements
> +			  the isolation provided by the cpusets mechanism described
> +			  above and by managed_irq option.

So, what about what I suggested with having "unbound" instead, which
includes all the CPU-unbound work?

 HK_FLAG_WQ | HK_FLAG_TIMER | HK_FLAG_RCU | HK_FLAG_MISC | HK_FLAG_KTHREAD | HK_FLAG_SCHED

(and yes your suggestion of including HK_FLAG_SCHED is good).

Because I don't see the point of exposing kthread isolation alone as an ABI
so far.

Later I suspect I'll turn all these flags into a single HK_FLAG_UNBOUND.

Thanks.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [patch 2/3] isolcpus: affine kernel threads to specified cpumask
  2020-03-31  0:57   ` Frederic Weisbecker
@ 2020-03-31 11:50     ` Marcelo Tosatti
  2020-03-31 13:36       ` Frederic Weisbecker
  0 siblings, 1 reply; 12+ messages in thread
From: Marcelo Tosatti @ 2020-03-31 11:50 UTC (permalink / raw)
  To: Frederic Weisbecker
  Cc: linux-kernel, Frederic Weisbecker, Chris Friesen,
	Thomas Gleixner, Peter Zijlstra, Andrew Morton, Jim Somerville,
	Christoph Lameter

On Tue, Mar 31, 2020 at 02:57:08AM +0200, Frederic Weisbecker wrote:
> On Sat, Mar 28, 2020 at 12:21:19PM -0300, Marcelo Tosatti wrote:
> > This is a kernel enhancement to configure the cpu affinity of kernel threads via kernel boot option isolcpus=no_kthreads,<isolcpus_params>,<cpulist>
> > 
> > When this option is specified, the cpumask is immediately applied upon
> > thread launch. This does not affect kernel threads that specify cpu
> > and node.
> > 
> > This allows CPU isolation (that is not allowing certain threads
> > to execute on certain CPUs) without using the isolcpus=domain parameter,
> > making it possible to enable load balancing on such CPUs
> > during runtime (see kernel-parameters.txt).
> > 
> > Note-1: this is based off on Wind River's patch at
> > https://github.com/starlingx-staging/stx-integ/blob/master/kernel/kernel-std/centos/patches/affine-compute-kernel-threads.patch
> > 
> > Difference being that this patch is limited to modifying
> > kernel thread cpumask: Behaviour of other threads can
> > be controlled via cgroups or sched_setaffinity.
> > 
> > Note-2: Wind River's patch was based off Christoph Lameter's patch at
> > https://lwn.net/Articles/565932/ with the only difference being
> > the kernel parameter changed from kthread to kthread_cpus.
> > 
> > Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> > 
> > ---
> >  Documentation/admin-guide/kernel-parameters.txt |    8 ++++++++
> >  include/linux/sched/isolation.h                 |    1 +
> >  kernel/kthread.c                                |    6 ++++--
> >  kernel/sched/isolation.c                        |    6 ++++++
> >  4 files changed, 19 insertions(+), 2 deletions(-)
> > 
> > Index: linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> > ===================================================================
> > --- linux-2.6.orig/Documentation/admin-guide/kernel-parameters.txt
> > +++ linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> > @@ -1959,6 +1959,14 @@
> >  			  the CPU affinity syscalls or cpuset.
> >  			  <cpu number> begins at 0 and the maximum value is
> >  			  "number of CPUs in system - 1".
> > +			  When using cpusets, use the isolcpus option "kthread"
> > +			  to avoid creation of kernel threads on isolated CPUs.
> > +
> > +			kthread
> > +			  Adjust the CPU affinity mask of unbound kernel threads to
> > +			  not contain CPUs on the isolated list. This complements
> > +			  the isolation provided by the cpusets mechanism described
> > +			  above and by managed_irq option.

Hi Frederic,

> So, what about what I suggested with having "unbound" instead, which
> includes all the CPU-unbound work?
> 
>  HK_FLAG_WQ | HK_FLAG_TIMER | HK_FLAG_RCU | HK_FLAG_MISC | HK_FLAG_KTHREAD | HK_FLAG_SCHED

After more thought, it would share certain flags with nohz_full=, which
seemed confusing.

> (and yes your suggestion of including HK_FLAG_SCHED is good).
> 
> Because I don't see the point of exposing kthread isolation alone as an ABI
> so far.
> 
> Later I suspect I'll turn all these flags into a single HK_FLAG_UNBOUND.

How about keeping the flags separate, and then on top of that do
an "unbound" flag (less typing needed).

This would allow users to combine the individual flags (again, useful
for debugging) while at the same time having an option which groups
all the others?


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [patch 2/3] isolcpus: affine kernel threads to specified cpumask
  2020-03-31 11:50     ` Marcelo Tosatti
@ 2020-03-31 13:36       ` Frederic Weisbecker
  0 siblings, 0 replies; 12+ messages in thread
From: Frederic Weisbecker @ 2020-03-31 13:36 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: linux-kernel, Frederic Weisbecker, Chris Friesen,
	Thomas Gleixner, Peter Zijlstra, Andrew Morton, Jim Somerville,
	Christoph Lameter

On Tue, Mar 31, 2020 at 08:50:14AM -0300, Marcelo Tosatti wrote:
> On Tue, Mar 31, 2020 at 02:57:08AM +0200, Frederic Weisbecker wrote:
> > On Sat, Mar 28, 2020 at 12:21:19PM -0300, Marcelo Tosatti wrote:
> Hi Frederic,
> 
> > So, what about what I suggested with having "unbound" instead, which
> > includes all the CPU-unbound work?
> > 
> >  HK_FLAG_WQ | HK_FLAG_TIMER | HK_FLAG_RCU | HK_FLAG_MISC | HK_FLAG_KTHREAD | HK_FLAG_SCHED
> 
> After more thought, it would share certain flags with nohz_full=, which
> seemed confusing.

In fact I think we should also add HK_FLAG_KTHREAD | HK_FLAG_SCHED to nohz_full=

nohz_full is merely just a shortcut to isolate the tick and the unbound works anyway.

> 
> > (and yes your suggestion of including HK_FLAG_SCHED is good).
> > 
> > Because I don't see the point of exposing kthread isolation alone as an ABI
> > so far.
> > 
> > Later I suspect I'll turn all these flags into a single HK_FLAG_UNBOUND.
> 
> How about keeping the flags separate, and then on top of that do
> an "unbound" flag (less typing needed).
> 
> This would allow users to combine the individual flags (again, useful
> for debugging) while at the same time having an option which groups
> all the others?


Well, I'd rather not expose all the individual bits to the user. They rely
on kernel implementation details that shouldn't be much useful to the user.

As for internal kernel use, not sure this will ease debugging...

Thanks.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [patch 3/3] isolcpus: undeprecate on documentation
  2020-03-28 15:21 ` [patch 3/3] isolcpus: undeprecate on documentation Marcelo Tosatti
@ 2020-03-31 15:22   ` Peter Zijlstra
  2020-03-31 15:41     ` Marcelo Tosatti
  2020-03-31 15:43     ` Frederic Weisbecker
  0 siblings, 2 replies; 12+ messages in thread
From: Peter Zijlstra @ 2020-03-31 15:22 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: linux-kernel, Frederic Weisbecker, Chris Friesen,
	Thomas Gleixner, Andrew Morton, Jim Somerville,
	Christoph Lameter

On Sat, Mar 28, 2020 at 12:21:20PM -0300, Marcelo Tosatti wrote:
> isolcpus is used to control steering of interrupts to managed_irqs and
> kernel threads, therefore its incorrect to state that its deprecated.
> 
> Remove deprecation warning.
> 
> Suggested-by: Chris Friesen <chris.friesen@windriver.com>
> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> 
> ---
>  Documentation/admin-guide/kernel-parameters.txt |    1 -
>  1 file changed, 1 deletion(-)
> 
> Index: linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> ===================================================================
> --- linux-2.6.orig/Documentation/admin-guide/kernel-parameters.txt
> +++ linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> @@ -1926,7 +1926,6 @@
>  			Format: <RDP>,<reset>,<pci_scan>,<verbosity>
>  
>  	isolcpus=	[KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
> -			[Deprecated - use cpusets instead]
>  			Format: [flag-list,]<cpu-list>
>  

It's still an absolute horrible piece of crap though. nozh_full piling
more and more shit on it doesn't make it more shiny.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [patch 3/3] isolcpus: undeprecate on documentation
  2020-03-31 15:22   ` Peter Zijlstra
@ 2020-03-31 15:41     ` Marcelo Tosatti
  2020-03-31 15:57       ` Peter Zijlstra
  2020-03-31 15:43     ` Frederic Weisbecker
  1 sibling, 1 reply; 12+ messages in thread
From: Marcelo Tosatti @ 2020-03-31 15:41 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: linux-kernel, Frederic Weisbecker, Chris Friesen,
	Thomas Gleixner, Andrew Morton, Jim Somerville,
	Christoph Lameter

On Tue, Mar 31, 2020 at 05:22:17PM +0200, Peter Zijlstra wrote:
> On Sat, Mar 28, 2020 at 12:21:20PM -0300, Marcelo Tosatti wrote:
> > isolcpus is used to control steering of interrupts to managed_irqs and
> > kernel threads, therefore its incorrect to state that its deprecated.
> > 
> > Remove deprecation warning.
> > 
> > Suggested-by: Chris Friesen <chris.friesen@windriver.com>
> > Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> > 
> > ---
> >  Documentation/admin-guide/kernel-parameters.txt |    1 -
> >  1 file changed, 1 deletion(-)
> > 
> > Index: linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> > ===================================================================
> > --- linux-2.6.orig/Documentation/admin-guide/kernel-parameters.txt
> > +++ linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> > @@ -1926,7 +1926,6 @@
> >  			Format: <RDP>,<reset>,<pci_scan>,<verbosity>
> >  
> >  	isolcpus=	[KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
> > -			[Deprecated - use cpusets instead]
> >  			Format: [flag-list,]<cpu-list>
> >  
> 
> It's still an absolute horrible piece of crap though. nozh_full piling
> more and more shit on it doesn't make it more shiny.

Hi Peter,

Why do you dislike it? What you think would be a decent approach?


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [patch 3/3] isolcpus: undeprecate on documentation
  2020-03-31 15:22   ` Peter Zijlstra
  2020-03-31 15:41     ` Marcelo Tosatti
@ 2020-03-31 15:43     ` Frederic Weisbecker
  1 sibling, 0 replies; 12+ messages in thread
From: Frederic Weisbecker @ 2020-03-31 15:43 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Marcelo Tosatti, linux-kernel, Frederic Weisbecker,
	Chris Friesen, Thomas Gleixner, Andrew Morton, Jim Somerville,
	Christoph Lameter

On Tue, Mar 31, 2020 at 05:22:17PM +0200, Peter Zijlstra wrote:
> On Sat, Mar 28, 2020 at 12:21:20PM -0300, Marcelo Tosatti wrote:
> > isolcpus is used to control steering of interrupts to managed_irqs and
> > kernel threads, therefore its incorrect to state that its deprecated.
> > 
> > Remove deprecation warning.
> > 
> > Suggested-by: Chris Friesen <chris.friesen@windriver.com>
> > Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> > 
> > ---
> >  Documentation/admin-guide/kernel-parameters.txt |    1 -
> >  1 file changed, 1 deletion(-)
> > 
> > Index: linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> > ===================================================================
> > --- linux-2.6.orig/Documentation/admin-guide/kernel-parameters.txt
> > +++ linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> > @@ -1926,7 +1926,6 @@
> >  			Format: <RDP>,<reset>,<pci_scan>,<verbosity>
> >  
> >  	isolcpus=	[KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
> > -			[Deprecated - use cpusets instead]
> >  			Format: [flag-list,]<cpu-list>
> >  
> 
> It's still an absolute horrible piece of crap though. nozh_full piling
> more and more shit on it doesn't make it more shiny.

Right. I still plan to propagate it to the cpuset mountpoints at some future
so that this becomes mutable.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [patch 3/3] isolcpus: undeprecate on documentation
  2020-03-31 15:41     ` Marcelo Tosatti
@ 2020-03-31 15:57       ` Peter Zijlstra
  2020-04-04 23:05         ` Christopher Lameter
  0 siblings, 1 reply; 12+ messages in thread
From: Peter Zijlstra @ 2020-03-31 15:57 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: linux-kernel, Frederic Weisbecker, Chris Friesen,
	Thomas Gleixner, Andrew Morton, Jim Somerville,
	Christoph Lameter

On Tue, Mar 31, 2020 at 12:41:46PM -0300, Marcelo Tosatti wrote:
> On Tue, Mar 31, 2020 at 05:22:17PM +0200, Peter Zijlstra wrote:
> > On Sat, Mar 28, 2020 at 12:21:20PM -0300, Marcelo Tosatti wrote:
> > > isolcpus is used to control steering of interrupts to managed_irqs and
> > > kernel threads, therefore its incorrect to state that its deprecated.
> > > 
> > > Remove deprecation warning.
> > > 
> > > Suggested-by: Chris Friesen <chris.friesen@windriver.com>
> > > Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> > > 
> > > ---
> > >  Documentation/admin-guide/kernel-parameters.txt |    1 -
> > >  1 file changed, 1 deletion(-)
> > > 
> > > Index: linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> > > ===================================================================
> > > --- linux-2.6.orig/Documentation/admin-guide/kernel-parameters.txt
> > > +++ linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> > > @@ -1926,7 +1926,6 @@
> > >  			Format: <RDP>,<reset>,<pci_scan>,<verbosity>
> > >  
> > >  	isolcpus=	[KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
> > > -			[Deprecated - use cpusets instead]
> > >  			Format: [flag-list,]<cpu-list>
> > >  
> > 
> > It's still an absolute horrible piece of crap though. nozh_full piling
> > more and more shit on it doesn't make it more shiny.
> 
> Hi Peter,
> 
> Why do you dislike it? What you think would be a decent approach?

Try and reconfigure it after boot.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [patch 3/3] isolcpus: undeprecate on documentation
  2020-03-31 15:57       ` Peter Zijlstra
@ 2020-04-04 23:05         ` Christopher Lameter
  0 siblings, 0 replies; 12+ messages in thread
From: Christopher Lameter @ 2020-04-04 23:05 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Marcelo Tosatti, linux-kernel, Frederic Weisbecker,
	Chris Friesen, Thomas Gleixner, Andrew Morton, Jim Somerville

On Tue, 31 Mar 2020, Peter Zijlstra wrote:

> > Why do you dislike it? What you think would be a decent approach?
>
> Try and reconfigure it after boot.

Not really a problem since this is not the only issue that requires a
reboot.

You have to reboot most of the time if you change applications on a HPC
machine. After all you cannot reliably change the available set of huge
pages after boot. So you have to reboot anyways if you want some cores to
do different things.

And then the machines performance goes down over time due to
memory fragmentation. So you better reboot frequently.

Thus reboot, reboot, reboot. We have become like Windows 95 ...


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-04-04 23:05 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-28 15:21 [patch 0/3] affine kernel threads to specified cpumask (v3) Marcelo Tosatti
2020-03-28 15:21 ` [patch 1/3] kthread: switch to cpu_possible_mask Marcelo Tosatti
2020-03-28 15:21 ` [patch 2/3] isolcpus: affine kernel threads to specified cpumask Marcelo Tosatti
2020-03-31  0:57   ` Frederic Weisbecker
2020-03-31 11:50     ` Marcelo Tosatti
2020-03-31 13:36       ` Frederic Weisbecker
2020-03-28 15:21 ` [patch 3/3] isolcpus: undeprecate on documentation Marcelo Tosatti
2020-03-31 15:22   ` Peter Zijlstra
2020-03-31 15:41     ` Marcelo Tosatti
2020-03-31 15:57       ` Peter Zijlstra
2020-04-04 23:05         ` Christopher Lameter
2020-03-31 15:43     ` Frederic Weisbecker

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.