Subject: Re: Serial Port Silo Overflow.
To: Alex Barclay <alex@planet-barclay.com>
From: Frank van der Linden <fvdl@wasabisystems.com>
List: port-i386
Date: 10/30/2002 23:57:13
On Wed, Oct 30, 2002 at 01:37:45PM -0800, Alex Barclay wrote:
> 
> My machine is a AMD K6-200 and used to be able to keep up with 19200 
> baud or more without any handshaking (this bit is imposed on my by the 
> external hardware). Today I notice that it can't even keep up at 9600 
> baud which is as low as my external hardware goes.
> 
> Did the interrupt latency just take a large leap or has there been 
> another change in say the last 6 weeks that may have caused this? I'm 
> not too sure which kernel was last OK. 1.6D seems to show the same 
> behaviour and I don't have an older one around anywhere.

When I merged  the i386mp code, I made the level of serial interrupts
match the highest level (splserial == splhigh), not be above it.
Having it be above everything violated some assumptions on the order
of IPLs. It was originally done to keep up with high speeds on
8250s or 16450s on slow 386 boxes.

So this will have slowed it down a bit. But, having said that,
a K6-200 with a 16550 should really be able to keep up with
9600bps easily, even with the lower interrupt level. So perhaps
something else is going on.

I made the change when the i386mp branch was merged, on october
1st. If you are seeing it with 1.6D, that would mean this
change is *not* the cause, since 1.6D predates the i386mp
merge by quite a bit.

Anyway, since I will be bringing in a rewrite of some parts of
the i386 intr code, I'll have to look at it after then.
Maybe you can narrow down when it started to happen a bit.

- Frank

-- 
Frank van der Linden                                    fvdl@wasabisystems.com
==============================================================================
Quality NetBSD Development, Support & Service.   http://www.wasabisystems.com/