Spdk/lib/nvmf
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
..
ctrlr_bdev.c lib/nvmf: add explicit iovcnt init to silence LTO related warning 2022-09-26 15:36:23 +00:00
ctrlr_discovery.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
ctrlr.c lib/nvmf: fix async_events index 2022-09-26 11:49:41 +00:00
fc_ls.c check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
fc.c nvmf: add spdk_nvmf_ctrlr_[save|restore]_migr_data() APIs 2022-09-20 10:17:24 +00:00
Makefile libvfio-user: compile shared library based on CONFIG_SHARED flag 2022-06-23 07:43:26 +00:00
nvmf_fc.h check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
nvmf_internal.h nvmf: add spdk_nvmf_ctrlr_[save|restore]_migr_data() APIs 2022-09-20 10:17:24 +00:00
nvmf_rpc.c check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
nvmf.c nvmf: emit add_listeners RPCs after add_ns RPCs 2022-09-21 08:50:08 +00:00
rdma.c nvmf: Don't reg additional MRs 2022-09-20 20:27:52 +00:00
spdk_nvmf.map nvmf: add spdk_nvmf_ctrlr_[save|restore]_migr_data() APIs 2022-09-20 10:17:24 +00:00
subsystem.c lib/nvmf: don't raise assertion in nvmf_tgt_destroy_cb 2022-08-04 07:29:27 +00:00
tcp.c nvmf/tcp: add admin queue depth check before init 2022-09-28 06:39:14 +00:00
transport.c print better errors when creating mempools from secondary process 2022-08-29 11:41:32 +00:00
transport.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
vfio_user.c nvmf/vfio-user: support multiple poll groups in interrupt mode 2022-10-26 07:32:54 +00:00