numam-spdk/lib/nvmf
Rui Chang 5d926c48ea nvmf/vfio-user: Fix doorbell polling not working on some ARM platform
On aarch64 platforms, doorbells update from guest VM may not be seen
on SPDK target side. This is because there is memory type mismatch
situation here. That is on guest VM side, the doorbells are treated as
device memory while on SPDK target side, it is treated as normal
memory. And this situation cause problem on ARM platform.
Refer to "https://developer.arm.com/documentation/102376/0100/
Memory-aliasing-and-mismatched-memory-types". Only using spdk_mb()
cannot fix this. Use "dc civac" to invalidate cache may solve this.

Profiling data did not show big performance degradataion.

Signed-off-by: Rui Chang <rui.chang@arm.com>
Change-Id: I9a18718f8c4307b3007b18c32ab02e6796548958
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10222
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2021-12-14 09:09:09 +00:00
..
ctrlr_bdev.c nvmf/ctrlr_bdev: Set DNR bit in status for failed NVMe passthru 2021-12-03 08:13:52 +00:00
ctrlr_discovery.c nvmf: Add discovery filtering rules 2021-10-25 22:57:48 +00:00
ctrlr.c nvmf/ctrlr: let transport can set VID SSVID and IEEE values 2021-12-06 23:17:07 +00:00
fc_ls.c spelling: lib 2021-12-03 08:12:55 +00:00
fc.c spelling: lib 2021-12-03 08:12:55 +00:00
Makefile nvmf/ctrlr: let transport can set VID SSVID and IEEE values 2021-12-06 23:17:07 +00:00
nvmf_fc.h spelling: lib 2021-12-03 08:12:55 +00:00
nvmf_internal.h spelling: lib 2021-12-03 08:12:55 +00:00
nvmf_rpc.c nvmf: Add discovery filtering rules 2021-10-25 22:57:48 +00:00
nvmf.c spelling: lib 2021-12-03 08:12:55 +00:00
rdma.c spelling: lib 2021-12-03 08:12:55 +00:00
spdk_nvmf.map lib/nvmf : Added support for ZCOPY 2021-07-23 08:34:43 +00:00
subsystem.c nvmf: don't always update discovery log when adding hosts 2021-12-10 17:32:18 +00:00
tcp.c spelling: lib 2021-12-03 08:12:55 +00:00
transport.c nvmf: fix check for buffs num in nvmf_request_get_buffers 2021-11-10 20:25:35 +00:00
transport.h nvmf: Allow nvmf_transport_qpair_fini to complete asynchronously. 2020-11-18 11:28:02 +00:00
vfio_user.c nvmf/vfio-user: Fix doorbell polling not working on some ARM platform 2021-12-14 09:09:09 +00:00