Re: 2.4.18 serial drops characters with 16654

Russell King (rmk@arm.linux.org.uk)
Thu, 19 Sep 2002 19:01:07 +0100


On Thu, Sep 19, 2002 at 06:38:52PM +0100, Alan Cox wrote:
> Actually you can do it in hardware on the 16550 depending how its wired.
> Take a look at the usenet-2 serial port design some day. The software
> mode we do does in theory mean heavy delay to the bh handling might
> delay the assertion excessively. That I think may be the real
> explanation here.
>
> Its
> buffer full
> bh handler delayed by bh load (tasklet nowdays I guess I mean)
> overrun
> overrun
> ...
> ksoftirqd
> Oh look I should do carrier
>
> Russell - does that sound reasonable.

Hmm, looking at the tty stuff, I'd say its a distinct possibility. Even
more so since the flip buffer handler is put on tq_timer, which is subject
to ksoftirqd.

However, at the point when we hand data to the tty layer, we should have
2048 bytes left in the flip buffer before we really start soft overrunning
(vs hardware overrunning.) I notice that we don't make any attempt to
report such an event to user space, even when user space wants to know
about overruns.

Christian - what baud rate are you running these uarts at?

-- 
Russell King (rmk@arm.linux.org.uk)                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html

- 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/