Increase the size of the tx and rx rings from 10 to 20 descriptors

and increase the tx interrupt threshold to 4. This fixes performance
problems on slower systems.

Also fix a mind-o in the rx ring init routine: I used the TX
constant instead of the RX. This isn't a problem as long as the
rings are the same size, but if they aren't hijinx will ensue.
This commit is contained in:
Bill Paul 1998-10-31 17:23:48 +00:00
parent b0359e2c11
commit 1b2451269c
2 changed files with 8 additions and 8 deletions

View File

@ -29,7 +29,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: if_tl.c,v 1.17 1998/10/04 18:47:38 wpaul Exp $
* $Id: if_tl.c,v 1.18 1998/10/08 15:45:36 wpaul Exp $
*/
/*
@ -218,7 +218,7 @@
#ifndef lint
static char rcsid[] =
"$Id: if_tl.c,v 1.17 1998/10/04 18:47:38 wpaul Exp $";
"$Id: if_tl.c,v 1.18 1998/10/08 15:45:36 wpaul Exp $";
#endif
#ifdef TL_DEBUG
@ -1823,12 +1823,12 @@ static int tl_list_rx_init(sc)
cd = &sc->tl_cdata;
ld = sc->tl_ldata;
for (i = 0; i < TL_TX_LIST_CNT; i++) {
for (i = 0; i < TL_RX_LIST_CNT; i++) {
cd->tl_rx_chain[i].tl_ptr =
(struct tl_list_onefrag *)&ld->tl_rx_list[i];
if (tl_newbuf(sc, &cd->tl_rx_chain[i]) == ENOBUFS)
return(ENOBUFS);
if (i == (TL_TX_LIST_CNT - 1)) {
if (i == (TL_RX_LIST_CNT - 1)) {
cd->tl_rx_chain[i].tl_next = NULL;
ld->tl_rx_list[i].tlist_fptr = 0;
} else {

View File

@ -29,7 +29,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: if_tlreg.h,v 1.12 1998/09/17 21:16:31 wpaul Exp $
* $Id: if_tlreg.h,v 1.6 1998/09/23 05:08:54 wpaul Exp $
*/
@ -49,8 +49,8 @@ struct tl_type {
*/
#define TL_MAXFRAGS 10
#define TL_RX_LIST_CNT 10
#define TL_TX_LIST_CNT 10
#define TL_RX_LIST_CNT 20
#define TL_TX_LIST_CNT 20
#define TL_MIN_FRAMELEN 64
struct tl_frag {
@ -141,7 +141,7 @@ struct tl_softc {
/*
* Transmit interrupt threshold.
*/
#define TX_THR 0x00000001
#define TX_THR 0x00000004
#define TL_FLAG_FORCEDELAY 1
#define TL_FLAG_SCHEDDELAY 2