From 865d6ba8a3193f13641a824efde229d134838ff2 Mon Sep 17 00:00:00 2001 From: Pierre Pfister Date: Wed, 30 Nov 2016 09:21:05 +0000 Subject: 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 --- ...io-tx-with-can_push-when-VERSION_1-is-set.patch | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 dpdk/dpdk-16.11_patches/0001-virtio-tx-with-can_push-when-VERSION_1-is-set.patch (limited to 'dpdk') diff --git a/dpdk/dpdk-16.11_patches/0001-virtio-tx-with-can_push-when-VERSION_1-is-set.patch b/dpdk/dpdk-16.11_patches/0001-virtio-tx-with-can_push-when-VERSION_1-is-set.patch new file mode 100644 index 00000000..c2693568 --- /dev/null +++ b/dpdk/dpdk-16.11_patches/0001-virtio-tx-with-can_push-when-VERSION_1-is-set.patch @@ -0,0 +1,38 @@ +From b002b56c0c8a1790549c23d93f3d57ffc212c6da Mon Sep 17 00:00:00 2001 +From: Pierre Pfister +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 +--- + 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) + -- cgit 1.2.3-korg