Spdk/lib
Jim Harris 32bff28a25 nvme: use spdk_pci_device_claim() in nvme_pcie_ctrlr_construct
spdk_pci_device_claim() can be used to ensure only one process
at a time uses any given PCI device.  Previously this was only
used in the bdev_nvme driver - other apps like nvme/perf do
not use spdk_pci_device_claim() and could effectively rip out
the device from a running bdev-based app like the NVMe-oF target.

So instead of modifying all of the nvme apps, put this logic into
the core nvme driver instead so that all applications get the
benefit transparently.  Save the fd when the controller is constructed
and then close it when the controller is destructed to handle the
detach (including hotplug) cases.

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

Reviewed-on: https://review.gerrithub.io/385524
Reviewed-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-11-03 18:48:33 -04:00
..
bdev nvme: use spdk_pci_device_claim() in nvme_pcie_ctrlr_construct 2017-11-03 18:48:33 -04:00
blob blob_bdev: add unmap -> write_zeroes fallback 2017-10-26 17:23:58 -04:00
blobfs blobfs: fix bstype debug prints 2017-10-17 16:26:02 -04:00
conf log: Use SPDK_ERRLOG in lieu of fprintf(stderr 2017-05-09 11:28:28 -07:00
copy env: return fd from spdk_pci_device_claim() 2017-11-03 18:48:33 -04:00
cunit include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
env_dpdk env: return fd from spdk_pci_device_claim() 2017-11-03 18:48:33 -04:00
event event/subsystem/bdev: asynchronous SPDK finish 2017-10-27 13:03:55 -04:00
ioat copy: return 0 on success and appropriate errno on failure 2017-09-25 13:56:29 -04:00
iscsi iscsi, vhost, nvmf: allow running without config file 2017-11-03 18:42:53 -04:00
json json: add function to write UTF-16LE strings 2017-07-12 18:12:52 -04:00
jsonrpc log: rename SPDK_TRACELOG to SPDK_DEBUGLOG 2017-08-29 13:25:58 -04:00
log log: change spdk_trace_dump() to take a void * 2017-10-17 16:26:02 -04:00
lvol lvol: read lvols names on lvol store tasting 2017-11-02 13:59:48 -04:00
nbd nbd, nvmf: fix clang 4.0 packed member warnings 2017-09-07 12:15:45 -04:00
net subsystem: remove fini return code 2017-10-10 10:56:34 -04:00
nvme nvme: use spdk_pci_device_claim() in nvme_pcie_ctrlr_construct 2017-11-03 18:48:33 -04:00
nvmf nvmf/rdma: Add the buffer size check for data_buf_pool 2017-11-01 15:45:35 -04:00
rocksdb blob_bdev: hotremove support 2017-09-28 12:46:18 -04:00
rpc rpc: add get_rpc_methods RPC call 2017-08-01 13:43:14 -04:00
scsi scsi: use scsi_spec.h enums for VPD page numbers 2017-10-29 12:12:47 -04:00
trace lib: replace strerror with strerror_r 2017-08-15 16:47:01 -04:00
ut_mock test/mock: add pthread_self 2017-09-19 17:15:15 -04:00
util blob: defer calling unload callback until dev is destroyed 2017-09-26 19:10:28 -04:00
vhost vhost: exit the vhost app for error configuration 2017-11-03 17:39:24 -04:00
Makefile lvol: Logical volume implementation 2017-09-14 19:30:54 -04:00