summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorBrad Smith <brad@cvs.openbsd.org>2004-10-06 17:00:04 +0000
committerBrad Smith <brad@cvs.openbsd.org>2004-10-06 17:00:04 +0000
commit83f5952acdd39f955e128b2cd86b8e480728d39b (patch)
tree6cc6c7a1f0779e665e2f8c54e90a6cf090389ac7 /sys/dev/ic
parentbfefa549a9b3d758ddafecba0f5d06e957fd7ded (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.c7
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 {