Spdk/lib
Changpeng Liu 1f9c7a74bc vhost: stop started session in session_shutdown
DPDK vhost will call `new_device` when the VRINGs are
queue paired(virtio-net) or all the VRINGs are started.
However, for virtio-blk/scsi, SeaBIOS will only use one
VRING queue, DPDK added a workaround patch to add
`pre_msg_handle` and `post_msg_handle` callbacks to let
devices other than virtio-net to process such scenarios.

In SPDK, we will start the device when there is one valid
VRING, so there is a case that SPDK and DPDK have different
state for one device.  For a virtio-scsi device, SeaBIOS will
only start the request queue, and in the BIOS stage, SPDK will
start the device but DPDK doesn't think so.  If users killed
SPDK vhost target at the moment, in `session_shutdown`, SPDK
will expect DPDK to call `destroy_device` to do the cleanup,
but DPDK won't do that as it thinks the device isn't started.

Here in `session_shutdown`, SPDK will do this first, it's OK
that DPDK will call another `destroy_device` for devices that
have the same state both in SPDK and DPDK.

Fix issue #2228.

Change-Id: Ib76dd54c8fa302ffe6da9b13498312b7d344bbfe
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10143
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2021-11-11 23:23:06 +00:00
..
accel accel: create SW Engine Channel if HW Engine not supports 2021-10-20 23:04:38 +00:00
bdev lib/bdev: add context to trace records in bdev.c 2021-10-20 07:22:00 +00:00
blob blob: use uint64_t for unmap and write_zeroes lba count 2021-10-14 08:17:16 +00:00
blobfs trace: move all trace definitions to a separate file 2021-10-20 07:22:00 +00:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
dma dma: Add infrstructure for push operation 2021-10-20 22:55:52 +00:00
env_dpdk env/dpdk: retry SO_RCVBUF if SO_RCVBUFFORCE fails 2021-11-08 16:05:51 +00:00
env_ocf Update ocf to 21.6 2021-10-20 07:22:22 +00:00
event event: use for_each_reactor to shut down reactors 2021-10-21 09:17:42 +00:00
ftl ftl: fix set-but-not-used error 2021-11-03 18:30:55 +00:00
idxd lib/idxd: only select idxd device that are on the same socket 2021-10-07 09:26:50 +00:00
init init: use strerror when conf file can't be loaded 2021-11-03 18:30:55 +00:00
ioat ioat: fix potential double free problem in ioat_channel_start() 2021-06-16 09:00:37 +00:00
iscsi iscsi: Update task->current_data_offset always when submitting subtask 2021-11-11 23:22:57 +00:00
json json: add the spdk_json_write_uint8|16 function 2021-10-14 09:52:25 +00:00
jsonrpc jsonrpc: use SOCK_NONBLOCK in socket() calls 2021-05-05 13:31:10 +00:00
log log: add an API to return syslog level based on SPDK's log level 2021-08-12 12:57:39 +00:00
lvol blob: use uint64_t for unmap and write_zeroes lba count 2021-10-14 08:17:16 +00:00
nbd lib/nbd: hot remove will be correctly handled 2021-07-26 08:56:23 +00:00
notify so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme nvme: add an API to check existing transport type is fabric or not 2021-11-05 00:53:27 +00:00
nvmf nvmf: fix check for buffs num in nvmf_request_get_buffers 2021-11-10 20:25:35 +00:00
rdma include: remove util.h include from queue_extras.h 2021-04-14 07:25:21 +00:00
reduce util: Add macro SPDK_SIZEOF_MEMBER to get size of a member of a struct 2021-07-15 07:16:22 +00:00
rocksdb rocksdb: fix thread name typo 2021-09-03 08:08:20 +00:00
rpc so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
scsi scsi: Decide LUN format for each LUN ID 2021-10-12 09:10:18 +00:00
sock socket: Remove deprecated enable_zerocopy_send 2021-07-23 10:30:25 +00:00
thread thread: reap unreg pollers in intr 2021-10-21 21:25:53 +00:00
trace trace: enable adding relations between traces 2021-10-21 17:57:33 +00:00
trace_parser trace: enable adding relations between traces 2021-10-21 17:57:33 +00:00
ut_mock so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
util add name to fd groups 2021-10-07 09:25:48 +00:00
vfio_user nvme/vfio-user: remove internal device list 2021-11-10 23:11:13 +00:00
vhost vhost: stop started session in session_shutdown 2021-11-11 23:23:06 +00:00
virtio env: only pass failing address to spdk_pci_error_handler 2021-06-15 08:34:28 +00:00
vmd vmd: update for changes in IceLake platform 2021-08-31 08:39:37 +00:00
Makefile lib/trace_parser: add trace_parser library stubs 2021-09-29 08:57:58 +00:00