All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] watchdog: Quiet down the boot messages
@ 2012-06-08 21:03 Don Zickus
  2012-06-08 21:39 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Don Zickus @ 2012-06-08 21:03 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, nzimmer, joe, Don Zickus

A bunch of bugzillas have complained how noisy the nmi_watchdog is during
boot-up especially with its expected failure cases (like virt and bios
resource contention).

This is my attempt to quiet them down and keep it less confusing for the end
user.  What I did is print the message for cpu0 and save it for future
comparisons.  If future cpus have an identical message as cpu0, then don't
print the redundant info.  However, if a future cpu has a different message,
happily print that loudly.

Before the change, you would see something like:

    ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
    CPU0: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz stepping 0a
    Performance Events: PEBS fmt0+, Core2 events, Intel PMU driver.
    ... version:                2
    ... bit width:              40
    ... generic registers:      2
    ... value mask:             000000ffffffffff
    ... max period:             000000007fffffff
    ... fixed-purpose events:   3
    ... event mask:             0000000700000003
    NMI watchdog enabled, takes one hw-pmu counter.
    Booting Node   0, Processors  #1
    NMI watchdog enabled, takes one hw-pmu counter.
     #2
    NMI watchdog enabled, takes one hw-pmu counter.
     #3 Ok.
    NMI watchdog enabled, takes one hw-pmu counter.
    Brought up 4 CPUs
    Total of 4 processors activated (22607.24 BogoMIPS).

After the change, it is simplified to:

    ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
    CPU0: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz stepping 0a
    Performance Events: PEBS fmt0+, Core2 events, Intel PMU driver.
    ... version:                2
    ... bit width:              40
    ... generic registers:      2
    ... value mask:             000000ffffffffff
    ... max period:             000000007fffffff
    ... fixed-purpose events:   3
    ... event mask:             0000000700000003
    NMI watchdog enabled, takes one hw-pmu counter.
    Booting Node   0, Processors  #1 #2 #3 Ok.
    Brought up 4 CPUs

V2: little changes based on Joe Perches' feedback

Reported-and-tested-by: Nathan Zimmer <nzimmer@sgi.com>
Signed-off-by: Don Zickus <dzickus@redhat.com>
---
 kernel/watchdog.c |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index e5e1d85..6affa65 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -377,6 +377,13 @@ static int watchdog_nmi_enable(int cpu)
 	struct perf_event_attr *wd_attr;
 	struct perf_event *event = per_cpu(watchdog_ev, cpu);
 
+	/*
+	 * People like the simple clean cpu node info on boot.
+	 * Reduce the watchdog noise by only printing messages
+	 * that are different from what cpu0 displayed.
+	 */
+	static unsigned long cpu0_err;
+
 	/* is it already setup and enabled? */
 	if (event && event->state > PERF_EVENT_STATE_OFF)
 		goto out;
@@ -390,11 +397,21 @@ static int watchdog_nmi_enable(int cpu)
 
 	/* Try to register using hardware perf events */
 	event = perf_event_create_kernel_counter(wd_attr, cpu, NULL, watchdog_overflow_callback, NULL);
+
+	/* save cpu0 error for future comparision */
+	if (cpu == 0 && IS_ERR(event))
+		cpu0_err = PTR_ERR(event);
+
 	if (!IS_ERR(event)) {
-		pr_info("enabled, takes one hw-pmu counter.\n");
+		/* only print for cpu0 or different than cpu0 */
+		if (cpu ==0 || cpu0_err)
+			pr_info("enabled, takes one hw-pmu counter.\n");
 		goto out_save;
 	}
 
+	/* skip displaying the same error again */
+	if (cpu > 0 && (PTR_ERR(event) == cpu0_err))
+		return PTR_ERR(event);
 
 	/* vary the KERN level based on the returned errno */
 	if (PTR_ERR(event) == -EOPNOTSUPP)
-- 
1.7.7.6


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

* Re: [PATCH v2] watchdog: Quiet down the boot messages
  2012-06-08 21:03 [PATCH v2] watchdog: Quiet down the boot messages Don Zickus
@ 2012-06-08 21:39 ` Andrew Morton
  2012-06-11 19:54   ` Don Zickus
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2012-06-08 21:39 UTC (permalink / raw)
  To: Don Zickus; +Cc: LKML, nzimmer, joe

On Fri,  8 Jun 2012 17:03:09 -0400
Don Zickus <dzickus@redhat.com> wrote:

> A bunch of bugzillas have complained how noisy the nmi_watchdog is during
> boot-up especially with its expected failure cases (like virt and bios
> resource contention).
> 
> This is my attempt to quiet them down and keep it less confusing for the end
> user.  What I did is print the message for cpu0 and save it for future
> comparisons.  If future cpus have an identical message as cpu0, then don't
> print the redundant info.  However, if a future cpu has a different message,
> happily print that loudly.
> 
> Before the change, you would see something like:
> 
>     ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
>     CPU0: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz stepping 0a
>     Performance Events: PEBS fmt0+, Core2 events, Intel PMU driver.
>     ... version:                2
>     ... bit width:              40
>     ... generic registers:      2
>     ... value mask:             000000ffffffffff
>     ... max period:             000000007fffffff
>     ... fixed-purpose events:   3
>     ... event mask:             0000000700000003
>     NMI watchdog enabled, takes one hw-pmu counter.
>     Booting Node   0, Processors  #1
>     NMI watchdog enabled, takes one hw-pmu counter.
>      #2
>     NMI watchdog enabled, takes one hw-pmu counter.
>      #3 Ok.
>     NMI watchdog enabled, takes one hw-pmu counter.
>     Brought up 4 CPUs
>     Total of 4 processors activated (22607.24 BogoMIPS).
> 
> After the change, it is simplified to:
> 
>     ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
>     CPU0: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz stepping 0a
>     Performance Events: PEBS fmt0+, Core2 events, Intel PMU driver.
>     ... version:                2
>     ... bit width:              40
>     ... generic registers:      2
>     ... value mask:             000000ffffffffff
>     ... max period:             000000007fffffff
>     ... fixed-purpose events:   3
>     ... event mask:             0000000700000003
>     NMI watchdog enabled, takes one hw-pmu counter.
>     Booting Node   0, Processors  #1 #2 #3 Ok.
>     Brought up 4 CPUs

What is the behaviour of this change at suspend/resume time?

> +		if (cpu ==0 || cpu0_err)

Please use checkpatch.  It's free!



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

* Re: [PATCH v2] watchdog: Quiet down the boot messages
  2012-06-08 21:39 ` Andrew Morton
@ 2012-06-11 19:54   ` Don Zickus
  0 siblings, 0 replies; 3+ messages in thread
From: Don Zickus @ 2012-06-11 19:54 UTC (permalink / raw)
  To: Andrew Morton; +Cc: LKML, nzimmer, joe

On Fri, Jun 08, 2012 at 02:39:28PM -0700, Andrew Morton wrote:
> > After the change, it is simplified to:
> > 
> >     ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
> >     CPU0: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz stepping 0a
> >     Performance Events: PEBS fmt0+, Core2 events, Intel PMU driver.
> >     ... version:                2
> >     ... bit width:              40
> >     ... generic registers:      2
> >     ... value mask:             000000ffffffffff
> >     ... max period:             000000007fffffff
> >     ... fixed-purpose events:   3
> >     ... event mask:             0000000700000003
> >     NMI watchdog enabled, takes one hw-pmu counter.
> >     Booting Node   0, Processors  #1 #2 #3 Ok.
> >     Brought up 4 CPUs
> 
> What is the behaviour of this change at suspend/resume time?

Good question.  Aside from the brokeness that cpu0 doesn't seem to restart
after cpu suspend/resume (hence a previous patch in this space), the printks
disappear during resume.

Now with the cpu0 fix patch, the message will reappear and state that the
watchdog is enabled for all cpus.  But with just this patch, that message
will not show up during resume.

> 
> > +		if (cpu ==0 || cpu0_err)
> 
> Please use checkpatch.  It's free!

Heh.  Sorry about that.

Cheers,
Don

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

end of thread, other threads:[~2012-06-11 19:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-08 21:03 [PATCH v2] watchdog: Quiet down the boot messages Don Zickus
2012-06-08 21:39 ` Andrew Morton
2012-06-11 19:54   ` Don Zickus

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.