public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Linux serial console patch
@ 2004-09-05 17:24 Alex Owen
  2004-09-05 23:38 ` James Courtier-Dutton
  0 siblings, 1 reply; 8+ messages in thread
From: Alex Owen @ 2004-09-05 17:24 UTC (permalink / raw)
  To: glen.turner; +Cc: linux-kernel

Glen Turner,

I have read your posts to lkml containing your serial console flow control
patches firstly for 2.4.x and then for 2.6.x kernels.

Rationale:
 "[PATCH] 0/3 Fix serial console flow control"
    http://www.ussg.iu.edu/hypermail/linux/kernel/0210.1/1790.html
2.4 patches:
 "[PATCH] 1/3 Fix serial console flow control, serial.c"
    http://www.ussg.iu.edu/hypermail/linux/kernel/0210.1/1791.html
 "[PATCH] 2/3 Fix serial console flow control, serialP.h"
    http://www.ussg.iu.edu/hypermail/linux/kernel/0210.1/1792.html
 "[PATCH] 3/3 Fix serial console flow control, serial-console.txt"
    http://www.ussg.iu.edu/hypermail/linux/kernel/0210.1/1793.html
2.6 patch:
 "[PATCH] Fix CTS/RTS flow control in serial console"
    http://www.ussg.iu.edu/hypermail/linux/kernel/0310.2/1080.html

I have not been able to find any feedback on those patches in the lkml
archives. Also I can find no evidence that the patch made it into the
2.6.8.1 kernel. This is a shame as I found your rationale very
persuasive.

Do you maintain an up-to-date version of this patch?
Did you get any feedback for this patch, positive or negative?
Do you need people (i.e. me) to test this patch?

Thanks
Alex Owen

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

* Re: Linux serial console patch
  2004-09-05 17:24 Linux serial console patch Alex Owen
@ 2004-09-05 23:38 ` James Courtier-Dutton
  2004-09-06 10:32   ` Danny ter Haar
  0 siblings, 1 reply; 8+ messages in thread
From: James Courtier-Dutton @ 2004-09-05 23:38 UTC (permalink / raw)
  To: Alex Owen; +Cc: glen.turner, linux-kernel

Alex Owen wrote:
> Glen Turner,
> 
> I have read your posts to lkml containing your serial console flow control
> patches firstly for 2.4.x and then for 2.6.x kernels.
> 
> Rationale:
>  "[PATCH] 0/3 Fix serial console flow control"
>     http://www.ussg.iu.edu/hypermail/linux/kernel/0210.1/1790.html
> 2.4 patches:
>  "[PATCH] 1/3 Fix serial console flow control, serial.c"
>     http://www.ussg.iu.edu/hypermail/linux/kernel/0210.1/1791.html
>  "[PATCH] 2/3 Fix serial console flow control, serialP.h"
>     http://www.ussg.iu.edu/hypermail/linux/kernel/0210.1/1792.html
>  "[PATCH] 3/3 Fix serial console flow control, serial-console.txt"
>     http://www.ussg.iu.edu/hypermail/linux/kernel/0210.1/1793.html
> 2.6 patch:
>  "[PATCH] Fix CTS/RTS flow control in serial console"
>     http://www.ussg.iu.edu/hypermail/linux/kernel/0310.2/1080.html
> 
> I have not been able to find any feedback on those patches in the lkml
> archives. Also I can find no evidence that the patch made it into the
> 2.6.8.1 kernel. This is a shame as I found your rationale very
> persuasive.
> 
> Do you maintain an up-to-date version of this patch?
> Did you get any feedback for this patch, positive or negative?
> Do you need people (i.e. me) to test this patch?
> 
> Thanks
> Alex Owen
> -

Does this fix junk being output from the serial console?
If one is using Pentium 4 HT, it seems that both CPU cores try to send 
characters to the serial port at the same time, resulting in lost 
characters as one CPU over writes the output from the other.


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

* Re: Linux serial console patch
  2004-09-05 23:38 ` James Courtier-Dutton
@ 2004-09-06 10:32   ` Danny ter Haar
  2004-09-06 10:43     ` Russell King
  0 siblings, 1 reply; 8+ messages in thread
From: Danny ter Haar @ 2004-09-06 10:32 UTC (permalink / raw)
  To: linux-kernel

James Courtier-Dutton  <James@superbug.demon.co.uk> wrote:
>> I have read your posts to lkml containing your serial console flow control
>> patches firstly for 2.4.x and then for 2.6.x kernels.
>
>Does this fix junk being output from the serial console?
>If one is using Pentium 4 HT, it seems that both CPU cores try to send 
>characters to the serial port at the same time, resulting in lost 
>characters as one CPU over writes the output from the other.

We have multiple P4-HT enabled servers with debian installed & serial
console enabled (RPB++ ;-) and _i_ have never seen this behaviour.

Danny

-- 
"If Microsoft had been the innovative company that it calls itself, it 
would have taken the opportunity to take a radical leap beyond the Mac, 
instead of producing a feeble, me-too implementation." - Douglas Adams -


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

* Re: Linux serial console patch
  2004-09-06 10:32   ` Danny ter Haar
@ 2004-09-06 10:43     ` Russell King
  2004-09-06 15:45       ` James Courtier-Dutton
  0 siblings, 1 reply; 8+ messages in thread
From: Russell King @ 2004-09-06 10:43 UTC (permalink / raw)
  To: Danny ter Haar; +Cc: linux-kernel

On Mon, Sep 06, 2004 at 10:32:27AM +0000, Danny ter Haar wrote:
> James Courtier-Dutton  <James@superbug.demon.co.uk> wrote:
> >> I have read your posts to lkml containing your serial console flow control
> >> patches firstly for 2.4.x and then for 2.6.x kernels.
> >
> >Does this fix junk being output from the serial console?
> >If one is using Pentium 4 HT, it seems that both CPU cores try to send 
> >characters to the serial port at the same time, resulting in lost 
> >characters as one CPU over writes the output from the other.
> 
> We have multiple P4-HT enabled servers with debian installed & serial
> console enabled (RPB++ ;-) and _i_ have never seen this behaviour.

I don't think this is a serial problem as such, but a problem with the
kernel console subsystem (printk) itself.  Maybe James can provide an
example output to confirm exactly what he's seeing.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                 2.6 Serial core

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

* Re: Linux serial console patch
  2004-09-06 10:43     ` Russell King
@ 2004-09-06 15:45       ` James Courtier-Dutton
  2004-09-06 15:52         ` Russell King
  0 siblings, 1 reply; 8+ messages in thread
From: James Courtier-Dutton @ 2004-09-06 15:45 UTC (permalink / raw)
  To: Russell King; +Cc: Danny ter Haar, linux-kernel

Russell King wrote:
> On Mon, Sep 06, 2004 at 10:32:27AM +0000, Danny ter Haar wrote:
> 
>>James Courtier-Dutton  <James@superbug.demon.co.uk> wrote:
>>
>>>>I have read your posts to lkml containing your serial console flow control
>>>>patches firstly for 2.4.x and then for 2.6.x kernels.
>>>
>>>Does this fix junk being output from the serial console?
>>>If one is using Pentium 4 HT, it seems that both CPU cores try to send 
>>>characters to the serial port at the same time, resulting in lost 
>>>characters as one CPU over writes the output from the other.
>>
>>We have multiple P4-HT enabled servers with debian installed & serial
>>console enabled (RPB++ ;-) and _i_ have never seen this behaviour.
> 
> 
> I don't think this is a serial problem as such, but a problem with the
> kernel console subsystem (printk) itself.  Maybe James can provide an
> example output to confirm exactly what he's seeing.
> 

http://www.superbug.demon.co.uk/latency/

There are 2 oops traces there. At about line 176, the corruption starts.


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

* Re: Linux serial console patch
  2004-09-06 15:45       ` James Courtier-Dutton
@ 2004-09-06 15:52         ` Russell King
  2004-09-06 16:46           ` Randy.Dunlap
  0 siblings, 1 reply; 8+ messages in thread
From: Russell King @ 2004-09-06 15:52 UTC (permalink / raw)
  To: James Courtier-Dutton; +Cc: Danny ter Haar, linux-kernel

On Mon, Sep 06, 2004 at 04:45:22PM +0100, James Courtier-Dutton wrote:
> Russell King wrote:
> > On Mon, Sep 06, 2004 at 10:32:27AM +0000, Danny ter Haar wrote:
> > 
> >>James Courtier-Dutton  <James@superbug.demon.co.uk> wrote:
> >>
> >>>>I have read your posts to lkml containing your serial console flow control
> >>>>patches firstly for 2.4.x and then for 2.6.x kernels.
> >>>
> >>>Does this fix junk being output from the serial console?
> >>>If one is using Pentium 4 HT, it seems that both CPU cores try to send 
> >>>characters to the serial port at the same time, resulting in lost 
> >>>characters as one CPU over writes the output from the other.
> >>
> >>We have multiple P4-HT enabled servers with debian installed & serial
> >>console enabled (RPB++ ;-) and _i_ have never seen this behaviour.
> > 
> > 
> > I don't think this is a serial problem as such, but a problem with the
> > kernel console subsystem (printk) itself.  Maybe James can provide an
> > example output to confirm exactly what he's seeing.
> > 
> 
> http://www.superbug.demon.co.uk/latency/
> 
> There are 2 oops traces there. At about line 176, the corruption starts.

They both look like a two printk's overlapping each other, which isn't
unreasonable since one is an oops.  We try real hard to get oopses
out, which means "busting" the printk spinlocks.  The side effect of
busting those spinlocks is of course no console locking.

It may be annoying, but unless some SMP person wants to fix the spinlock
busting to be a little more inteligent, you can expect this situation
to continue.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                 2.6 Serial core

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

* Re: Linux serial console patch
  2004-09-06 15:52         ` Russell King
@ 2004-09-06 16:46           ` Randy.Dunlap
  2004-09-11 20:58             ` Herbert Poetzl
  0 siblings, 1 reply; 8+ messages in thread
From: Randy.Dunlap @ 2004-09-06 16:46 UTC (permalink / raw)
  To: Russell King; +Cc: James, dth, linux-kernel

On Mon, 6 Sep 2004 16:52:30 +0100 Russell King wrote:

| On Mon, Sep 06, 2004 at 04:45:22PM +0100, James Courtier-Dutton wrote:
| > Russell King wrote:
| > > On Mon, Sep 06, 2004 at 10:32:27AM +0000, Danny ter Haar wrote:
| > > 
| > >>James Courtier-Dutton  <James@superbug.demon.co.uk> wrote:
| > >>
| > >>>>I have read your posts to lkml containing your serial console flow control
| > >>>>patches firstly for 2.4.x and then for 2.6.x kernels.
| > >>>
| > >>>Does this fix junk being output from the serial console?
| > >>>If one is using Pentium 4 HT, it seems that both CPU cores try to send 
| > >>>characters to the serial port at the same time, resulting in lost 
| > >>>characters as one CPU over writes the output from the other.
| > >>
| > >>We have multiple P4-HT enabled servers with debian installed & serial
| > >>console enabled (RPB++ ;-) and _i_ have never seen this behaviour.
| > > 
| > > 
| > > I don't think this is a serial problem as such, but a problem with the
| > > kernel console subsystem (printk) itself.  Maybe James can provide an
| > > example output to confirm exactly what he's seeing.
| > > 
| > 
| > http://www.superbug.demon.co.uk/latency/
| > 
| > There are 2 oops traces there. At about line 176, the corruption starts.
| 
| They both look like a two printk's overlapping each other, which isn't
| unreasonable since one is an oops.  We try real hard to get oopses
| out, which means "busting" the printk spinlocks.  The side effect of
| busting those spinlocks is of course no console locking.
| 
| It may be annoying, but unless some SMP person wants to fix the spinlock
| busting to be a little more inteligent, you can expect this situation
| to continue.

I've seen it enough times that I would like to see it fixed,
and David Howells (RH) has posted a patch for it several times.

I'm woondering if this:
http://linux.bkbits.net:8080/linux-2.5/diffs/kernel/printk.c@1.38?nav=index.html|src/|src/kernel|hist/kernel/printk.c
is supposed to be a patch for the problem in the 'latency' log above.
If so, it's not as good a solution as David Howells's patch is.
His latest (AFAIK) is:
http://marc.theaimsgroup.com/?l=linux-kernel&m=105730993512692&w=2

--
~Randy

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

* Re: Linux serial console patch
  2004-09-06 16:46           ` Randy.Dunlap
@ 2004-09-11 20:58             ` Herbert Poetzl
  0 siblings, 0 replies; 8+ messages in thread
From: Herbert Poetzl @ 2004-09-11 20:58 UTC (permalink / raw)
  To: Randy.Dunlap; +Cc: Russell King, James, dth, linux-kernel

On Mon, Sep 06, 2004 at 09:46:22AM -0700, Randy.Dunlap wrote:
> On Mon, 6 Sep 2004 16:52:30 +0100 Russell King wrote:
> 
> | On Mon, Sep 06, 2004 at 04:45:22PM +0100, James Courtier-Dutton wrote:
> | > Russell King wrote:
> | > > On Mon, Sep 06, 2004 at 10:32:27AM +0000, Danny ter Haar wrote:
> | > > 
> | > >>James Courtier-Dutton  <James@superbug.demon.co.uk> wrote:
> | > >>
> | > >>>>I have read your posts to lkml containing your serial console flow control
> | > >>>>patches firstly for 2.4.x and then for 2.6.x kernels.
> | > >>>
> | > >>>Does this fix junk being output from the serial console?
> | > >>>If one is using Pentium 4 HT, it seems that both CPU cores try to send 
> | > >>>characters to the serial port at the same time, resulting in lost 
> | > >>>characters as one CPU over writes the output from the other.
> | > >>
> | > >>We have multiple P4-HT enabled servers with debian installed & serial
> | > >>console enabled (RPB++ ;-) and _i_ have never seen this behaviour.
> | > > 
> | > > 
> | > > I don't think this is a serial problem as such, but a problem with the
> | > > kernel console subsystem (printk) itself.  Maybe James can provide an
> | > > example output to confirm exactly what he's seeing.
> | > > 
> | > 
> | > http://www.superbug.demon.co.uk/latency/
> | > 
> | > There are 2 oops traces there. At about line 176, the corruption starts.
> | 
> | They both look like a two printk's overlapping each other, which isn't
> | unreasonable since one is an oops.  We try real hard to get oopses
> | out, which means "busting" the printk spinlocks.  The side effect of
> | busting those spinlocks is of course no console locking.
> | 
> | It may be annoying, but unless some SMP person wants to fix the spinlock
> | busting to be a little more inteligent, you can expect this situation
> | to continue.
> 
> I've seen it enough times that I would like to see it fixed,
> and David Howells (RH) has posted a patch for it several times.
> 
> I'm woondering if this:
> http://linux.bkbits.net:8080/linux-2.5/diffs/kernel/printk.c@1.38?nav=index.html|src/|src/kernel|hist/kernel/printk.c
> is supposed to be a patch for the problem in the 'latency' log above.
> If so, it's not as good a solution as David Howells's patch is.
> His latest (AFAIK) is:
> http://marc.theaimsgroup.com/?l=linux-kernel&m=105730993512692&w=2

here is an updated version:

--- ./kernel/printk.c.orig	2004-09-10 23:56:11.000000000 +0200
+++ ./kernel/printk.c	2004-09-11 22:56:33.000000000 +0200
@@ -521,6 +521,8 @@ asmlinkage int printk(const char *fmt, .
 	return r;
 }
 
+static volatile int printk_cpu = -1;
+
 asmlinkage int vprintk(const char *fmt, va_list args)
 {
 	unsigned long flags;
@@ -529,11 +531,12 @@ asmlinkage int vprintk(const char *fmt, 
 	static char printk_buf[1024];
 	static int log_level_unknown = 1;
 
-	if (unlikely(oops_in_progress))
+	if (unlikely(oops_in_progress && printk_cpu == smp_processor_id()))
 		zap_locks();
 
 	/* This stops the holder of console_sem just where we want him */
 	spin_lock_irqsave(&logbuf_lock, flags);
+	printk_cpu = smp_processor_id();
 
 	/* Emit the output into the temporary buffer */
 	printed_len = vscnprintf(printk_buf, sizeof(printk_buf), fmt, args);


HTH,
Herbert

> --
> ~Randy
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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

end of thread, other threads:[~2004-09-11 20:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-05 17:24 Linux serial console patch Alex Owen
2004-09-05 23:38 ` James Courtier-Dutton
2004-09-06 10:32   ` Danny ter Haar
2004-09-06 10:43     ` Russell King
2004-09-06 15:45       ` James Courtier-Dutton
2004-09-06 15:52         ` Russell King
2004-09-06 16:46           ` Randy.Dunlap
2004-09-11 20:58             ` Herbert Poetzl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox