Spdk/test/lib/event
Daniel Verkamp 52bbb267d8 event: process events in batches
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>
2016-11-07 09:32:25 -07:00
..
event event: process events in batches 2016-11-07 09:32:25 -07:00
reactor event: directly add poller when adding to current core 2016-10-11 15:35:36 -07:00
subsystem subsystem_ut: add missing copyright header 2016-07-20 13:46:37 -07:00
event.sh event: add timer-based pollers 2016-08-03 09:00:54 -07:00
Makefile event: add timer-based pollers 2016-08-03 09:00:54 -07:00