52bbb267d8
Since we are usually going to be removing multiple events from the queue at once, use the DPDK burst dequeue interface to improve efficiency. Also rework the event queue runner to always process a fixed maximum number of events per timeslice for simplicity. This removes the rte_ring_count() call from the hot path and improves fairness between events and pollers. Now that events are dequeued in bulk, we can also put the event objects back into the mempool in bulk. Add an env wrapper around rte_mempool_put_bulk() and use it to free all of the events at once. Basic performance benchmark using test/lib/event/event/event -t 10 is improved: previously ~40 million events per second, now ~46 million events per second. Change-Id: I432e8a48774a087eec2be3a64c38c339608af42a Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>