dpdk patch: virtio: tx with can_push when VERSION_1 is set
This patch for dpdk 16.11 enables the use of shallow virtio descriptors when VERSION_1 is set. More info on DPDK patchwork: http://dpdk.org/dev/patchwork/patch/17340/ Change-Id: I28cde77ed5a3588921d00da50678debfe0338b08 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
This commit is contained in:

committed by
Damjan Marion

parent
6929ea9225
commit
865d6ba8a3
@ -0,0 +1,38 @@
|
||||
From b002b56c0c8a1790549c23d93f3d57ffc212c6da Mon Sep 17 00:00:00 2001
|
||||
From: Pierre Pfister <ppfister@cisco.com>
|
||||
Date: Tue, 8 Nov 2016 10:24:48 +0100
|
||||
Subject: [PATCH] virtio: tx with can_push when VERSION_1 is set
|
||||
|
||||
Current virtio driver advertises VERSION_1 support,
|
||||
but does not handle device's VERSION_1 support when
|
||||
sending packets (it looks for ANY_LAYOUT feature,
|
||||
which is absent).
|
||||
|
||||
This patch enables 'can_push' in tx path when VERSION_1
|
||||
is advertised by the device.
|
||||
|
||||
This significantly improves small packets forwarding rate
|
||||
towards devices advertising VERSION_1 feature.
|
||||
|
||||
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
|
||||
---
|
||||
drivers/net/virtio/virtio_rxtx.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
|
||||
index 22d97a4..1e5a6b9 100644
|
||||
--- a/drivers/net/virtio/virtio_rxtx.c
|
||||
+++ b/drivers/net/virtio/virtio_rxtx.c
|
||||
@@ -1015,7 +1015,8 @@ virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
|
||||
}
|
||||
|
||||
/* optimize ring usage */
|
||||
- if (vtpci_with_feature(hw, VIRTIO_F_ANY_LAYOUT) &&
|
||||
+ if ((vtpci_with_feature(hw, VIRTIO_F_ANY_LAYOUT) ||
|
||||
+ vtpci_with_feature(hw, VIRTIO_F_VERSION_1)) &&
|
||||
rte_mbuf_refcnt_read(txm) == 1 &&
|
||||
RTE_MBUF_DIRECT(txm) &&
|
||||
txm->nb_segs == 1 &&
|
||||
--
|
||||
2.7.4 (Apple Git-66)
|
||||
|
Reference in New Issue
Block a user