Spdk/include/spdk
John Levon 64db53f1aa nvmf/vfio-user: support multiple poll groups in interrupt mode
To support SQs allocated to a poll group other than the controller's
main poll group, we need to make sure to poll those SQs when we wake up
and handle the controller interrupt. As they will be running in a
separate SPDK thread, we will arrange for all poll groups to wake up
when we receive an interrupt corresponding to a vfio-user message
arriving.

This can mean needless wakeups: we don't (yet) have a mechanism to only
wake up the poll groups that correspond to a particular SQ write.

Additionally, as we don't have any notion of a poll group per
controller, this ends up polling all SQs in the entire poll group, not
just the ones corresponding to the controller we were handling.

As this has potential performance issues in many cases, it defaults to
disabled.

Signed-off-by: John Levon <john.levon@nutanix.com>
Change-Id: I3d9f32625529455f8d55578ae9cd7b84265f67ab
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14120
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-10-26 07:32:54 +00:00
..
accel.h accel: correct spdk_accel_completion_cb's description 2022-10-19 07:51:03 +00:00
assert.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
barrier.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
base64.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
bdev_module.h bdev: split writes based on write_unit_size 2022-09-29 22:52:45 +00:00
bdev_zone.h include: add extern c to bdev_zone.h 2022-10-25 07:08:57 +00:00
bdev.h bdev: Add functions to [hole,data] seek 2022-09-15 08:23:56 +00:00
bit_array.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
bit_pool.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
blob_bdev.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
blob.h blob: Add functions to find [un]allocated io_unit 2022-09-15 08:23:56 +00:00
blobfs_bdev.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
blobfs.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
conf.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
cpuset.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
crc16.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
crc32.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
dif.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
dma.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
endian.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
env_dpdk.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
env.h env/pci: add detach() callback to pci_device_provider 2022-09-01 08:48:32 +00:00
event.h event: pass "const struct option*" to spdk_app_parse_args() 2022-09-13 10:48:58 +00:00
fd_group.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
fd.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
file.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
ftl.h ftl: check structure sizes for future ABI compatibility 2022-09-20 19:24:26 +00:00
gpt_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
hexlify.h util: made hexlify and unhexlify functions public 2022-09-06 07:17:13 +00:00
histogram_data.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
idxd_spec.h lib/idxd: update decompression flags 2022-09-23 17:55:12 +00:00
idxd.h accel/idxd/iaa: Convert to use iovecs 2022-09-23 00:10:08 +00:00
init.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
ioat_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
ioat.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
iscsi_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
json.h json: fix parsing json problems when json config is invalid. 2022-09-02 07:32:21 +00:00
jsonrpc.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
likely.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
log.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
lvol.h blobstore: implement spdk_bs_grow and bdev_lvol_grow_lvstore RPC 2022-06-28 17:55:43 +00:00
memory.h env_dpdk: Automatically map PCI BARs into VFIO 2022-09-26 11:48:39 +00:00
mmio.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nbd.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
notify.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme_intel.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme_ocssd_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme_ocssd.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme_spec.h nvme: add admin queue size quirk for Hyper-V 2022-09-01 08:31:46 +00:00
nvme_zns.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme.h nvme/tcp: Allow to choose SSL socket implementation 2022-09-14 07:44:53 +00:00
nvmf_cmd.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvmf_fc_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvmf_spec.h nvmf/tcp: add hpda value check in 'nvmf_tcp_icreq_handle' 2022-09-22 07:45:03 +00:00
nvmf_transport.h nvmf: declare new added migration APIs are experimental 2022-09-21 07:52:22 +00:00
nvmf.h nvmf: make opts structures packed 2022-08-18 10:08:40 +00:00
opal_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
opal.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
pci_ids.h nvme: add admin queue size quirk for Hyper-V 2022-09-01 08:31:46 +00:00
pipe.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
queue_extras.h include: remove util.h include from queue_extras.h 2021-04-14 07:25:21 +00:00
queue.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
reduce.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
rpc.h rpc: Add API to get method state mask 2022-09-15 08:25:18 +00:00
scheduler.h include: Remove the last line break. 2022-09-01 08:30:24 +00:00
scsi_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
scsi.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
sock.h sock: Ensure recv/send_buf_size to be larger than g_sock_impl_opts.recv/send_buf_size 2022-10-21 07:17:37 +00:00
stdinc.h nvmf/vfio-user: support multiple poll groups in interrupt mode 2022-10-26 07:32:54 +00:00
string.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
thread.h thread: note that spdk_thread_get_last_tsc(NULL) is allowed 2022-09-14 04:35:20 +00:00
trace_parser.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
trace.h trace: allocate shm filesize based on number of cores used 2022-09-20 10:17:45 +00:00
tree.h util: rename RB_ROOT into _RB_ROOT 2021-06-04 22:46:40 +00:00
util.h util: Extract a common lib between iovs and buf. 2022-06-20 10:01:15 +00:00
uuid.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
version.h version: SPDK 23.01 pre 2022-09-23 20:12:30 +00:00
vfio_user_pci.h lib/vfio-user: add spdk_vfio_user_dev_send_request as public function 2022-09-23 15:16:01 +00:00
vfio_user_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
vfu_target.h lib/vfu_tgt: add library for PCI device emulation 2022-09-29 19:42:56 +00:00
vhost.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
vmd.h vmd: method for forcing a rescan 2022-09-01 08:48:32 +00:00
xor.h lib/util: add ISA-L accelerated xor generation 2022-09-29 22:52:45 +00:00
zipf.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00