* [PATCH] scheduler: domain: init next_balance in nohz_idle_balancer with jiffies
@ 2012-01-30 12:44 Peter De Schrijver
2012-01-31 15:44 ` Peter Zijlstra
0 siblings, 1 reply; 12+ messages in thread
From: Peter De Schrijver @ 2012-01-30 12:44 UTC (permalink / raw)
To: Peter De Schrijver
Cc: Diwakar Tundlam, Ingo Molnar, Peter Zijlstra, linux-kernel
From: Diwakar Tundlam <dtundlam@nvidia.com>
The next_balance parameter of nohz_idle_balancer should be initialized
to jiffies since jiffies itself is initialized to 300 seconds shy of
overflow. Otherwise, nohz_idle_balancer does not run for the first 5
mins after bootup.
Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Peter Boonstoppel <pboonstoppel@nvidia.com>
Reviewed-by: Satya Popuri <spopuri@nvidia.com>
---
kernel/sched.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/kernel/sched.c b/kernel/sched.c
index b5efd6c..d3f291f 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -8383,6 +8383,7 @@ void __init sched_init(void)
atomic_set(&nohz.load_balancer, nr_cpu_ids);
atomic_set(&nohz.first_pick_cpu, nr_cpu_ids);
atomic_set(&nohz.second_pick_cpu, nr_cpu_ids);
+ nohz.next_balance = jiffies;
#endif
/* May be allocated at isolcpus cmdline parse time */
if (cpu_isolated_map == NULL)
--
1.7.7.rc0.72.g4b5ea.dirty
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] scheduler: domain: init next_balance in nohz_idle_balancer with jiffies
2012-01-30 12:44 [PATCH] scheduler: domain: init next_balance in nohz_idle_balancer with jiffies Peter De Schrijver
@ 2012-01-31 15:44 ` Peter Zijlstra
2012-01-31 19:18 ` Diwakar Tundlam
2012-01-31 19:23 ` Diwakar Tundlam
0 siblings, 2 replies; 12+ messages in thread
From: Peter Zijlstra @ 2012-01-31 15:44 UTC (permalink / raw)
To: Peter De Schrijver; +Cc: Diwakar Tundlam, Ingo Molnar, linux-kernel
On Mon, 2012-01-30 at 14:44 +0200, Peter De Schrijver wrote:
> From: Diwakar Tundlam <dtundlam@nvidia.com>
>
> The next_balance parameter of nohz_idle_balancer should be initialized
> to jiffies since jiffies itself is initialized to 300 seconds shy of
> overflow. Otherwise, nohz_idle_balancer does not run for the first 5
> mins after bootup.
>
> Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
> Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
> Reviewed-by: Peter Boonstoppel <pboonstoppel@nvidia.com>
> Reviewed-by: Satya Popuri <spopuri@nvidia.com>
> ---
> kernel/sched.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
You'll find that this file no longer exists...
> diff --git a/kernel/sched.c b/kernel/sched.c
> index b5efd6c..d3f291f 100644
> --- a/kernel/sched.c
> +++ b/kernel/sched.c
> @@ -8383,6 +8383,7 @@ void __init sched_init(void)
> atomic_set(&nohz.load_balancer, nr_cpu_ids);
> atomic_set(&nohz.first_pick_cpu, nr_cpu_ids);
> atomic_set(&nohz.second_pick_cpu, nr_cpu_ids);
> + nohz.next_balance = jiffies;
> #endif
> /* May be allocated at isolcpus cmdline parse time */
> if (cpu_isolated_map == NULL)
Not does this code section..
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [PATCH] scheduler: domain: init next_balance in nohz_idle_balancer with jiffies
2012-01-31 15:44 ` Peter Zijlstra
@ 2012-01-31 19:18 ` Diwakar Tundlam
2012-01-31 20:03 ` Peter Zijlstra
2012-01-31 19:23 ` Diwakar Tundlam
1 sibling, 1 reply; 12+ messages in thread
From: Diwakar Tundlam @ 2012-01-31 19:18 UTC (permalink / raw)
To: 'Peter Zijlstra', Peter De Schrijver
Cc: Ingo Molnar, linux-kernel, 'Kamalesh Babulal'
Yes, the change should be ported to kernel/sched/fair.c under init_sched_fair_class(). But that's for 3.3. I will send a separate patch for 3.3 shortly.
All previous kernels have the old structure where the patch can be applied as it is.
--Diwakar.
-----Original Message-----
From: Peter Zijlstra [mailto:peterz@infradead.org]
Sent: Tuesday, January 31, 2012 7:45 AM
To: Peter De Schrijver
Cc: Diwakar Tundlam; Ingo Molnar; linux-kernel@vger.kernel.org
Subject: Re: [PATCH] scheduler: domain: init next_balance in nohz_idle_balancer with jiffies
On Mon, 2012-01-30 at 14:44 +0200, Peter De Schrijver wrote:
> From: Diwakar Tundlam <dtundlam@nvidia.com>
>
> The next_balance parameter of nohz_idle_balancer should be initialized
> to jiffies since jiffies itself is initialized to 300 seconds shy of
> overflow. Otherwise, nohz_idle_balancer does not run for the first 5
> mins after bootup.
>
> Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
> Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
> Reviewed-by: Peter Boonstoppel <pboonstoppel@nvidia.com>
> Reviewed-by: Satya Popuri <spopuri@nvidia.com>
> ---
> kernel/sched.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
You'll find that this file no longer exists...
> diff --git a/kernel/sched.c b/kernel/sched.c index b5efd6c..d3f291f
> 100644
> --- a/kernel/sched.c
> +++ b/kernel/sched.c
> @@ -8383,6 +8383,7 @@ void __init sched_init(void)
> atomic_set(&nohz.load_balancer, nr_cpu_ids);
> atomic_set(&nohz.first_pick_cpu, nr_cpu_ids);
> atomic_set(&nohz.second_pick_cpu, nr_cpu_ids);
> + nohz.next_balance = jiffies;
> #endif
> /* May be allocated at isolcpus cmdline parse time */
> if (cpu_isolated_map == NULL)
Not does this code section..
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [PATCH] scheduler: domain: init next_balance in nohz_idle_balancer with jiffies
2012-01-31 15:44 ` Peter Zijlstra
2012-01-31 19:18 ` Diwakar Tundlam
@ 2012-01-31 19:23 ` Diwakar Tundlam
2012-01-31 20:02 ` Peter Zijlstra
1 sibling, 1 reply; 12+ messages in thread
From: Diwakar Tundlam @ 2012-01-31 19:23 UTC (permalink / raw)
To: 'Peter Zijlstra', Peter De Schrijver
Cc: Ingo Molnar, linux-kernel, 'Kamalesh Babulal'
Here's the patch for kernel 3.3-rc1:
** kernel/sched/fair.c 2012-01-31 11:19:52.032421593 -0800
***************
*** 5585,5597 ****
__init void init_sched_fair_class(void)
{
#ifdef CONFIG_SMP
open_softirq(SCHED_SOFTIRQ, run_rebalance_domains);
#ifdef CONFIG_NO_HZ
zalloc_cpumask_var(&nohz.idle_cpus_mask, GFP_NOWAIT);
+ nohz.next_balance = jiffies;
#endif
#endif /* SMP */
}
--- 5585,5596 ----
-----Original Message-----
From: Peter Zijlstra [mailto:peterz@infradead.org]
Sent: Tuesday, January 31, 2012 7:45 AM
To: Peter De Schrijver
Cc: Diwakar Tundlam; Ingo Molnar; linux-kernel@vger.kernel.org
Subject: Re: [PATCH] scheduler: domain: init next_balance in nohz_idle_balancer with jiffies
On Mon, 2012-01-30 at 14:44 +0200, Peter De Schrijver wrote:
> From: Diwakar Tundlam <dtundlam@nvidia.com>
>
> The next_balance parameter of nohz_idle_balancer should be initialized
> to jiffies since jiffies itself is initialized to 300 seconds shy of
> overflow. Otherwise, nohz_idle_balancer does not run for the first 5
> mins after bootup.
>
> Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
> Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
> Reviewed-by: Peter Boonstoppel <pboonstoppel@nvidia.com>
> Reviewed-by: Satya Popuri <spopuri@nvidia.com>
> ---
> kernel/sched.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
You'll find that this file no longer exists...
> diff --git a/kernel/sched.c b/kernel/sched.c index b5efd6c..d3f291f
> 100644
> --- a/kernel/sched.c
> +++ b/kernel/sched.c
> @@ -8383,6 +8383,7 @@ void __init sched_init(void)
> atomic_set(&nohz.load_balancer, nr_cpu_ids);
> atomic_set(&nohz.first_pick_cpu, nr_cpu_ids);
> atomic_set(&nohz.second_pick_cpu, nr_cpu_ids);
> + nohz.next_balance = jiffies;
> #endif
> /* May be allocated at isolcpus cmdline parse time */
> if (cpu_isolated_map == NULL)
Not does this code section..
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [PATCH] scheduler: domain: init next_balance in nohz_idle_balancer with jiffies
2012-01-31 19:23 ` Diwakar Tundlam
@ 2012-01-31 20:02 ` Peter Zijlstra
2012-03-07 22:44 ` [PATCH] scheduler: domain: correctly initialize 'next_balance' in 'nohz' idle balancer Diwakar Tundlam
0 siblings, 1 reply; 12+ messages in thread
From: Peter Zijlstra @ 2012-01-31 20:02 UTC (permalink / raw)
To: Diwakar Tundlam
Cc: Peter De Schrijver, Ingo Molnar, linux-kernel,
'Kamalesh Babulal'
On Tue, 2012-01-31 at 11:23 -0800, Diwakar Tundlam wrote:
> Here's the patch for kernel 3.3-rc1:
>
> ** kernel/sched/fair.c 2012-01-31 11:19:52.032421593 -0800
> ***************
> *** 5585,5597 ****
>
> __init void init_sched_fair_class(void)
> {
> #ifdef CONFIG_SMP
> open_softirq(SCHED_SOFTIRQ, run_rebalance_domains);
>
> #ifdef CONFIG_NO_HZ
> zalloc_cpumask_var(&nohz.idle_cpus_mask, GFP_NOWAIT);
> + nohz.next_balance = jiffies;
> #endif
> #endif /* SMP */
>
> }
This is not something I can apply, please see
Documentation/SubmittingPatches.
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [PATCH] scheduler: domain: init next_balance in nohz_idle_balancer with jiffies
2012-01-31 19:18 ` Diwakar Tundlam
@ 2012-01-31 20:03 ` Peter Zijlstra
0 siblings, 0 replies; 12+ messages in thread
From: Peter Zijlstra @ 2012-01-31 20:03 UTC (permalink / raw)
To: Diwakar Tundlam
Cc: Peter De Schrijver, Ingo Molnar, linux-kernel,
'Kamalesh Babulal'
On Tue, 2012-01-31 at 11:18 -0800, Diwakar Tundlam wrote:
> Yes, the change should be ported to kernel/sched/fair.c under
> init_sched_fair_class(). But that's for 3.3. I will send a separate
> patch for 3.3 shortly.
>
Patches are sent against the current (3.3-rc) or next (3.4) development
trees, anything older can possibly get backports through the stable
stuff but is completely irrelevant for patch submission.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] scheduler: domain: correctly initialize 'next_balance' in 'nohz' idle balancer
2012-01-31 20:02 ` Peter Zijlstra
@ 2012-03-07 22:44 ` Diwakar Tundlam
2012-03-08 10:39 ` Peter Zijlstra
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Diwakar Tundlam @ 2012-03-07 22:44 UTC (permalink / raw)
To: Ingo Molnar, 'Peter Zijlstra', 'Jens Axboe',
'Randy Dunlap'
Cc: Peter De Schrijver, linux-kernel, 'Linus Torvalds'
scheduler: domain: init next_balance in nohz_idle_balancer with jiffies
The 'next_balance' field of 'nohz' idle balancer must be initialized
to jiffies. Since jiffies is initialized to negative 300 seconds the
'nohz' idle balancer does not run for the first 300s (5mins) after
bootup. If no new processes are spawed or no idle cycles happen, the
load on the cpus will remain unbalanced for that duration.
Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
---
1 files changed, 1 insertions(+), 0 deletions(-)
diff -up sched/fair.c{.orig,}
--- sched/fair.c.orig 2012-03-07 08:33:03.000000000 -0800
+++ sched/fair.c 2012-03-07 13:50:30.787265795 -0800
@@ -5614,6 +5614,7 @@ __init void init_sched_fair_class(void)
open_softirq(SCHED_SOFTIRQ, run_rebalance_domains);
#ifdef CONFIG_NO_HZ
+ nohz.next_balance = jiffies;
zalloc_cpumask_var(&nohz.idle_cpus_mask, GFP_NOWAIT);
cpu_notifier(sched_ilb_notifier, 0);
#endif
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] scheduler: domain: correctly initialize 'next_balance' in 'nohz' idle balancer
2012-03-07 22:44 ` [PATCH] scheduler: domain: correctly initialize 'next_balance' in 'nohz' idle balancer Diwakar Tundlam
@ 2012-03-08 10:39 ` Peter Zijlstra
2012-03-08 23:44 ` [PATCH] init: check printed flag to skip printing message Diwakar Tundlam
2012-03-13 4:45 ` [tip:sched/core] sched/nohz: Correctly initialize 'next_balance' in 'nohz' idle balancer tip-bot for Diwakar Tundlam
2 siblings, 0 replies; 12+ messages in thread
From: Peter Zijlstra @ 2012-03-08 10:39 UTC (permalink / raw)
To: Diwakar Tundlam
Cc: Ingo Molnar, 'Jens Axboe', 'Randy Dunlap',
Peter De Schrijver, linux-kernel, 'Linus Torvalds'
On Wed, 2012-03-07 at 14:44 -0800, Diwakar Tundlam wrote:
> scheduler: domain: init next_balance in nohz_idle_balancer with jiffies
That's already in the subject, no need to repeat that in the body.
> The 'next_balance' field of 'nohz' idle balancer must be initialized
> to jiffies. Since jiffies is initialized to negative 300 seconds the
> 'nohz' idle balancer does not run for the first 300s (5mins) after
> bootup. If no new processes are spawed or no idle cycles happen, the
> load on the cpus will remain unbalanced for that duration.
>
> Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
> ---
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff -up sched/fair.c{.orig,}
> --- sched/fair.c.orig 2012-03-07 08:33:03.000000000 -0800
> +++ sched/fair.c 2012-03-07 13:50:30.787265795 -0800
This doesn't work, patches should apply with -p1. I just read
Documentation/SubmittingPatches and I must admit to that not being very
clear.
In any case, I can recommend to using quilt or git to create patches.
I've hand edited the patch for now, but in future please learn to use
either of these tools.
Final patch for re{f,v}erence.. :-)
---
Subject: scheduler: domain: correctly initialize 'next_balance' in 'nohz' idle balancer
From: Diwakar Tundlam <dtundlam@nvidia.com>
Date: Wed, 7 Mar 2012 14:44:26 -0800
The 'next_balance' field of 'nohz' idle balancer must be initialized
to jiffies. Since jiffies is initialized to negative 300 seconds the
'nohz' idle balancer does not run for the first 300s (5mins) after
bootup. If no new processes are spawed or no idle cycles happen, the
load on the cpus will remain unbalanced for that duration.
Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1DD7BFEDD3147247B1355BEFEFE4665237994F30EF@HQMAIL04.nvidia.com
---
kernel/sched/fair.c | 1 +
1 file changed, 1 insertion(+)
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -5603,6 +5603,7 @@ __init void init_sched_fair_class(void)
open_softirq(SCHED_SOFTIRQ, run_rebalance_domains);
#ifdef CONFIG_NO_HZ
+ nohz.next_balance = jiffies;
zalloc_cpumask_var(&nohz.idle_cpus_mask, GFP_NOWAIT);
cpu_notifier(sched_ilb_notifier, 0);
#endif
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] init: check printed flag to skip printing message
2012-03-07 22:44 ` [PATCH] scheduler: domain: correctly initialize 'next_balance' in 'nohz' idle balancer Diwakar Tundlam
2012-03-08 10:39 ` Peter Zijlstra
@ 2012-03-08 23:44 ` Diwakar Tundlam
2012-03-09 0:07 ` Andrew Morton
2012-03-09 0:11 ` Joe Perches
2012-03-13 4:45 ` [tip:sched/core] sched/nohz: Correctly initialize 'next_balance' in 'nohz' idle balancer tip-bot for Diwakar Tundlam
2 siblings, 2 replies; 12+ messages in thread
From: Diwakar Tundlam @ 2012-03-08 23:44 UTC (permalink / raw)
To: 'Andrew Morton', 'Phil Carmody',
'Russell King', 'Greg Kroah-Hartman',
'Sameer Nanda'
Cc: Peter De Schrijver, 'linux-kernel@vger.kernel.org',
'Linus Torvalds'
Otherwise the 'Calibration skipped' message gets printed everytime a CPU is
hotplugged in, cluttering console for systems that frequently hotplug CPUs.
Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
---
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/init/calibrate.c b/init/calibrate.c
index 5f117ca..fda0a7b 100644
--- a/init/calibrate.c
+++ b/init/calibrate.c
@@ -267,7 +267,8 @@ void __cpuinit calibrate_delay(void)
if (per_cpu(cpu_loops_per_jiffy, this_cpu)) {
lpj = per_cpu(cpu_loops_per_jiffy, this_cpu);
- pr_info("Calibrating delay loop (skipped) "
+ if (!printed)
+ pr_info("Calibrating delay loop (skipped) "
"already calibrated this CPU");
} else if (preset_lpj) {
lpj = preset_lpj;
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] init: check printed flag to skip printing message
2012-03-08 23:44 ` [PATCH] init: check printed flag to skip printing message Diwakar Tundlam
@ 2012-03-09 0:07 ` Andrew Morton
2012-03-09 0:11 ` Joe Perches
1 sibling, 0 replies; 12+ messages in thread
From: Andrew Morton @ 2012-03-09 0:07 UTC (permalink / raw)
To: Diwakar Tundlam
Cc: 'Phil Carmody', 'Russell King',
'Greg Kroah-Hartman', 'Sameer Nanda',
Peter De Schrijver, 'linux-kernel@vger.kernel.org',
'Linus Torvalds',
Mike Travis
On Thu, 8 Mar 2012 15:44:16 -0800
Diwakar Tundlam <dtundlam@nvidia.com> wrote:
> Otherwise the 'Calibration skipped' message gets printed everytime a CPU is
> hotplugged in, cluttering console for systems that frequently hotplug CPUs.
>
> Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
> ---
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/init/calibrate.c b/init/calibrate.c
> index 5f117ca..fda0a7b 100644
> --- a/init/calibrate.c
> +++ b/init/calibrate.c
> @@ -267,7 +267,8 @@ void __cpuinit calibrate_delay(void)
>
> if (per_cpu(cpu_loops_per_jiffy, this_cpu)) {
> lpj = per_cpu(cpu_loops_per_jiffy, this_cpu);
> - pr_info("Calibrating delay loop (skipped) "
> + if (!printed)
> + pr_info("Calibrating delay loop (skipped) "
> "already calibrated this CPU");
> } else if (preset_lpj) {
> lpj = preset_lpj;
oops, yes.
Looking at that code, I think Mike broke it in 2009 with feae3203d71
("timers, init: Limit the number of per cpu calibration bootup
messages"):
: diff --git a/init/calibrate.c b/init/calibrate.c
: index a379c90..6eb48e5 100644
: --- a/init/calibrate.c
: +++ b/init/calibrate.c
: @@ -123,23 +123,26 @@ void __cpuinit calibrate_delay(void)
: {
: unsigned long ticks, loopbit;
: int lps_precision = LPS_PREC;
: + static bool printed;
:
: if (preset_lpj) {
: loops_per_jiffy = preset_lpj;
: - printk(KERN_INFO
: - "Calibrating delay loop (skipped) preset value.. ");
: - } else if ((smp_processor_id() == 0) && lpj_fine) {
: + if (!printed)
: + pr_info("Calibrating delay loop (skipped) "
: + "preset value.. ");
: + } else if ((!printed) && lpj_fine) {
: loops_per_jiffy = lpj_fine;
What's going on here? Why should the value of `printed' affect the
value of loops_per_jiffy?
(lpj_fine is set only in x86 tsc code, under late_time_init(), and
late_time_init() is called before calibrate_delay(), so we got that
part right).
: loops_per_jiffy = lpj_fine;
: - printk(KERN_INFO
: - "Calibrating delay loop (skipped), "
: + pr_info("Calibrating delay loop (skipped), "
: "value calculated using timer frequency.. ");
: } else if ((loops_per_jiffy = calibrate_delay_direct()) != 0) {
: - printk(KERN_INFO
: - "Calibrating delay using timer specific routine.. ");
: + if (!printed)
: + pr_info("Calibrating delay using timer "
: + "specific routine.. ");
: } else {
: loops_per_jiffy = (1<<12);
:
: - printk(KERN_INFO "Calibrating delay loop... ");
: + if (!printed)
: + pr_info("Calibrating delay loop... ");
: while ((loops_per_jiffy <<= 1) != 0) {
: /* wait for "start of" clock tick */
: ticks = jiffies;
: @@ -170,7 +173,10 @@ void __cpuinit calibrate_delay(void)
: loops_per_jiffy &= ~loopbit;
: }
: }
: - printk(KERN_CONT "%lu.%02lu BogoMIPS (lpj=%lu)\n",
: + if (!printed)
: + pr_cont("%lu.%02lu BogoMIPS (lpj=%lu)\n",
: loops_per_jiffy/(500000/HZ),
: (loops_per_jiffy/(5000/HZ)) % 100, loops_per_jiffy);
: +
: + printed = true;
: }
: diff --git a/kernel/cpu.c b/kernel/cpu.c
: index 6ba0f1e..7c4e271 100644
: --- a/kernel/cpu.c
: +++ b/kernel/cpu.c
: @@ -392,10 +392,9 @@ int disable_nonboot_cpus(void)
: if (cpu == first_cpu)
: continue;
: error = _cpu_down(cpu, 1);
: - if (!error) {
: + if (!error)
: cpumask_set_cpu(cpu, frozen_cpus);
: - printk("CPU%d is down\n", cpu);
: - } else {
: + else {
: printk(KERN_ERR "Error taking CPU%d down: %d\n",
: cpu, error);
: break;
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] init: check printed flag to skip printing message
2012-03-08 23:44 ` [PATCH] init: check printed flag to skip printing message Diwakar Tundlam
2012-03-09 0:07 ` Andrew Morton
@ 2012-03-09 0:11 ` Joe Perches
1 sibling, 0 replies; 12+ messages in thread
From: Joe Perches @ 2012-03-09 0:11 UTC (permalink / raw)
To: Diwakar Tundlam
Cc: 'Andrew Morton', 'Phil Carmody',
'Russell King', 'Greg Kroah-Hartman',
'Sameer Nanda',
Peter De Schrijver, 'linux-kernel@vger.kernel.org',
'Linus Torvalds'
On Thu, 2012-03-08 at 15:44 -0800, Diwakar Tundlam wrote:
> Otherwise the 'Calibration skipped' message gets printed everytime a CPU is
> hotplugged in, cluttering console for systems that frequently hotplug CPUs.
Perhaps this is more uniform and it saves a few bytes too.
$ size init/calibrate.o*
text data bss dec hex filename
2933 73 521 3527 dc7 init/calibrate.o.new
2957 73 513 3543 dd7 init/calibrate.o.old
init/calibrate.c | 21 +++++++++++----------
1 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/init/calibrate.c b/init/calibrate.c
index 5f117ca..4f0af03 100644
--- a/init/calibrate.c
+++ b/init/calibrate.c
@@ -267,31 +267,32 @@ void __cpuinit calibrate_delay(void)
if (per_cpu(cpu_loops_per_jiffy, this_cpu)) {
lpj = per_cpu(cpu_loops_per_jiffy, this_cpu);
- pr_info("Calibrating delay loop (skipped) "
- "already calibrated this CPU");
+ if (!printed)
+ pr_info("Calibrating delay loop%s",
+ " (skipped) already calibrated this CPU");
} else if (preset_lpj) {
lpj = preset_lpj;
if (!printed)
- pr_info("Calibrating delay loop (skipped) "
- "preset value.. ");
+ pr_info("Calibrating delay loop%s",
+ " (skipped) preset value..");
} else if ((!printed) && lpj_fine) {
lpj = lpj_fine;
- pr_info("Calibrating delay loop (skipped), "
- "value calculated using timer frequency.. ");
+ pr_info("Calibrating delay loop%s",
+ " (skipped), value calculated using timer frequency..");
} else if ((lpj = calibrate_delay_is_known())) {
;
} else if ((lpj = calibrate_delay_direct()) != 0) {
if (!printed)
- pr_info("Calibrating delay using timer "
- "specific routine.. ");
+ pr_info("Calibrating delay loop%s",
+ " using timer specific routine..");
} else {
if (!printed)
- pr_info("Calibrating delay loop... ");
+ pr_info("Calibrating delay loop%s", "...");
lpj = calibrate_delay_converge();
}
per_cpu(cpu_loops_per_jiffy, this_cpu) = lpj;
if (!printed)
- pr_cont("%lu.%02lu BogoMIPS (lpj=%lu)\n",
+ pr_cont(" %lu.%02lu BogoMIPS (lpj=%lu)\n",
lpj/(500000/HZ),
(lpj/(5000/HZ)) % 100, lpj);
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [tip:sched/core] sched/nohz: Correctly initialize 'next_balance' in 'nohz' idle balancer
2012-03-07 22:44 ` [PATCH] scheduler: domain: correctly initialize 'next_balance' in 'nohz' idle balancer Diwakar Tundlam
2012-03-08 10:39 ` Peter Zijlstra
2012-03-08 23:44 ` [PATCH] init: check printed flag to skip printing message Diwakar Tundlam
@ 2012-03-13 4:45 ` tip-bot for Diwakar Tundlam
2 siblings, 0 replies; 12+ messages in thread
From: tip-bot for Diwakar Tundlam @ 2012-03-13 4:45 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, hpa, mingo, a.p.zijlstra, dtundlam, tglx, mingo
Commit-ID: 554cecaf733623b327eef9652b65965eb1081b81
Gitweb: http://git.kernel.org/tip/554cecaf733623b327eef9652b65965eb1081b81
Author: Diwakar Tundlam <dtundlam@nvidia.com>
AuthorDate: Wed, 7 Mar 2012 14:44:26 -0800
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Mon, 12 Mar 2012 20:43:16 +0100
sched/nohz: Correctly initialize 'next_balance' in 'nohz' idle balancer
The 'next_balance' field of 'nohz' idle balancer must be initialized
to jiffies. Since jiffies is initialized to negative 300 seconds the
'nohz' idle balancer does not run for the first 300s (5mins) after
bootup. If no new processes are spawed or no idle cycles happen, the
load on the cpus will remain unbalanced for that duration.
Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1DD7BFEDD3147247B1355BEFEFE4665237994F30EF@HQMAIL04.nvidia.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
kernel/sched/fair.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index def17aa..11f3979 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -5571,6 +5571,7 @@ __init void init_sched_fair_class(void)
open_softirq(SCHED_SOFTIRQ, run_rebalance_domains);
#ifdef CONFIG_NO_HZ
+ nohz.next_balance = jiffies;
zalloc_cpumask_var(&nohz.idle_cpus_mask, GFP_NOWAIT);
cpu_notifier(sched_ilb_notifier, 0);
#endif
^ permalink raw reply related [flat|nested] 12+ messages in thread
end of thread, other threads:[~2012-03-13 4:46 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-30 12:44 [PATCH] scheduler: domain: init next_balance in nohz_idle_balancer with jiffies Peter De Schrijver
2012-01-31 15:44 ` Peter Zijlstra
2012-01-31 19:18 ` Diwakar Tundlam
2012-01-31 20:03 ` Peter Zijlstra
2012-01-31 19:23 ` Diwakar Tundlam
2012-01-31 20:02 ` Peter Zijlstra
2012-03-07 22:44 ` [PATCH] scheduler: domain: correctly initialize 'next_balance' in 'nohz' idle balancer Diwakar Tundlam
2012-03-08 10:39 ` Peter Zijlstra
2012-03-08 23:44 ` [PATCH] init: check printed flag to skip printing message Diwakar Tundlam
2012-03-09 0:07 ` Andrew Morton
2012-03-09 0:11 ` Joe Perches
2012-03-13 4:45 ` [tip:sched/core] sched/nohz: Correctly initialize 'next_balance' in 'nohz' idle balancer tip-bot for Diwakar Tundlam
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).