Spdk/lib
Darek Stojaczyk 73844cccf4 vhost: introduce device sessions
Grouped a few spdk_vhost_dev struct fields into a new
struct spdk_vhost_session. A session will represent the
connection between SPDK vhost device (vhost-user slave)
and QEMU (vhost-user master).

This essentially serves two purposes. The first is to
allow multiple simultaneous connections to a single
vhost device. Each connection (session) will have access
to the same storage, but will use separate virtqueues,
separate features and possibly different memory. For
Vhost-SCSI, this could be used together with the upcoming
SCSI reservations feature.

The other purpose is to untie devices from lcores and tie
sessions instead. This will potentially allow us to modify
the device struct from any thread, meaning we'll be able
to get rid of the external events API and simplify a lot
of the code that manages vhost - vhost RPC for instance.
Device backends themselves would be responsible for
propagating all device events to each session, but it could
be completely transparent to the upper layers.

Change-Id: I39984cc0a3ae2e76e0817d48fdaa5f43d3339607
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/437774
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2018-12-23 00:42:54 +00:00
..
bdev nvme_rdma: Add source addr info to RPC 2018-12-20 17:31:43 +00:00
blob util: added spdk_divide_round_up() 2018-12-18 17:26:49 +00:00
blobfs log: remove "trace" from internal API 2018-12-03 19:50:15 +00:00
conf conf: don't strdup name if section already exist 2018-05-17 17:13:19 +00:00
copy lib/copy: unregister copy engine on finish 2018-10-15 17:42:20 +00:00
env_dpdk memory: return first translation from mem_map_translate 2018-12-13 22:27:21 +00:00
event nvmf: add the transport shared buffer num configuration option. 2018-12-20 19:55:57 +00:00
ioat pci: remove ioat-specific attach functions 2018-12-07 17:24:19 +00:00
iscsi thread: Rename spdk_thread_msg to spdk_msg_fn 2018-12-18 23:31:08 +00:00
json json: Use not C++ style comments // but C-style comments /* */ 2018-10-31 22:01:47 +00:00
jsonrpc jsonrpc client: non-blocking mode 2018-12-07 09:41:03 +00:00
log app: rename traceflag cmdline option to logflag 2018-12-03 19:50:15 +00:00
lvol util: added spdk_divide_round_up() 2018-12-18 17:26:49 +00:00
nbd nbd: fixup return codes 2018-11-28 22:55:09 +00:00
net lib: fix typos in the lib directory 2018-08-24 17:15:12 +00:00
nvme nvme_bdev: add parsing for hostaddr and hostsvcid 2018-12-20 17:31:43 +00:00
nvmf nvmf: add the transport shared buffer num configuration option. 2018-12-20 19:55:57 +00:00
reduce reduce: _allocate_vol_requests: set pointer to NULL after freed 2018-12-18 23:38:51 +00:00
rocksdb thread: Use TLS to accelerate thread look up 2018-12-14 18:54:03 +00:00
rpc rpc: add spdk_rpc_is_method_allowed 2018-12-05 00:35:35 +00:00
scsi scsi: Set TMF code prior to calling spdk_scsi_dev_queue_mgmt_task 2018-12-10 20:34:11 +00:00
sock vpp: Change the type of sa into sockaddr_storage 2018-12-20 01:49:29 +00:00
thread thread: Rename spdk_thread_msg to spdk_msg_fn 2018-12-18 23:31:08 +00:00
trace lib/trace: add 3 RPC method for tpoint_group_mask 2018-12-14 21:29:12 +00:00
ut_mock ut_mock: rename library from spdk_mock to ut_mock 2018-11-20 14:57:57 +00:00
util util/crc16: Add spdk_crc16_t10dif_copy to use in read strip and write insert 2018-12-20 17:52:29 +00:00
vhost vhost: introduce device sessions 2018-12-23 00:42:54 +00:00
virtio pci: remove virtio-specific attach functions 2018-12-07 17:24:19 +00:00
Makefile reduce: add configure option 2018-11-08 00:01:47 +00:00