From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 382322952 for ; Wed, 2 Nov 2016 11:20:51 +0100 (CET) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP; 02 Nov 2016 03:20:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,583,1473145200"; d="scan'208";a="26465621" Received: from yliu-dev.sh.intel.com ([10.239.67.162]) by fmsmga006.fm.intel.com with ESMTP; 02 Nov 2016 03:20:49 -0700 From: Yuanhan Liu To: Jasvinder Singh Date: Wed, 2 Nov 2016 18:21:01 +0800 Message-Id: <1478082097-16957-5-git-send-email-yuanhan.liu@linux.intel.com> X-Mailer: git-send-email 1.9.0 In-Reply-To: <1478082097-16957-1-git-send-email-yuanhan.liu@linux.intel.com> References: <1478082097-16957-1-git-send-email-yuanhan.liu@linux.intel.com> Cc: Tao Y Yang , dpdk stable Subject: [dpdk-stable] patch 'examples/qos_sched: fix dequeue from ring' has been queued to stable release 16.07.2 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Nov 2016 10:20:51 -0000 Hi, FYI, your patch has been queued to stable release 16.07.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/06/16. So please shout if anyone has objections. Thanks. --yliu --- >>From 52f8f28a1952af3382cc0585a3bc032677aea099 Mon Sep 17 00:00:00 2001 From: Jasvinder Singh Date: Thu, 1 Sep 2016 11:11:04 +0100 Subject: [PATCH] examples/qos_sched: fix dequeue from ring [ upstream commit edabd7fef5448af6a9f81892fdb4a365fad9e320 ] The app_worker_thread() and app_mixed_thread() use rte_ring_sc_dequeue_bulk to dequeue packets from the ring and this imposes restriction on number of packets in software ring to be greater than the specified value to start actual dequeue operation, thus, adds latency to those packets. Therefore, rte_ring_sc_dequeue_bulk is replaced with rte_ring_sc_dequeue_burst. Fixes: de3cfa2c9823 ("sched: initial import") Suggested-by: Tao Y Yang Signed-off-by: Jasvinder Singh --- examples/qos_sched/app_thread.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/examples/qos_sched/app_thread.c b/examples/qos_sched/app_thread.c index 3c678cc..70fdcdb 100644 --- a/examples/qos_sched/app_thread.c +++ b/examples/qos_sched/app_thread.c @@ -215,17 +215,16 @@ app_worker_thread(struct thread_conf **confs) while ((conf = confs[conf_idx])) { uint32_t nb_pkt; - int retval; /* Read packet from the ring */ - retval = rte_ring_sc_dequeue_bulk(conf->rx_ring, (void **)mbufs, + nb_pkt = rte_ring_sc_dequeue_burst(conf->rx_ring, (void **)mbufs, burst_conf.ring_burst); - if (likely(retval == 0)) { + if (likely(nb_pkt)) { int nb_sent = rte_sched_port_enqueue(conf->sched_port, mbufs, - burst_conf.ring_burst); + nb_pkt); - APP_STATS_ADD(conf->stat.nb_drop, burst_conf.ring_burst - nb_sent); - APP_STATS_ADD(conf->stat.nb_rx, burst_conf.ring_burst); + APP_STATS_ADD(conf->stat.nb_drop, nb_pkt - nb_sent); + APP_STATS_ADD(conf->stat.nb_rx, nb_pkt); } nb_pkt = rte_sched_port_dequeue(conf->sched_port, mbufs, @@ -250,17 +249,16 @@ app_mixed_thread(struct thread_conf **confs) while ((conf = confs[conf_idx])) { uint32_t nb_pkt; - int retval; /* Read packet from the ring */ - retval = rte_ring_sc_dequeue_bulk(conf->rx_ring, (void **)mbufs, + nb_pkt = rte_ring_sc_dequeue_burst(conf->rx_ring, (void **)mbufs, burst_conf.ring_burst); - if (likely(retval == 0)) { + if (likely(nb_pkt)) { int nb_sent = rte_sched_port_enqueue(conf->sched_port, mbufs, - burst_conf.ring_burst); + nb_pkt); - APP_STATS_ADD(conf->stat.nb_drop, burst_conf.ring_burst - nb_sent); - APP_STATS_ADD(conf->stat.nb_rx, burst_conf.ring_burst); + APP_STATS_ADD(conf->stat.nb_drop, nb_pkt - nb_sent); + APP_STATS_ADD(conf->stat.nb_rx, nb_pkt); } -- 1.9.0