event/sw: move stats code for better cache access
authorVipin Varghese <vipin.varghese@intel.com>
Tue, 27 Feb 2018 20:17:18 +0000 (01:47 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 16 Apr 2018 08:07:03 +0000 (10:07 +0200)
variables 'out_pkts_total' and 'out_pkts_total' will be in registers.
Hence shifting the code after the loop, helps the update from registers.

Signed-off-by: Vipin Varghese <vipin.varghese@intel.com>
Acked-by: Kevin Laatz <kevin.laatz@intel.com>
drivers/event/sw/sw_evdev_scheduler.c

index 17bd4c0..9143b93 100644 (file)
@@ -541,6 +541,12 @@ sw_event_schedule(struct rte_eventdev *dev)
                        break;
        } while ((int)out_pkts_total < sched_quanta);
 
+       sw->stats.tx_pkts += out_pkts_total;
+       sw->stats.rx_pkts += in_pkts_total;
+
+       sw->sched_no_iq_enqueues += (in_pkts_total == 0);
+       sw->sched_no_cq_enqueues += (out_pkts_total == 0);
+
        /* push all the internal buffered QEs in port->cq_ring to the
         * worker cores: aka, do the ring transfers batched.
         */
@@ -552,10 +558,4 @@ sw_event_schedule(struct rte_eventdev *dev)
                sw->ports[i].cq_buf_count = 0;
        }
 
-       sw->stats.tx_pkts += out_pkts_total;
-       sw->stats.rx_pkts += in_pkts_total;
-
-       sw->sched_no_iq_enqueues += (in_pkts_total == 0);
-       sw->sched_no_cq_enqueues += (out_pkts_total == 0);
-
 }