[dpdk-dev] [PATCH 2/2] net/netvsc: avoid mixing buffered and direct packets
Stephen Hemminger
stephen at networkplumber.org
Tue Mar 17 00:56:12 CET 2020
Putting buffered and direct packets together into one request is
an unnecessary optimization. Better to split into two requests
(buffered and direct).
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
drivers/net/netvsc/hn_rxtx.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c
index 7212780c156e..aad3d8c04c7f 100644
--- a/drivers/net/netvsc/hn_rxtx.c
+++ b/drivers/net/netvsc/hn_rxtx.c
@@ -1362,15 +1362,14 @@ hn_xmit_pkts(void *ptxq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
} else {
struct hn_txdesc *txd;
- /* can send chimney data and large packet at once */
+ /* Send any outstanding packets in buffer */
txd = txq->agg_txd;
- if (txd) {
- hn_reset_txagg(txq);
- } else {
- txd = hn_new_txd(hv, txq);
- if (unlikely(!txd))
- break;
- }
+ if (txd && hn_flush_txagg(txq, &need_sig))
+ goto fail;
+
+ txd = hn_new_txd(hv, txq);
+ if (unlikely(!txd))
+ break;
pkt = txd->rndis_pkt;
txd->m = m;
--
2.20.1
More information about the dev
mailing list