X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fqos_sched%2Fapp_thread.c;h=15f117f5f4a26ea993d4a03b549d460f69fe9532;hb=55fd270311c51f40e97a1c92d6e739b35222875c;hp=7501147fee76f42d9f8d5741231eaab27fc7fbca;hpb=3031749c2df04a63cdcef186dcce3781e61436e8;p=dpdk.git diff --git a/examples/qos_sched/app_thread.c b/examples/qos_sched/app_thread.c old mode 100755 new mode 100644 index 7501147fee..15f117f5f4 --- a/examples/qos_sched/app_thread.c +++ b/examples/qos_sched/app_thread.c @@ -107,7 +107,7 @@ app_rx_thread(struct thread_conf **confs) } if (unlikely(rte_ring_sp_enqueue_bulk(conf->rx_ring, - (void **)rx_mbufs, nb_rx) != 0)) { + (void **)rx_mbufs, nb_rx, NULL) == 0)) { for(i = 0; i < nb_rx; i++) { rte_pktmbuf_free(rx_mbufs[i]); @@ -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); } @@ -185,8 +179,8 @@ app_tx_thread(struct thread_conf **confs) while ((conf = confs[conf_idx])) { retval = rte_ring_sc_dequeue_bulk(conf->tx_ring, (void **)mbufs, - burst_conf.qos_dequeue); - if (likely(retval == 0)) { + burst_conf.qos_dequeue, NULL); + if (likely(retval != 0)) { app_send_packets(conf, mbufs, burst_conf.qos_dequeue); conf->counter = 0; /* reset empty read loop counter */ @@ -221,23 +215,24 @@ 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, - burst_conf.ring_burst); - if (likely(retval == 0)) { + nb_pkt = rte_ring_sc_dequeue_burst(conf->rx_ring, (void **)mbufs, + burst_conf.ring_burst, NULL); + 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, burst_conf.qos_dequeue); if (likely(nb_pkt > 0)) - while (rte_ring_sp_enqueue_bulk(conf->tx_ring, (void **)mbufs, nb_pkt) != 0); + while (rte_ring_sp_enqueue_bulk(conf->tx_ring, + (void **)mbufs, nb_pkt, NULL) == 0) + ; /* empty body */ conf_idx++; if (confs[conf_idx] == NULL) @@ -256,17 +251,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, - burst_conf.ring_burst); - if (likely(retval == 0)) { + nb_pkt = rte_ring_sc_dequeue_burst(conf->rx_ring, (void **)mbufs, + burst_conf.ring_burst, NULL); + 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); } @@ -297,5 +291,3 @@ app_mixed_thread(struct thread_conf **confs) conf_idx = 0; } } - -