Date: Mon, 3 Jul 1995 21:16:02 +1000 From: Bruce Evans <bde@zeta.org.au> To: bde@zeta.org.au, pete@puffin.pelican.com Cc: current@freebsd.org Subject: Re: kern/579: sio: RS_IBUFSIZE 256 too small Message-ID: <199507031116.VAA15005@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>>> Both these machines report "interrupt-level buffer overflow":s ^^^^^^^^^^^^^^^ >>> very frequently on a leased line running at 38400, badly dropping >>> IP performance. >>This is because you don't use crtscts and something or other delays >>softclock() by more than (RB_IBUFSIZE - ceil(38400/10/100.0) = 217 >>character times, i.e., for more than 5.5 clock interrupts. Hardware >>interrupts and all other software interrupts have priority over >>softclock(), so any solid block of hardware or net interrupts would do >>this. I would be surprised if ethernet interrupts on the 386/16 didn't >>do it. >WRONG. It shows up on raw ports where I KNOW that crtscts is in use >*AND WORKS* in cooked mode *in the same connection*. I thought your problem was tty-level buffer overflows. >I know we've been over this a lot in the past; something *has* to be >wrong in the driver, but I don't know what it is; apparently rts isn't >being dropped when it should be, but only in raw mode. It is dropped in different code in raw mode, but the raw mode code has essentially no changes from 1.1.5 where it apparantly worked. The cooked mode code has different watermarks from 1.1.5 (high = TTYHOG/2 which happens to equal the raw mode high watermark and the 1.1.5 value iff TTYHOG has the default value of 1024, low = TTYHOG / 5 was high * 7 / 8 in 1.1.5) but anything with tty.low < driver.high && tty.low < tty.high should work. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199507031116.VAA15005>