diff options
author | luigi <luigi@FreeBSD.org> | 2012-01-19 09:36:19 +0000 |
---|---|---|
committer | luigi <luigi@FreeBSD.org> | 2012-01-19 09:36:19 +0000 |
commit | c20448129b36056dbb4c37dd589d47f53db69c34 (patch) | |
tree | 00c4e771c9d537b63fe1f9951b185b1d75bebb68 /share/man/man9/vref.9 | |
parent | bb9610f591b07845e5a6537a35493f46defabb90 (diff) | |
download | FreeBSD-src-c20448129b36056dbb4c37dd589d47f53db69c34.zip FreeBSD-src-c20448129b36056dbb4c37dd589d47f53db69c34.tar.gz |
netmap-related changes:
1. correct the initialization of RDT when there is an ixgbe_init()
while a netmap client is active. This code was previously
in ixgbe_initialize_receive_units() but RDT is overwritten
shortly afterwards in ixgbe_init_locked()
2. add code (not active yet) to disable CRCSTRIP while in netmap mode.
From all evidence i could gather, it seems that when the 82599 has to
write a data block that is not a full cache line, it first reads
the line (64 bytes) and then writes back the updated version.
This hurts reception of min-sized frames, which are only 60 bytes
if the CRC is stripped: i could never get above 11Mpps
(received from one queue) with CRCSTRIP enabled, whyle 64+4-byte
packets reach 14.2 Mpps (the theoretical maximum).
Leaving the CRC in gets us 14.88Mpps for 60+4 byte frames,
(and penalizes 64+4). The min-size case is important not just because
it looks good in benchmarks, but also because this is the size
of pure acks.
Note we cannot leave CRCSTRIP on by default because it is
incompatible with some other features (LRO etc.)
Diffstat (limited to 'share/man/man9/vref.9')
0 files changed, 0 insertions, 0 deletions