Spdk/test
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
..
cpp_headers test/cpp_headers: autogenerate header test files 2016-10-03 10:24:18 -07:00
iscsi_tgt bdev: make construct RPCs return the bdev names 2016-10-31 11:17:46 -07:00
lib event: process events in batches 2016-11-07 09:32:25 -07:00
nvmf test: Use lspci to discover default kernel drivers 2016-11-02 16:37:40 -07:00
Makefile test: validate that all headers compile as C++ 2016-09-21 15:27:08 -07:00
spdk_cunit.h spdk_cunit: only evaluate assert condition once 2016-10-19 08:09:45 -07:00