Re: How to avoid serial port buffer overruns?

From: Erik Mouw
Date: Wed Aug 16 2006 - 10:39:52 EST


On Wed, Aug 16, 2006 at 08:35:05AM -0600, Robert Hancock wrote:
> Raphael Hertzog wrote:
> >(Please CC me when replying)
> >
> >Hello,
> >
> >While using Linux on low-end (semi-embedded) hardware (386 SX 40Mhz, 8Mb
> >RAM), I discovered that Linux on that machine would suffer from serial
> >port buffer overruns quite easily if I use a baudrate high enough (I start
> >loosing bytes at >19200 bauds and I would like to make it reliable up to
> >115 kbauds). I check if overruns are happening with
> >/proc/tty/driver/serial ("oe" field).
>
> What kind of serial port are you using? If it's an unbuffered 8250-type
> port, it will NEVER be reliable at higher baud rates. You want a 16550
> (or better) port.

I've run a cable modem connection at 115k2 over a 16450 UART on a
386DX40 for years. The tricks were:

- hdparm -u 1 /dev/hda
- play with IRQ priorities in such a way that the serial port UART was
handled first (there used to be a kernel module to accomplish that in
old debian releases)


Erik

--
+-- Erik Mouw -- www.harddisk-recovery.com -- +31 70 370 12 90 --
| Lab address: Delftechpark 26, 2628 XH, Delft, The Netherlands
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/