Spdk/lib/bdev
Jim Harris b5f4a259bd bdev: save mgmt_ch that spdk_bdev_io was allocated from
This avoids having to dereference the spdk_bdev_io's
channel in the spdk_bdev_free_io() path.

Cleaning up after hotplug events should ensure that
all associated bdev_ios have been freed (not just
completed) before the bdev channels have been freed,
but this patch gives us some more wiggle room in this
area.

Results in a small (1-2%) performance degradation on
a bdevperf microbenchmark, but should result in no
noticeable difference on any real world workload.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Id8b88300fc53e8c0b83309a738a4c3bd2aeaff52

Reviewed-on: https://review.gerrithub.io/394399
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: <shuhei.matsumoto.xt@hitachi.com>
2018-01-12 13:27:20 -05:00
..
aio util: add spdk_strerror() wrapper with TLS support 2018-01-04 15:00:09 -05:00
error bdev/error: add bdev_part hotremove callback 2018-01-03 12:11:26 -05:00
gpt build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
lvol util: add spdk_strerror() wrapper with TLS support 2018-01-04 15:00:09 -05:00
malloc build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
null build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
nvme build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
pmem util: add spdk_strerror() wrapper with TLS support 2018-01-04 15:00:09 -05:00
rbd bdev: unregister all bdevs in spdk_bdev_finish() 2017-12-21 13:29:29 -05:00
rpc bdev: Return aliases list through get_bdevs 2018-01-04 13:15:09 -05:00
split build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
virtio util: add spdk_strerror() wrapper with TLS support 2018-01-04 15:00:09 -05:00
bdev.c bdev: save mgmt_ch that spdk_bdev_io was allocated from 2018-01-12 13:27:20 -05:00
Makefile build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
scsi_nvme.c nvme_spec: remove SGL Sub Type Invalid status code 2017-09-22 17:11:53 -04:00
vtune.c bdev: #include VTune file to control warnings 2017-06-08 12:44:25 -04:00