examples/qos_sched: fix dequeue from ring
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 <tao.y.yang@intel.com> Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
This commit is contained in:
parent
a77b948a65
commit
edabd7fef5
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user