Subject: [PATCH -mm] 8250: remove not needed NMI watchdog tickle in serial8250_console_write()

When touch_nmi_watchdog() was added to inside the wait loop in
wait_for_xmitr()[1], where the long delays come from, a unneeded
touch_nmi_watchdog() call was left in the beginning of
serial8250_console_write() (introduced in
78512ece148992a5c00c63fbf4404f3cde635016) and this patch reverts it.

[1] http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.18-rc6/2.6.18-rc6-mm2/broken-out/tickle-nmi-watchdog-on-serial-output.patch
http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.18-rc6/2.6.18-rc6-mm2/broken-out/tickle-nmi-watchdog-on-serial-output-fix.patch
[2] http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=78512ece148992a5c00c63fbf4404f3cde635016;hp=0ad775dbba12de3b7d25f586efe81ad995ca75a7

Signed-off-by: Aristeu S. Rozanski F. <[email protected]>

--- mm.orig/drivers/serial/8250.c 2006-09-13 17:26:53.000000000 -0300
+++ mm/drivers/serial/8250.c 2006-09-13 17:27:14.000000000 -0300
@@ -2263,8 +2263,6 @@
unsigned int ier;
int locked = 1;

- touch_nmi_watchdog();
-
local_irq_save(flags);
if (up->port.sysrq) {
/* serial8250_handle_port() already took the lock */


2006-09-15 04:42:15

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH -mm] 8250: remove not needed NMI watchdog tickle in serial8250_console_write()

On Wed, 13 Sep 2006 17:52:03 -0300
Aristeu Sergio Rozanski Filho <[email protected]> wrote:

> When touch_nmi_watchdog() was added to inside the wait loop in
> wait_for_xmitr()[1], where the long delays come from, a unneeded
> touch_nmi_watchdog() call was left in the beginning of
> serial8250_console_write() (introduced in
> 78512ece148992a5c00c63fbf4404f3cde635016) and this patch reverts it.
>
> [1] http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.18-rc6/2.6.18-rc6-mm2/broken-out/tickle-nmi-watchdog-on-serial-output.patch
> http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.18-rc6/2.6.18-rc6-mm2/broken-out/tickle-nmi-watchdog-on-serial-output-fix.patch
> [2] http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=78512ece148992a5c00c63fbf4404f3cde635016;hp=0ad775dbba12de3b7d25f586efe81ad995ca75a7
>
> Signed-off-by: Aristeu S. Rozanski F. <[email protected]>
>
> --- mm.orig/drivers/serial/8250.c 2006-09-13 17:26:53.000000000 -0300
> +++ mm/drivers/serial/8250.c 2006-09-13 17:27:14.000000000 -0300
> @@ -2263,8 +2263,6 @@
> unsigned int ier;
> int locked = 1;
>
> - touch_nmi_watchdog();
> -
> local_irq_save(flags);
> if (up->port.sysrq) {
> /* serial8250_handle_port() already took the lock */

I disagree.

If characters are flowing out at a rate which consistently exceeds
one-per-ten-milliseconds, the touch_nmi_watchdog() in wait_for_xmitr() will
never be called.

Consequently a large interrupt-time write to the serial port (ie: sysrq-T
with serial-console enabled) will cause the NMI watchdog to trigger.

No?

Subject: Re: [PATCH -mm] 8250: remove not needed NMI watchdog tickle in serial8250_console_write()

> I disagree.
>
> If characters are flowing out at a rate which consistently exceeds
> one-per-ten-milliseconds, the touch_nmi_watchdog() in wait_for_xmitr() will
> never be called.
>
> Consequently a large interrupt-time write to the serial port (ie: sysrq-T
> with serial-console enabled) will cause the NMI watchdog to trigger.
>
> No?
gah, you're right. please drop this one.
Thanks,

--
Aristeu