numam-dpdk/drivers/net
Yuanhan Liu 16994abee2 net/virtio: optimize header reset on any layout
When any layout is used, the header is stored in the head room of mbuf.
mbuf is allocated and filled by user, means there is no gurateen the
header is all zero for non TSO case. Therefore, we have to do the reset
by ourself:

    memest(hdr, 0, head_size);

The memset has two impacts on performance:

- memset could not be inlined, which is a bit costly.
- more importantly, it touches the mbuf, which could introduce severe
  cache issues as described by former patch.

Similiary, we could do the same trick: reset just when necessary, when
the corresponding field is already 0, which is likely true for a simple
l2 forward case. It could boost the performance up to 20+% in micro
benchmarking.

Cc: stable@dpdk.org
Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2017-01-30 14:33:12 +01:00
..
af_packet net/af_packet: support 802.1Q VLAN 2017-01-17 19:41:43 +01:00
bnx2x net/bnx2x: use I/O device memory read/write API 2017-01-18 17:18:27 +01:00
bnxt net/bnxt: use I/O device memory read/write API 2017-01-18 17:18:27 +01:00
bonding net: align ethdev and eal driver names 2017-01-17 19:36:47 +01:00
cxgbe net/cxgbe: use I/O device memory read/write API 2017-01-18 17:18:27 +01:00
e1000 net/e1000: use I/O device memory read/write API 2017-01-18 17:18:26 +01:00
ena net/ena: use I/O device memory read/write API 2017-01-18 17:18:27 +01:00
enic net/enic: use I/O device memory read/write API 2017-01-18 17:18:26 +01:00
fm10k net/fm10k: use I/O device memory read/write API 2017-01-18 17:18:26 +01:00
i40e net/i40e: use I/O device memory read/write API 2017-01-18 17:18:26 +01:00
ixgbe net/ixgbe: use I/O device memory read/write API 2017-01-18 17:18:26 +01:00
mlx4 net/mlx: fix IPv4 and IPv6 packet type 2017-01-17 19:41:43 +01:00
mlx5 net/mlx5: support extended statistics 2017-01-17 20:13:13 +01:00
mpipe net: align ethdev and eal driver names 2017-01-17 19:36:47 +01:00
nfp net/nfp: use I/O device memory read/write API 2017-01-18 17:18:27 +01:00
null net: align ethdev and eal driver names 2017-01-17 19:36:47 +01:00
pcap net/pcap: fix timestamps in output pcap file 2017-01-17 19:40:51 +01:00
qede net/qede: use I/O device memory read/write API 2017-01-18 17:18:27 +01:00
ring net: align ethdev and eal driver names 2017-01-17 19:36:47 +01:00
sfc net/sfc: advertise kmod dependencies in pmdinfo 2017-01-17 19:40:51 +01:00
szedata2 ethdev: decouple from PCI device 2016-12-25 23:30:19 +01:00
tap net/tap: fix build with old kernels 2017-01-20 18:37:22 +01:00
thunderx net/thunderx: use I/O device memory read/write API 2017-01-18 17:18:27 +01:00
vhost net/vhost: fix unix socket not removed as closing 2017-01-30 14:19:48 +01:00
virtio net/virtio: optimize header reset on any layout 2017-01-30 14:33:12 +01:00
vmxnet3 net/vmxnet3: use I/O device memory read/write API 2017-01-18 17:18:27 +01:00
xenvirt net: align ethdev and eal driver names 2017-01-17 19:36:47 +01:00
Makefile net/tap: add TUN/TAP device PMD 2017-01-17 19:40:50 +01:00