Re: [PATCH RFC nohz_full 1/7] nohz_full: Add Kconfig parameter for scalable detection of all-idle state
On Mon, Aug 05, 2013 at 03:04:55AM +0200, Frederic Weisbecker wrote: > On Fri, Jul 26, 2013 at 04:19:18PM -0700, Paul E. McKenney wrote: > > From: "Paul E. McKenney" > > > > At least one CPU must keep the scheduling-clock tick running for > > timekeeping purposes whenever there is a non-idle CPU. However, with > > the new nohz_full adaptive-idle machinery, it is difficult to distinguish > > between all CPUs really being idle as opposed to all non-idle CPUs being > > in adaptive-ticks mode. This commit therefore adds a Kconfig parameter > > as a first step towards enabling a scalable detection of full-system > > idle state. > > > > Signed-off-by: Paul E. McKenney > > Cc: Frederic Weisbecker > > Cc: Steven Rostedt > > --- > > kernel/time/Kconfig | 23 +++ > > 1 file changed, 23 insertions(+) > > > > diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig > > index 70f27e8..a613c2a 100644 > > --- a/kernel/time/Kconfig > > +++ b/kernel/time/Kconfig > > @@ -134,6 +134,29 @@ config NO_HZ_FULL_ALL > > Note the boot CPU will still be kept outside the range to > > handle the timekeeping duty. > > > > +config NO_HZ_FULL_SYSIDLE > > + bool "Detect full-system idle state for full dynticks system" > > + depends on NO_HZ_FULL > > + default n > > + help > > +At least one CPU must keep the scheduling-clock tick running > > +for timekeeping purposes whenever there is a non-idle CPU, > > +where "non-idle" includes CPUs with a single runnable task > > +in adaptive-idle mode. > > "adaptive-idle" is particularly confusing here. How about this: > > 'where "non-idle" also includes dynticks CPUs as long they are > running non-idle tasks.' > > Because the underlying adaptive-tick > > +support cannot distinguish between all CPUs being idle and > > +all CPUs each running a single task in adaptive-idle mode, > > s/adaptive-idle/dynticks > > Thanks. Good point, fixed. Thanx, Paul > > +the underlying support simply ensures that there is always > > +a CPU handling the scheduling-clock tick, whether or not all > > +CPUs are idle. This Kconfig option enables scalable detection > > +of the all-CPUs-idle state, thus allowing the scheduling-clock > > +tick to be disabled when all CPUs are idle. Note that scalable > > +detection of the all-CPUs-idle state means that larger systems > > +will be slower to declare the all-CPUs-idle state. > > + > > +Say Y if you would like to help debug all-CPUs-idle detection. > > + > > +Say N if you are unsure. > > + > > config NO_HZ > > bool "Old Idle dynticks config" > > depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS > > -- > > 1.8.1.5 > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH RFC nohz_full 1/7] nohz_full: Add Kconfig parameter for scalable detection of all-idle state
On Mon, Aug 05, 2013 at 03:04:55AM +0200, Frederic Weisbecker wrote: On Fri, Jul 26, 2013 at 04:19:18PM -0700, Paul E. McKenney wrote: From: Paul E. McKenney paul...@linux.vnet.ibm.com At least one CPU must keep the scheduling-clock tick running for timekeeping purposes whenever there is a non-idle CPU. However, with the new nohz_full adaptive-idle machinery, it is difficult to distinguish between all CPUs really being idle as opposed to all non-idle CPUs being in adaptive-ticks mode. This commit therefore adds a Kconfig parameter as a first step towards enabling a scalable detection of full-system idle state. Signed-off-by: Paul E. McKenney paul...@linux.vnet.ibm.com Cc: Frederic Weisbecker fweis...@gmail.com Cc: Steven Rostedt rost...@goodmis.org --- kernel/time/Kconfig | 23 +++ 1 file changed, 23 insertions(+) diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index 70f27e8..a613c2a 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig @@ -134,6 +134,29 @@ config NO_HZ_FULL_ALL Note the boot CPU will still be kept outside the range to handle the timekeeping duty. +config NO_HZ_FULL_SYSIDLE + bool Detect full-system idle state for full dynticks system + depends on NO_HZ_FULL + default n + help +At least one CPU must keep the scheduling-clock tick running +for timekeeping purposes whenever there is a non-idle CPU, +where non-idle includes CPUs with a single runnable task +in adaptive-idle mode. adaptive-idle is particularly confusing here. How about this: 'where non-idle also includes dynticks CPUs as long they are running non-idle tasks.' Because the underlying adaptive-tick +support cannot distinguish between all CPUs being idle and +all CPUs each running a single task in adaptive-idle mode, s/adaptive-idle/dynticks Thanks. Good point, fixed. Thanx, Paul +the underlying support simply ensures that there is always +a CPU handling the scheduling-clock tick, whether or not all +CPUs are idle. This Kconfig option enables scalable detection +of the all-CPUs-idle state, thus allowing the scheduling-clock +tick to be disabled when all CPUs are idle. Note that scalable +detection of the all-CPUs-idle state means that larger systems +will be slower to declare the all-CPUs-idle state. + +Say Y if you would like to help debug all-CPUs-idle detection. + +Say N if you are unsure. + config NO_HZ bool Old Idle dynticks config depends on !ARCH_USES_GETTIMEOFFSET GENERIC_CLOCKEVENTS -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH RFC nohz_full 1/7] nohz_full: Add Kconfig parameter for scalable detection of all-idle state
On Fri, Jul 26, 2013 at 04:19:18PM -0700, Paul E. McKenney wrote: > From: "Paul E. McKenney" > > At least one CPU must keep the scheduling-clock tick running for > timekeeping purposes whenever there is a non-idle CPU. However, with > the new nohz_full adaptive-idle machinery, it is difficult to distinguish > between all CPUs really being idle as opposed to all non-idle CPUs being > in adaptive-ticks mode. This commit therefore adds a Kconfig parameter > as a first step towards enabling a scalable detection of full-system > idle state. > > Signed-off-by: Paul E. McKenney > Cc: Frederic Weisbecker > Cc: Steven Rostedt > --- > kernel/time/Kconfig | 23 +++ > 1 file changed, 23 insertions(+) > > diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig > index 70f27e8..a613c2a 100644 > --- a/kernel/time/Kconfig > +++ b/kernel/time/Kconfig > @@ -134,6 +134,29 @@ config NO_HZ_FULL_ALL >Note the boot CPU will still be kept outside the range to >handle the timekeeping duty. > > +config NO_HZ_FULL_SYSIDLE > + bool "Detect full-system idle state for full dynticks system" > + depends on NO_HZ_FULL > + default n > + help > + At least one CPU must keep the scheduling-clock tick running > + for timekeeping purposes whenever there is a non-idle CPU, > + where "non-idle" includes CPUs with a single runnable task > + in adaptive-idle mode. "adaptive-idle" is particularly confusing here. How about this: 'where "non-idle" also includes dynticks CPUs as long they are running non-idle tasks.' Because the underlying adaptive-tick > + support cannot distinguish between all CPUs being idle and > + all CPUs each running a single task in adaptive-idle mode, s/adaptive-idle/dynticks Thanks. > + the underlying support simply ensures that there is always > + a CPU handling the scheduling-clock tick, whether or not all > + CPUs are idle. This Kconfig option enables scalable detection > + of the all-CPUs-idle state, thus allowing the scheduling-clock > + tick to be disabled when all CPUs are idle. Note that scalable > + detection of the all-CPUs-idle state means that larger systems > + will be slower to declare the all-CPUs-idle state. > + > + Say Y if you would like to help debug all-CPUs-idle detection. > + > + Say N if you are unsure. > + > config NO_HZ > bool "Old Idle dynticks config" > depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS > -- > 1.8.1.5 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH RFC nohz_full 1/7] nohz_full: Add Kconfig parameter for scalable detection of all-idle state
On Fri, Jul 26, 2013 at 04:19:18PM -0700, Paul E. McKenney wrote: From: Paul E. McKenney paul...@linux.vnet.ibm.com At least one CPU must keep the scheduling-clock tick running for timekeeping purposes whenever there is a non-idle CPU. However, with the new nohz_full adaptive-idle machinery, it is difficult to distinguish between all CPUs really being idle as opposed to all non-idle CPUs being in adaptive-ticks mode. This commit therefore adds a Kconfig parameter as a first step towards enabling a scalable detection of full-system idle state. Signed-off-by: Paul E. McKenney paul...@linux.vnet.ibm.com Cc: Frederic Weisbecker fweis...@gmail.com Cc: Steven Rostedt rost...@goodmis.org --- kernel/time/Kconfig | 23 +++ 1 file changed, 23 insertions(+) diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index 70f27e8..a613c2a 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig @@ -134,6 +134,29 @@ config NO_HZ_FULL_ALL Note the boot CPU will still be kept outside the range to handle the timekeeping duty. +config NO_HZ_FULL_SYSIDLE + bool Detect full-system idle state for full dynticks system + depends on NO_HZ_FULL + default n + help + At least one CPU must keep the scheduling-clock tick running + for timekeeping purposes whenever there is a non-idle CPU, + where non-idle includes CPUs with a single runnable task + in adaptive-idle mode. adaptive-idle is particularly confusing here. How about this: 'where non-idle also includes dynticks CPUs as long they are running non-idle tasks.' Because the underlying adaptive-tick + support cannot distinguish between all CPUs being idle and + all CPUs each running a single task in adaptive-idle mode, s/adaptive-idle/dynticks Thanks. + the underlying support simply ensures that there is always + a CPU handling the scheduling-clock tick, whether or not all + CPUs are idle. This Kconfig option enables scalable detection + of the all-CPUs-idle state, thus allowing the scheduling-clock + tick to be disabled when all CPUs are idle. Note that scalable + detection of the all-CPUs-idle state means that larger systems + will be slower to declare the all-CPUs-idle state. + + Say Y if you would like to help debug all-CPUs-idle detection. + + Say N if you are unsure. + config NO_HZ bool Old Idle dynticks config depends on !ARCH_USES_GETTIMEOFFSET GENERIC_CLOCKEVENTS -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH RFC nohz_full 1/7] nohz_full: Add Kconfig parameter for scalable detection of all-idle state
On Mon, Jul 29, 2013 at 11:35:56AM +0800, Lai Jiangshan wrote: > On 07/27/2013 07:19 AM, Paul E. McKenney wrote: > > From: "Paul E. McKenney" > > > > At least one CPU must keep the scheduling-clock tick running for > > timekeeping purposes whenever there is a non-idle CPU. However, with > > the new nohz_full adaptive-idle machinery, it is difficult to distinguish > > between all CPUs really being idle as opposed to all non-idle CPUs being > > in adaptive-ticks mode. This commit therefore adds a Kconfig parameter > > as a first step towards enabling a scalable detection of full-system > > idle state. > > > > Signed-off-by: Paul E. McKenney > > Cc: Frederic Weisbecker > > Cc: Steven Rostedt > > --- > > kernel/time/Kconfig | 23 +++ > > 1 file changed, 23 insertions(+) > > > > diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig > > index 70f27e8..a613c2a 100644 > > --- a/kernel/time/Kconfig > > +++ b/kernel/time/Kconfig > > @@ -134,6 +134,29 @@ config NO_HZ_FULL_ALL > > Note the boot CPU will still be kept outside the range to > > handle the timekeeping duty. > > > > +config NO_HZ_FULL_SYSIDLE > > + bool "Detect full-system idle state for full dynticks system" > > + depends on NO_HZ_FULL > > + default n > > + help > > +At least one CPU must keep the scheduling-clock tick running > > +for timekeeping purposes whenever there is a non-idle CPU, > > +where "non-idle" includes CPUs with a single runnable task > > +in adaptive-idle mode. Because the underlying adaptive-tick > > +support cannot distinguish between all CPUs being idle and > > +all CPUs each running a single task in adaptive-idle mode, > > +the underlying support simply ensures that there is always > > +a CPU handling the scheduling-clock tick, whether or not all > > +CPUs are idle. This Kconfig option enables scalable detection > > +of the all-CPUs-idle state, thus allowing the scheduling-clock > > +tick to be disabled when all CPUs are idle. Note that scalable > > +detection of the all-CPUs-idle state means that larger systems > > +will be slower to declare the all-CPUs-idle state. > > + > > +Say Y if you would like to help debug all-CPUs-idle detection. > > The code is needed only for debug? > I guess not. The code is not used only for debug, but if you enable it now, you will likely be helping to debug it. ;-) Thanx, Paul > > + > > +Say N if you are unsure. > > + > > config NO_HZ > > bool "Old Idle dynticks config" > > depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH RFC nohz_full 1/7] nohz_full: Add Kconfig parameter for scalable detection of all-idle state
On Mon, Jul 29, 2013 at 11:35:56AM +0800, Lai Jiangshan wrote: On 07/27/2013 07:19 AM, Paul E. McKenney wrote: From: Paul E. McKenney paul...@linux.vnet.ibm.com At least one CPU must keep the scheduling-clock tick running for timekeeping purposes whenever there is a non-idle CPU. However, with the new nohz_full adaptive-idle machinery, it is difficult to distinguish between all CPUs really being idle as opposed to all non-idle CPUs being in adaptive-ticks mode. This commit therefore adds a Kconfig parameter as a first step towards enabling a scalable detection of full-system idle state. Signed-off-by: Paul E. McKenney paul...@linux.vnet.ibm.com Cc: Frederic Weisbecker fweis...@gmail.com Cc: Steven Rostedt rost...@goodmis.org --- kernel/time/Kconfig | 23 +++ 1 file changed, 23 insertions(+) diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index 70f27e8..a613c2a 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig @@ -134,6 +134,29 @@ config NO_HZ_FULL_ALL Note the boot CPU will still be kept outside the range to handle the timekeeping duty. +config NO_HZ_FULL_SYSIDLE + bool Detect full-system idle state for full dynticks system + depends on NO_HZ_FULL + default n + help +At least one CPU must keep the scheduling-clock tick running +for timekeeping purposes whenever there is a non-idle CPU, +where non-idle includes CPUs with a single runnable task +in adaptive-idle mode. Because the underlying adaptive-tick +support cannot distinguish between all CPUs being idle and +all CPUs each running a single task in adaptive-idle mode, +the underlying support simply ensures that there is always +a CPU handling the scheduling-clock tick, whether or not all +CPUs are idle. This Kconfig option enables scalable detection +of the all-CPUs-idle state, thus allowing the scheduling-clock +tick to be disabled when all CPUs are idle. Note that scalable +detection of the all-CPUs-idle state means that larger systems +will be slower to declare the all-CPUs-idle state. + +Say Y if you would like to help debug all-CPUs-idle detection. The code is needed only for debug? I guess not. The code is not used only for debug, but if you enable it now, you will likely be helping to debug it. ;-) Thanx, Paul + +Say N if you are unsure. + config NO_HZ bool Old Idle dynticks config depends on !ARCH_USES_GETTIMEOFFSET GENERIC_CLOCKEVENTS -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH RFC nohz_full 1/7] nohz_full: Add Kconfig parameter for scalable detection of all-idle state
On 07/27/2013 07:19 AM, Paul E. McKenney wrote: > From: "Paul E. McKenney" > > At least one CPU must keep the scheduling-clock tick running for > timekeeping purposes whenever there is a non-idle CPU. However, with > the new nohz_full adaptive-idle machinery, it is difficult to distinguish > between all CPUs really being idle as opposed to all non-idle CPUs being > in adaptive-ticks mode. This commit therefore adds a Kconfig parameter > as a first step towards enabling a scalable detection of full-system > idle state. > > Signed-off-by: Paul E. McKenney > Cc: Frederic Weisbecker > Cc: Steven Rostedt > --- > kernel/time/Kconfig | 23 +++ > 1 file changed, 23 insertions(+) > > diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig > index 70f27e8..a613c2a 100644 > --- a/kernel/time/Kconfig > +++ b/kernel/time/Kconfig > @@ -134,6 +134,29 @@ config NO_HZ_FULL_ALL >Note the boot CPU will still be kept outside the range to >handle the timekeeping duty. > > +config NO_HZ_FULL_SYSIDLE > + bool "Detect full-system idle state for full dynticks system" > + depends on NO_HZ_FULL > + default n > + help > + At least one CPU must keep the scheduling-clock tick running > + for timekeeping purposes whenever there is a non-idle CPU, > + where "non-idle" includes CPUs with a single runnable task > + in adaptive-idle mode. Because the underlying adaptive-tick > + support cannot distinguish between all CPUs being idle and > + all CPUs each running a single task in adaptive-idle mode, > + the underlying support simply ensures that there is always > + a CPU handling the scheduling-clock tick, whether or not all > + CPUs are idle. This Kconfig option enables scalable detection > + of the all-CPUs-idle state, thus allowing the scheduling-clock > + tick to be disabled when all CPUs are idle. Note that scalable > + detection of the all-CPUs-idle state means that larger systems > + will be slower to declare the all-CPUs-idle state. > + > + Say Y if you would like to help debug all-CPUs-idle detection. The code is needed only for debug? I guess not. > + > + Say N if you are unsure. > + > config NO_HZ > bool "Old Idle dynticks config" > depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH RFC nohz_full 1/7] nohz_full: Add Kconfig parameter for scalable detection of all-idle state
On 07/27/2013 07:19 AM, Paul E. McKenney wrote: From: Paul E. McKenney paul...@linux.vnet.ibm.com At least one CPU must keep the scheduling-clock tick running for timekeeping purposes whenever there is a non-idle CPU. However, with the new nohz_full adaptive-idle machinery, it is difficult to distinguish between all CPUs really being idle as opposed to all non-idle CPUs being in adaptive-ticks mode. This commit therefore adds a Kconfig parameter as a first step towards enabling a scalable detection of full-system idle state. Signed-off-by: Paul E. McKenney paul...@linux.vnet.ibm.com Cc: Frederic Weisbecker fweis...@gmail.com Cc: Steven Rostedt rost...@goodmis.org --- kernel/time/Kconfig | 23 +++ 1 file changed, 23 insertions(+) diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index 70f27e8..a613c2a 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig @@ -134,6 +134,29 @@ config NO_HZ_FULL_ALL Note the boot CPU will still be kept outside the range to handle the timekeeping duty. +config NO_HZ_FULL_SYSIDLE + bool Detect full-system idle state for full dynticks system + depends on NO_HZ_FULL + default n + help + At least one CPU must keep the scheduling-clock tick running + for timekeeping purposes whenever there is a non-idle CPU, + where non-idle includes CPUs with a single runnable task + in adaptive-idle mode. Because the underlying adaptive-tick + support cannot distinguish between all CPUs being idle and + all CPUs each running a single task in adaptive-idle mode, + the underlying support simply ensures that there is always + a CPU handling the scheduling-clock tick, whether or not all + CPUs are idle. This Kconfig option enables scalable detection + of the all-CPUs-idle state, thus allowing the scheduling-clock + tick to be disabled when all CPUs are idle. Note that scalable + detection of the all-CPUs-idle state means that larger systems + will be slower to declare the all-CPUs-idle state. + + Say Y if you would like to help debug all-CPUs-idle detection. The code is needed only for debug? I guess not. + + Say N if you are unsure. + config NO_HZ bool Old Idle dynticks config depends on !ARCH_USES_GETTIMEOFFSET GENERIC_CLOCKEVENTS -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/