Spdk/include/spdk
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_engine.h lib/accel: remove batching from the framework and plug-in modules 2022-06-30 13:32:29 -04:00
assert.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
barrier.h nvmf/vfio-user: Fix doorbell polling not working on some ARM platform 2022-06-30 13:32:29 -04:00
base64.h util/base64: Extend b64 decode to calculate exact len 2020-02-03 11:39:49 +00:00
bdev_module.h spelling: include 2022-06-30 13:32:28 -04:00
bdev_zone.h bdev/zone: add support for get zone id 2022-06-30 13:32:27 -04:00
bdev.h spelling: include 2022-06-30 13:32:28 -04:00
bit_array.h util: added bit array bitmask load, store and clear 2018-12-14 15:34:53 +00:00
bit_pool.h util: add spdk_bit_pool 2020-09-15 07:12:44 +00:00
blob_bdev.h module/blob: remove deprecated spdk_bdev_create_bs_dev/from_desc() 2021-03-05 08:33:45 +00:00
blob.h spelling: include 2022-06-30 13:32:28 -04:00
blobfs_bdev.h blobfs/fuse: put FUSE code in module blobfs_bdev 2019-10-15 16:25:09 +00:00
blobfs.h doc: do not document void returns 2022-06-30 13:32:28 -04:00
conf.h spelling: include 2022-06-30 13:32:28 -04:00
cpuset.h cpuset: Expose internal of struct spdk_cpuset in header file 2019-07-04 00:30:22 +00:00
crc16.h util/crc16: Add spdk_crc16_t10dif_copy to use in read strip and write insert 2018-12-20 17:52:29 +00:00
crc32.h util/crc32c: Add spdk_crc32c_iov_update. 2021-06-02 11:37:17 +00:00
dif.h dif: Add spdk_dix_remap_ref_tag to remap ref. tag for separate metadata payload 2019-07-11 11:14:22 +00:00
dma.h spelling: include 2022-06-30 13:32:28 -04:00
endian.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
env_dpdk.h spelling: include 2022-06-30 13:32:28 -04:00
env.h env: remove spdk_pci_get_[first|next]_device 2022-06-30 13:32:29 -04:00
event.h spelling: include 2022-06-30 13:32:28 -04:00
fd_group.h spelling: include 2022-06-30 13:32:28 -04:00
fd.h include/fd.h: add comments for pubclic APIs 2018-01-04 12:12:10 -05:00
file.h util: add a new file operation API 2019-05-15 18:54:27 +00:00
ftl.h lib/ftl: Create l2p on l2p_path file if set in config 2020-03-06 10:28:21 +00:00
gpt_spec.h bdev/gpt: dump partition name 2017-07-12 18:12:52 -04:00
histogram_data.h histogram: add handling for datapoint == 0 2021-05-19 07:50:28 +00:00
idxd_spec.h idxd: move header file to include dir 2022-06-30 13:32:25 -04:00
idxd.h spelling: include 2022-06-30 13:32:28 -04:00
init.h event: Move json config loading to init 2021-05-26 09:13:34 +00:00
ioat_spec.h ioat_spec: fix gcc9 warning 2019-06-17 14:09:03 +00:00
ioat.h lib/ioat: add mew API to get the max # of descriptors supported 2020-07-23 22:26:39 +00:00
iscsi_spec.h spelling: include 2022-06-30 13:32:28 -04:00
json.h json: add spdk_json_write_bytearray 2022-06-30 13:32:29 -04:00
jsonrpc.h spelling: include 2022-06-30 13:32:28 -04:00
likely.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
log.h log: add an API to return syslog level based on SPDK's log level 2021-08-12 12:57:39 +00:00
lvol.h lvol: ensure enum for lvol clear method is the same as blobstore 2019-02-28 20:50:27 +00:00
memory.h memory.h: move to public headers 2020-03-19 08:50:45 +00:00
mmio.h mmio: add functions for 1 and 2 byte I/O accesses 2017-10-13 10:46:00 -04:00
nbd.h nbd: Use async manner to stop nbd device. 2020-12-28 14:05:15 +00:00
notify.h spelling: include 2022-06-30 13:32:28 -04:00
nvme_intel.h nvme: pad struct spdk_nvme_intel_marketing_description_page 2019-06-05 02:46:50 +00:00
nvme_ocssd_spec.h ocssd: add chunk notification log struct 2018-09-27 01:30:45 +00:00
nvme_ocssd.h spelling: include 2022-06-30 13:32:28 -04:00
nvme_spec.h spelling: include 2022-06-30 13:32:28 -04:00
nvme_zns.h lib/nvme: NVMe ZNS - Zone Descriptor Extension support 2022-06-30 13:32:24 -04:00
nvme.h nvme: Add three APIs for disconnect, start re-enable, and poll re-enable ctrlr 2022-06-30 13:32:29 -04:00
nvmf_cmd.h spelling: include 2022-06-30 13:32:28 -04:00
nvmf_fc_spec.h spelling: include 2022-06-30 13:32:28 -04:00
nvmf_spec.h spelling: include 2022-06-30 13:32:28 -04:00
nvmf_transport.h nvmf/ctrlr: let transport can set VID SSVID and IEEE values 2022-06-30 13:32:28 -04:00
nvmf.h doc: do not document void returns 2022-06-30 13:32:28 -04:00
opal_spec.h spelling: include 2022-06-30 13:32:28 -04:00
opal.h lib/opal: remove deprecated spdk_opal_supported() 2021-03-18 14:43:08 +00:00
pci_ids.h nvmf/vfio-user: define SPDK_PCI_VID_NUTANIX macro and use it in vfio-user 2022-06-30 13:32:28 -04:00
pipe.h pipe: Add a utility for buffering data from sockets 2019-11-20 09:35:32 +00:00
queue_extras.h include: remove util.h include from queue_extras.h 2021-04-14 07:25:21 +00:00
queue.h Include: Test for __linux__ 2020-11-19 09:53:21 +00:00
reduce.h lib/reduce: change and move the max IOVEC define for reduce 2019-07-29 04:36:59 +00:00
rpc.h Initial changes. 2022-02-08 15:51:30 -05:00
scheduler.h spelling: include 2022-06-30 13:32:28 -04:00
scsi_spec.h scsi: fix SCSI reservation typos 2019-05-30 21:42:36 +00:00
scsi.h doc: match spdk_scsi_dev_get_next_lun argument name 2022-06-30 13:32:28 -04:00
sock.h sock: Deprecate enable_zerocopy_send in sock_impl_set_options RPC 2021-04-27 08:13:32 +00:00
stdinc.h util: add zipf random number generator 2021-05-17 11:29:52 +00:00
string.h string: spdk_strtol to delegate additional error checking 2019-01-29 00:10:57 +00:00
thread.h thread: improve api description 2022-06-30 13:32:28 -04:00
trace_parser.h spelling: include 2022-06-30 13:32:28 -04:00
trace.h trace: enable adding relations between traces 2022-06-30 13:32:26 -04:00
tree.h util: rename RB_ROOT into _RB_ROOT 2021-06-04 22:46:40 +00:00
util.h spelling: include 2022-06-30 13:32:28 -04:00
uuid.h util/uuid: add a new uuid copy API. 2018-12-06 22:25:09 +00:00
version.h version: SPDK 22.01 pre 2022-06-30 13:32:27 -04:00
vfio_user_pci.h NVMe/vfio-user: add initial version vfio-user transport to NVMe driver 2021-01-21 05:00:18 +00:00
vfio_user_spec.h libvfio-user: update submodule 2021-06-22 23:42:02 +00:00
vhost.h spelling: include 2022-06-30 13:32:28 -04:00
vmd.h lib/vmd: detach devices during shutdown 2020-02-04 16:50:25 +00:00
zipf.h util: add zipf random number generator 2021-05-17 11:29:52 +00:00