summaryrefslogtreecommitdiffstats
path: root/sys/dev/re
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2010-02-21 00:00:55 +0000
committeryongari <yongari@FreeBSD.org>2010-02-21 00:00:55 +0000
commitf7a42cd9eac9affde372b292e71c9bda66493989 (patch)
treea2a56f9f31f01315dfe02dbf867e24ab8a90911d /sys/dev/re
parent413b4ea947cb4375d4c6c1ede6d1f1ba6188ccfd (diff)
downloadFreeBSD-src-f7a42cd9eac9affde372b292e71c9bda66493989.zip
FreeBSD-src-f7a42cd9eac9affde372b292e71c9bda66493989.tar.gz
Increase PCIe maximuim read request size to 2048. Because re(4) uses
Tx DMA burst size 2048, I beleive PCIe maximum read request size also should match to the value of Tx DMA burst size. With this change I can get more than 800Mbps for TCP bulk transfers. Previously I was not able to get more than 700Mbps. If I enable TSO it now shows 927Mbps.
Diffstat (limited to 'sys/dev/re')
-rw-r--r--sys/dev/re/if_re.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c
index a642925..484bfb9 100644
--- a/sys/dev/re/if_re.c
+++ b/sys/dev/re/if_re.c
@@ -1162,6 +1162,9 @@ re_attach(device_t dev)
msic = 0;
if (pci_find_extcap(dev, PCIY_EXPRESS, &reg) == 0) {
sc->rl_flags |= RL_FLAG_PCIE;
+ /* Set PCIe maximum read request size to 2048. */
+ if (pci_get_max_read_req(dev) < 2048)
+ pci_set_max_read_req(dev, 2048);
msic = pci_msi_count(dev);
if (bootverbose)
device_printf(dev, "MSI count : %d\n", msic);
OpenPOWER on IntegriCloud