From d827c2695e564a378c59d24ec116bf022ca3feda Mon Sep 17 00:00:00 2001 From: Yong Liu Date: Thu, 3 Jul 2014 16:59:36 +0800 Subject: [PATCH] examples/qos_sched: fix flow pause after 2M packets After enable vector pmd, qos_sched only send 32 packets every burst. That will cause some packets not transmitted and therefore mempool will be drain after a while. App qos_sched now will re-send the packets which failed to send out in previous tx function. Signed-off-by: Yong Liu Acked-by: Cristian Dumitrescu Tested-by: Waterman Cao --- examples/qos_sched/app_thread.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/examples/qos_sched/app_thread.c b/examples/qos_sched/app_thread.c index 7501147fee..59c4014065 100755 --- a/examples/qos_sched/app_thread.c +++ b/examples/qos_sched/app_thread.c @@ -139,17 +139,11 @@ app_send_burst(struct thread_conf *qconf) do { ret = rte_eth_tx_burst(qconf->tx_port, qconf->tx_queue, mbufs, (uint16_t)n); - if (unlikely(ret < n)) { /* we cannot drop the packets, so re-send */ - /* update number of packets to be sent */ - n -= ret; - mbufs = (struct rte_mbuf **)&mbufs[ret]; - /* limit number of retries to avoid endless loop */ - /* reset retry counter if some packets were sent */ - if (likely(ret != 0)) { - continue; - } - } - } while (ret != n); + /* we cannot drop the packets, so re-send */ + /* update number of packets to be sent */ + n -= ret; + mbufs = (struct rte_mbuf **)&mbufs[ret]; + } while (n); } -- 2.20.1