Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Current values of TTYHOG and RS_IBUFSIZE

0 views
Skip to first unread message

Pierre Y. Dampure

unread,
Jul 22, 1998, 3:00:00 AM7/22/98
to
Over the past few weeks I've had several instances of userppp
disconnecting a connection w/o particular reasons on bleeding edge
-current. The only change on the box was the recent addition of a Hayes
ESP card (I connect via ISDN), so I checked the archives for possible
issues.

Way back in 1996 (23 Nov), Brian Litzinger posted a follow-up to "Hayes
ESP and interrupt-level buffer overflow" and advised altering the
following constants :

In /sys/sys/tty.h: TTYHOG Change to 4096
In /sys/i386/isa/sio.c RS_IBUFSIZE Change to 1024

I applied the above and haven't had any problems since -- in fact, it
seems the connections are _much_ faster.

Can anybody confirms whether these changes are valid and, if so, can we
include them in -current (#ifdef'd via COM_ESP, of course)?

Oh, on a completeley different subject, has anyone experienced problems
connecting to Altavista (http://www.altavista.digital.com) recently?
connection stay in ESTABLISHED state, nothing else happens. Works okay
from work via a SunScreen...

Best Regards,


Pierre Y.

To Unsubscribe: send mail to majo...@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message


Bruce Evans

unread,
Jul 22, 1998, 3:00:00 AM7/22/98
to
>Way back in 1996 (23 Nov), Brian Litzinger posted a follow-up to "Hayes
>ESP and interrupt-level buffer overflow" and advised altering the
>following constants :
>
> In /sys/sys/tty.h: TTYHOG Change to 4096
> In /sys/i386/isa/sio.c RS_IBUFSIZE Change to 1024
>
>I applied the above and haven't had any problems since -- in fact, it
>seems the connections are _much_ faster.
>
>Can anybody confirms whether these changes are valid and, if so, can we
>include them in -current (#ifdef'd via COM_ESP, of course)?

These changes waste a lot of memory for ptys and any other non-ESP ttys,
and don't get input flow control quite right (due to hard-coded 256's in
tty.c).

-current has support for allocating correctly sized buffers depending
on the device type and port speed, but nothing actually uses this yet.
The changes to use if for normal sio ports are something like:

*** sio.c~ Wed Jul 15 22:30:11 1998
--- sio.c Wed Jul 15 22:30:15 1998
***************
*** 106,109 ****

#define LOTS_OF_EVENTS 64 /* helps separate urgent events from input */
- #define RB_I_HIGH_WATER (TTYHOG - 2 * RS_IBUFSIZE)
#define RS_IBUFSIZE 256
--- 110,112 ----

#define LOTS_OF_EVENTS 64 /* helps separate urgent events from input */
#define RS_IBUFSIZE 256
***************
*** 1190,1191 ****
--- 1217,1221 ----
? com->it_out : com->it_in;
+ tp->t_ififosize = 2 * RS_IBUFSIZE;
+ tp->t_ispeedwat = (speed_t)-1;
+ tp->t_ospeedwat = (speed_t)-1;
(void)commctl(com, TIOCM_DTR | TIOCM_RTS, DMSET);
***************
*** 1201,1203 ****
*/
- ttsetwater(tp);
iobase = com->iobase;
--- 1231,1232 ----
***************
*** 1983,1985 ****
if (tp->t_state & TS_CAN_BYPASS_L_RINT) {
! if (tp->t_rawq.c_cc + incc >= RB_I_HIGH_WATER
&& (com->state & CS_RTS_IFLOW
--- 2081,2083 ----
if (tp->t_state & TS_CAN_BYPASS_L_RINT) {
! if (tp->t_rawq.c_cc + incc > tp->t_ihiwat
&& (com->state & CS_RTS_IFLOW

This gives an effective TTYHOG of about 11520 for 115200 bps, etc.

RS_IBUFSIZE still needs to be increased for speeds larger than 115200 bps.
RS_IBUFSIZE and/or tp->t_ififosize needs to be increased for hardware with
large h/w fifos like the ESP.

Bruce

0 new messages