numam-spdk/lib
Daniel Verkamp 2138676573 bdev: defer completions from within submit_request
If a blockdev module calls spdk_bdev_io_complete() within its
submit_request function, and the user's completion callback issues a new
I/O, it is possible to cause infinite recursion, consuming all available
stack space.

To avoid this, track whether a bdev_io is being processed by
submit_request, and if io_complete() is called in this case, defer the
completion via an event.

Change-Id: I6ccdb8ed4ee0d5738e6c9840d35431de52bd5fa2
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-01-13 12:37:54 -07:00
..
bdev bdev: defer completions from within submit_request 2017-01-13 12:37:54 -07:00
conf conf: move structures out of public API header 2016-11-16 10:33:16 -07:00
copy event: remove 'complete' parameter from poller_register 2017-01-05 11:57:18 -07:00
cunit eofnl: check for extra trailing newlines 2016-10-11 13:30:33 -07:00
env_dpdk ioat: add missing Haswell channel 1 device ID 2017-01-13 10:33:49 -07:00
event event/reactor: update last_action for timer pollers 2017-01-12 14:04:01 -07:00
ioat env: split PCI drivers into individual files 2016-12-06 09:30:55 -07:00
iscsi iscsi: increment the correct lcore's g_num_connections in FFP transition 2017-01-12 10:15:05 -07:00
json json: add printf-style spdk_json_write_string_fmt() 2016-11-22 16:32:35 -07:00
jsonrpc jsonrpc_server: allow user to specify socket type 2016-12-15 08:06:33 -07:00
log log: print trace flag names in SPDK_TRACELOG() 2016-11-28 13:15:08 -07:00
net event.h: split non-public API into spdk_internal 2017-01-05 11:57:18 -07:00
nvme nvme/rdma: Support directly connect via trid 2017-01-13 10:57:03 -07:00
nvmf bdev: add API to claim block devices 2017-01-11 16:49:39 -07:00
rpc event: remove spdk_event_allocate() next parameter 2017-01-05 11:57:18 -07:00
scsi bdev: add API to claim block devices 2017-01-11 16:49:39 -07:00
trace Replace rte_get_tsc calls with spdk_get_ticks 2016-10-11 13:34:09 -07:00
util util: add vsprintf version of spdk_sprintf_alloc 2016-11-22 11:52:00 -07:00
Makefile env: rename default implementation to env_dpdk 2016-11-14 08:48:20 -07:00