2089c410ca
To fully support interrupt mode for the vfio-user transport, we need to arrange to wake up in one of two conditions: - we receive a vfio-user message on the socket - a client writes to one of our BARs In response, we can process any pending vfio-user messages, as well as poll the actual queue pairs. As there is no way for a client-mapped BAR write to cause us to wake up, interrupt mode can only work when mappable BAR0 is disabled. In that case, each BAR write becomes a vfio-user message, and can thus be handled by registering the libvfio-user socket fd with SPDK. For the poll group poller, we enable interrupt mode for it during the vfio-user ->poll_group_create() callback; this only works in the case that no other transports without interrupt mode support are sharing that poll group. Signed-off-by: John Levon <john.levon@nutanix.com> Change-Id: Ic784d01078b2006edb27892fc0613f934eca930b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10722 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Community-CI: Mellanox Build Bot |
||
---|---|---|
.. | ||
ctrlr_bdev.c | ||
ctrlr_discovery.c | ||
ctrlr.c | ||
fc_ls.c | ||
fc.c | ||
Makefile | ||
nvmf_fc.h | ||
nvmf_internal.h | ||
nvmf_rpc.c | ||
nvmf.c | ||
rdma.c | ||
spdk_nvmf.map | ||
subsystem.c | ||
tcp.c | ||
transport.c | ||
transport.h | ||
vfio_user.c |