Spdk/lib
Rui Chang 2d53d32872 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>
2022-06-30 13:32:29 -04:00
..
accel lib/accel: remove batching from the framework and plug-in modules 2022-06-30 13:32:29 -04:00
bdev bdev: Fail nvme passthru command if not supported by bdev 2022-06-30 13:32:28 -04:00
blob spelling: lib 2022-06-30 13:32:28 -04:00
blobfs trace: move all trace definitions to a separate file 2022-06-30 13:32:26 -04:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
dma dma: Add infrstructure for push operation 2022-06-30 13:32:26 -04:00
env_dpdk env: remove spdk_pci_get_[first|next]_device 2022-06-30 13:32:29 -04:00
env_ocf spelling: lib 2022-06-30 13:32:28 -04:00
event spelling: lib 2022-06-30 13:32:28 -04:00
ftl spelling: lib 2022-06-30 13:32:28 -04:00
idxd spelling: lib 2022-06-30 13:32:28 -04:00
init rpc: add method for listing PCI devices 2022-06-30 13:32:29 -04:00
ioat ioat: fix potential double free problem in ioat_channel_start() 2021-06-16 09:00:37 +00:00
iscsi spelling: lib 2022-06-30 13:32:28 -04:00
json json: add spdk_json_write_bytearray 2022-06-30 13:32:29 -04:00
jsonrpc spelling: lib 2022-06-30 13:32:28 -04:00
log log: add an API to return syslog level based on SPDK's log level 2021-08-12 12:57:39 +00:00
lvol spelling: lib 2022-06-30 13:32:28 -04:00
nbd spelling: lib 2022-06-30 13:32:28 -04:00
notify so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme nvme: use transport internal queue state when deleting unfinished IO queue pair 2022-06-30 13:32:29 -04:00
nvmf nvmf/vfio-user: Fix doorbell polling not working on some ARM platform 2022-06-30 13:32:29 -04:00
rdma rdma: Set REMOTE_WRITE permission for iWARP on target side 2022-06-30 13:32:28 -04:00
reduce spelling: lib 2022-06-30 13:32:28 -04:00
rocksdb rocksdb: fix thread name typo 2021-09-03 08:08:20 +00:00
rpc Initial changes. 2022-02-08 15:51:30 -05:00
scsi spelling: lib 2022-06-30 13:32:28 -04:00
sock lib/sock: create common lookup for spdk_sock_group_impl 2022-06-30 13:32:28 -04:00
thread spelling: lib 2022-06-30 13:32:28 -04:00
trace trace: enable adding relations between traces 2022-06-30 13:32:26 -04:00
trace_parser spelling: lib 2022-06-30 13:32:28 -04:00
ut_mock so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
util spelling: lib 2022-06-30 13:32:28 -04:00
vfio_user spelling: lib 2022-06-30 13:32:28 -04:00
vhost spelling: lib 2022-06-30 13:32:28 -04:00
virtio spelling: lib 2022-06-30 13:32:28 -04:00
vmd spelling: lib 2022-06-30 13:32:28 -04:00
Makefile lib/trace_parser: add trace_parser library stubs 2022-06-30 13:32:25 -04:00