Skip site navigation (1)Skip section navigation (2)
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>