Re: HZ != 1000 causes problem with serial device shown bygit-bisect

From: Alan Cox
Date: Tue Mar 28 2006 - 09:03:56 EST


On Llu, 2006-03-27 at 18:46 -0500, Greg Lee wrote:
> I am having a problem when using PPP over a particular PCMCIA based serial device and have
> pinned the problem down using git-bisect to this particular commit that was made between
> 2.6.12.6 and 2.6.13:

That would make sense.

> I have also tried a number of other kernels and the problem exists all the way to 2.6.15.6
> but is fixed in 2.6.16, so I am going to git-bisect 2.6.15.6 to 2.6.16, but I thought I
> would get this message out now in case someone has an inkling of what the problem is.

I think I can tell you fairly accurately if you are running fairly high
data rates.

The old pre 2.6.16 tty code works something like this

Each serial IRQ
add chars to buffer if they fit

Each timer IRQ
switch buffers
process original buffer


So the higher HZ is the faster data speed you can do. With very high
data rates lower HZ means more dropped characters.

2.6.16 implements the new tty layer which replaces this with a proper
buffering and queueing mechanism and is SMP aware (and thanks to Paul
rather SMP clever too).

If you want to do very high data rates you either

1. Up HZ
2. Set the tty to low latency mode (process each char as it arrives) and
pray you have enough CPU power
3. Fix the buffering. (2.6.16)

In theory you can change the flip buffer sizes but that needs care.

Alan


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