Spdk/lib/event
Dariusz Stojaczyk 408bb168ac event/reactor: take into account 1 extra slot in event mempools
The following assumes we use env_dpdk underneath.

rte_mempools use rte_rings internally. When creating
a mempool with capacity N, we internally try to create
a ring with least N+1 size. That's because rte_rings
need one extra empty element to differentiate between
the full and empty state. To make it worse, the ring
size has to be a power of two, so rte_mempools use
`rte_align32pow2(mp->size + 1)` for the size calculation.
And rte_ring memory has to be physically contiguous.

Allocating a mempool of capacity 262144 requires at
least (2 * 262144) * sizeof(void *) = 4MB memory. This
made us require at least 2 physically contiguous
2MB hugepages.

Change-Id: Iabc984a29a60c0b2cf5309a78cd1bcce28ac7b3d
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/408925
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2018-04-30 17:25:51 +00:00
..
rpc rpc: free req before kill() to make asan complain a little bit less 2018-03-30 16:18:34 -04:00
subsystems nbd: add JSON config dump 2018-04-24 21:46:42 +00:00
app.c app: pci_black/whitelist on global config and command line option 2018-04-30 17:25:41 +00:00
Makefile build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
reactor.c event/reactor: take into account 1 extra slot in event mempools 2018-04-30 17:25:51 +00:00
rpc.c io_channel: add return value to pollers 2018-03-13 11:16:20 -04:00
subsystem.c event: allow subsystem to write configuration in async way 2018-03-27 02:57:28 -04:00