diff options
author | Brad Smith <brad@cvs.openbsd.org> | 2004-10-06 17:00:04 +0000 |
---|---|---|
committer | Brad Smith <brad@cvs.openbsd.org> | 2004-10-06 17:00:04 +0000 |
commit | 83f5952acdd39f955e128b2cd86b8e480728d39b (patch) | |
tree | 6cc6c7a1f0779e665e2f8c54e90a6cf090389ac7 /sys/dev/ic | |
parent | bfefa549a9b3d758ddafecba0f5d06e957fd7ded (diff) |
Enable round-robin arbitration between transmit and receive unit
in the 21143, instead of giving priority to the receive unit.
This gives a 10-15% performance improvement in the forwarding rate
under heavy load.
From FreeBSD
ok mcbride@ nick@ deraadt@
Diffstat (limited to 'sys/dev/ic')
-rw-r--r-- | sys/dev/ic/dc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/ic/dc.c b/sys/dev/ic/dc.c index 454f6358c87..94f78c5e062 100644 --- a/sys/dev/ic/dc.c +++ b/sys/dev/ic/dc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dc.c,v 1.69 2004/09/28 16:58:56 brad Exp $ */ +/* $OpenBSD: dc.c,v 1.70 2004/10/06 17:00:03 brad Exp $ */ /* * Copyright (c) 1997, 1998, 1999 @@ -2730,6 +2730,11 @@ dc_init(xsc) CSR_WRITE_4(sc, DC_BUSCTL, 0); else CSR_WRITE_4(sc, DC_BUSCTL, DC_BUSCTL_MRME|DC_BUSCTL_MRLE); + /* + * Evenly share the bus between receive and transmit process. + */ + if (DC_IS_INTEL(sc)) + DC_SETBIT(sc, DC_BUSCTL, DC_BUSCTL_ARBITRATION); if (DC_IS_DAVICOM(sc) || DC_IS_INTEL(sc)) { DC_SETBIT(sc, DC_BUSCTL, DC_BURSTLEN_USECA); } else { |