2002-10-05 14:53:10

by jbradford

[permalink] [raw]
Subject: 2.5.x and 8250 UART problems

I've noticed that 8250 UART based serial port performance is poorer in 2.5.x than 2.4.x and 2.2.x, on a couple of my machines.

The 486 SX-20 with 4 MB RAM, running 2.2.21 reliably achieves about 650 BPS download from another machine, with the port runnnig at 9600 bps. With 2.5.40, many characters are lost at 9600, making, e.g. a ZModem transfer retry for almost every block.

A 486 SX-25 with 8 MB RAM, running 2.4.19 manages about 950 BPS reliably with the port set at 9600 bps. With 2.5.40, there are again a lot of lost characters.

I know these are ancient machines, with rediculously low amounts of memory, but surely 9600 bps should be reliable, even if performance drops to 600-700 BPS, or even lower.

I originally thought that the new kernel was using up memory that was previously available to be used as a buffer, and that extra hard disk access was causing the lost characters, but this doesn't seem to be the case.

Any idea what's causing this? I can send more info and do more tests as required.

John.


2002-10-05 15:01:40

by bert hubert

[permalink] [raw]
Subject: Re: 2.5.x and 8250 UART problems

On Sat, Oct 05, 2002 at 04:06:45PM +0100, [email protected] wrote:

> I've noticed that 8250 UART based serial port performance is poorer in
> 2.5.x than 2.4.x and 2.2.x, on a couple of my machines.
>
> The 486 SX-20 with 4 MB RAM, running 2.2.21 reliably achieves about 650
> BPS download from another machine, with the port runnnig at 9600 bps.
> With 2.5.40, many characters are lost at 9600, making, e.g. a ZModem
> transfer retry for almost every block.

Have you tried 'hdparm -u'?
>

--
http://www.PowerDNS.com Versatile DNS Software & Services
http://www.tk the dot in .tk
http://lartc.org Linux Advanced Routing & Traffic Control HOWTO

2002-10-05 15:05:10

by jbradford

[permalink] [raw]
Subject: Re: 2.5.x and 8250 UART problems

> > I've noticed that 8250 UART based serial port performance is poorer in
> > 2.5.x than 2.4.x and 2.2.x, on a couple of my machines.
> >
> > The 486 SX-20 with 4 MB RAM, running 2.2.21 reliably achieves about 650
> > BPS download from another machine, with the port runnnig at 9600 bps.
> > With 2.5.40, many characters are lost at 9600, making, e.g. a ZModem
> > transfer retry for almost every block.
>
> Have you tried 'hdparm -u'?

Hmmm, I can do, but I thought it was a Bad Thing (tm) for ISA based controllers? I could be wrong...

John.

2002-10-05 19:48:13

by jbradford

[permalink] [raw]
Subject: Re: 2.5.x and 8250 UART problems

> > > > I've noticed that 8250 UART based serial port performance is poorer in
> > > > 2.5.x than 2.4.x and 2.2.x, on a couple of my machines.
> > > >
> > > > The 486 SX-20 with 4 MB RAM, running 2.2.21 reliably achieves about 650
> > > > BPS download from another machine, with the port runnnig at 9600 bps.
> > > > With 2.5.40, many characters are lost at 9600, making, e.g. a ZModem
> > > > transfer retry for almost every block.
> > >
> > > Have you tried 'hdparm -u'?
> >
> > Hmmm, I can do, but I thought it was a Bad Thing (tm) for ISA based
> > controllers? I could be wrong...
>
> Shouldn't it be fixed, it should work normally anyway.

Not sure, without interupt unmasking, I would expect excessive disk activity to potentially cause data loss, but there isn't excessive disk activity going on anyway.

If you look at:

http://www.uwsg.iu.edu/hypermail/linux/kernel/0207.3/0373.html

though, you'll see why I was asking for clarification before trying 'hdparm -u', because the laptop in question has a broken floppy drive, so if I corrupt the root filesystem, I've got to take it apart, and put the hard disk in another machine to re-install. Not a five minute job, by any means!

John.

2002-10-05 19:39:23

by Hell.Surfers

[permalink] [raw]
Subject: RE: 2.5.x and 8250 UART problems

Shouldn't it be fixed, it should work normally anyway.

Cheers, Dean McEwan. Currently hacking KGI, which I don't understand, oh and ask me about OpenModemTalk...

On Sat, 5 Oct 2002 16:18:39 +0100 (BST) [email protected] wrote:


Attachments:
(No filename) (2.10 kB)

2002-10-05 19:54:22

by Russell King

[permalink] [raw]
Subject: Re: 2.5.x and 8250 UART problems

On Sat, Oct 05, 2002 at 04:06:45PM +0100, [email protected] wrote:
> The 486 SX-20 with 4 MB RAM, running 2.2.21 reliably achieves about 650
> BPS download from another machine, with the port runnnig at 9600 bps.
> With 2.5.40, many characters are lost at 9600, making, e.g. a ZModem
> transfer retry for almost every block.

Ok, we need to find out where stuff is getting dropped. Dumping
/proc/tty/driver/serial is always a good idea when reporting anything
like this.

The important thing is the change in the counters. Can you supply the
port in question both before and after the zmodem run please?

Thanks.

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html

2002-10-05 20:59:37

by jbradford

[permalink] [raw]
Subject: Re: 2.5.x and 8250 UART problems

> > The 486 SX-20 with 4 MB RAM, running 2.2.21 reliably achieves about 650
> > BPS download from another machine, with the port runnnig at 9600 bps.
> > With 2.5.40, many characters are lost at 9600, making, e.g. a ZModem
> > transfer retry for almost every block.

OK, first of all, I was wrong about it being an 8250 UART, I checked, and it is infact a 16540, not that it should make much difference, anyway :-)

> Ok, we need to find out where stuff is getting dropped. Dumping
> /proc/tty/driver/serial is always a good idea when reporting anything
> like this.
>
> The important thing is the change in the counters. Can you supply the
> port in question both before and after the zmodem run please?

OK, here goes, I used RZ on the command line instead of Minicom on the laptop, to maximize available memory.

---

Using 2.2.21 on the 486 laptop:

Laptop, (just booted):

0: uart:16450 port:3F8 irq:4 tx:0 rx:0 CTS|DTR|DSR

Desktop:

1: uart:16550A port:000002F8 irq:3 tx:946840 rx:5516126 RTS|CTS|DTR|DSR

Now transfer a 64K file using Z-modem.

Laptop:

0: uart:16450 port:3F8 irq:4 baud:9600 tx:104 rx:66050 CTS|DSR

Desktop:

1: uart:16550A port:000002F8 irq:3 tx:1012890 rx:5516209 RTS|DTR

---

Using 2.5.40 on the laptop:

Laptop, (just booted):

0: uart:16450 port:000003F8 irq:4 tx:0 rx:0 CTS|DSR

Desktop:

1: uart:16550A port:000002F8 irq:3 tx:1012890 rx:5516209 RTS|DTR

Now transfer a 64K file using Z-modem.

Contrary to what I originally thought, it did drop characters during disk access, but then it seemed to continue, only to drop characters again a second later.

Laptop:

0: uart:16450 port:000003F8 irq:4 tx:230 rx:73291 oe:45 CTS|DSR

Desktop:

1: uart:16550A port:000002F8 irq:3 tx:1086246 rx:5516439 RTS|DTR

---

I am begining to wonder whether it is something straightforward, like the newer kernel being more bloated, and therefore not being cached so well, causing the machine to run generally slower.

I remember seeing dropped characters with a bloated 2.2.13 kernel on that machine.

However, when I upgraded the other laptop from 2.2.x to 2.4.x, I saw an improvement in serial port performance, from an average of ~650 cps to ~950 cps. Although I also upgraded glibc at the same time. Seems like there are a lot of variables, sorry about that! :-)

Hope the above info is helpful. If you need me to do any more tests, or some with the other machine, let me know.

Cheers,

John.