Messages in this thread | | | Date | Tue, 30 Nov 1999 14:08:43 -0800 (PST) | From | Linux Lists <> | Subject | Re: TTY Flip buffers |
| |
On Tue, 30 Nov 1999 tytso@mit.edu wrote: > > How many characters to you read from the Z at a time? Presumably you > want to try to read as many characters as possible, in order to optimize > for processing time, even though this has a negative impact on latency > --- otherwise, why have a 8k hardware receive buffer in the first place.
Yes, I read as much as I can. The number is defined by:
MIN(char_count, MIN(tty->ldisc.receive_room(tty), buf_size))
, where:
- char_count = number of characters in the on-board (HW) buffer; - buf_size = size of the intermediary driver buffer;
> If you reading that a large number of characters at a time, and getting > periodic interrupts, I'd advice that you skip the flip buffers > altogether and simply call ldisc->receive_buf() directly. As a bonus, > this avoids a memory copy as well. You can use ldisc->receive_room() to > see how much space is available in the 4k tty buffer. (This is what > the Comtrol Rocketport driver does).
The Rocketport driver I have (i.e., the one present in 2.2.13) does _not_ use this function. Probably you have already released a newer driver with this check. Anyhow, just after I sent the msg to you I figured that out by looking at n_tty.c.
> Anyhow, what's this flow control signal the tty driver sends to the serial > driver when the buffer starts getting full?? Is this a flag that stays > there until the condition change back to normal, or is it a one-time > signal?? > > The high-level tty code calls driver->throttle() and > driver->unthrottle() as necessary. See include/linux/tty_driver.h and > include/linux/tty_ldisc.h --- the interfaces are fairly well > documented.
Yes, I saw that too, just after I sent the msg. Sorry for the unnecessary questions, and thank you very much for all the detailed answers !!
Regards, Ivan
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |