Spdk/include/spdk
Mateusz Kozlowski 1897943987 env: define minimum alignment for dma-able memory
DPDK defines the minimum alignment as "suitable for any
kind of variable (in the same manner as malloc())", but
internally the alignment is always rounded up to the
cache line size, even if the requested alignment is 0.

We would like to start relying on this behavior in FTL,
where lba maps are allocated using DMA-able memory and
are constantly looked up or modified by different threads.
By having the lba maps unaligned, we risk having those
threads pollute each other's cache lines.

Rather than enforcing this memory alignment in FTL, we
do it in spdk_*malloc directly. In general it makes
sense to have DMA-able memory always cache-line-size
aligned for the same reason as above.

Change-Id: Ib6edda4a7bf3f4952eb1875a4e1753be96bed642
Signed-off-by: Mateusz Kozlowski <mateusz.kozlowski@intel.com>
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/460329
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2019-07-23 04:00:05 +00:00
..
assert.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
barrier.h barrier: cleanup the file 2019-03-15 19:32:55 +00:00
base64.h util/base64: add base64 lib and unit tests 2018-07-19 00:50:54 +00:00
bdev_module.h bdev: All bdevs now have a UUID. 2019-07-10 01:59:05 +00:00
bdev.h bdev: All bdevs now have a UUID. 2019-07-10 01:59:05 +00:00
bit_array.h util: added bit array bitmask load, store and clear 2018-12-14 15:34:53 +00:00
blob_bdev.h bdev: rename spdk_bdev_module_if -> spdk_bdev_module 2018-03-13 00:55:12 -04:00
blob.h lvol: add option to change clear method for lvol store creation 2019-02-28 20:50:27 +00:00
blobfs.h blobfs: make internal asynchronous APIs as public APIs 2019-06-28 09:50:50 +00:00
conf.h include/conf: add comments for public APIs 2018-02-26 11:59:09 -05:00
copy_engine.h include/copy_engine.h: add comments for callback functions 2018-05-28 01:45:03 +00: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: Move architecture detection to crc32c.c 2019-02-04 19:14:22 +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
endian.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
env_dpdk.h env: add spdk_env_fini() 2019-03-20 21:05:33 +00:00
env.h env: define minimum alignment for dma-able memory 2019-07-23 04:00:05 +00:00
event.h log: passing user-defined log 2019-06-18 03:56:50 +00: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: wrap header in extern "C" guards 2019-07-15 03:44:08 +00:00
gpt_spec.h bdev/gpt: dump partition name 2017-07-12 18:12:52 -04:00
histogram_data.h histograms: add function to merge histograms 2018-11-15 23:03:26 +00:00
io_channel.h thread: Rename io_channel.h to thread.h 2018-06-12 15:24:07 +00:00
ioat_spec.h ioat_spec: fix gcc9 warning 2019-06-17 14:09:03 +00:00
ioat.h ioat: add APIs to only build descriptors 2019-02-18 07:44:17 +00:00
iscsi_spec.h iscsi: fix layout of logout request reason field 2017-09-22 16:11:11 -04:00
json.h json: add utilities function enabling itaration over JSON object 2018-10-18 16:07:37 +00:00
jsonrpc.h jsonrpc: always allocate response for request 2019-07-19 20:56:54 +00:00
likely.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
log.h log: passing user-defined log 2019-06-18 03:56:50 +00:00
lvol.h lvol: ensure enum for lvol clear method is the same as blobstore 2019-02-28 20:50:27 +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: Remove unused spdk_event forward declaration 2019-04-23 20:22:55 +00:00
net.h net: make the net initialization in a correct way 2018-12-20 01:37:50 +00:00
notify.h lib/notify: rename spdk_notify_get_events to spdk_notify_foreach_event 2019-05-07 06:11:27 +00: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 ocssd: add chunk notification log struct 2018-09-27 01:30:45 +00:00
nvme_spec.h identify: Fix gcc9 unaligned warning. 2019-06-24 09:45:08 +00:00
nvme.h nvme: add functions to pretty-print commands and completions 2019-07-15 07:47:03 +00:00
nvmf_fc_spec.h nvmf: FC-NVMe spec. header file 2018-07-06 22:49:20 +00:00
nvmf_spec.h nvme: Add the NVMe over fabrics TCP/IP transport support 2018-11-19 20:36:05 +00:00
nvmf.h nvmf/tcp: Add a feature to allow set the sock priority of the connection. 2019-07-19 06:30:19 +00:00
opal_spec.h opal: Add multiuser support 2019-07-22 04:32:59 +00:00
opal.h opal: Add multiuser support 2019-07-22 04:32:59 +00:00
pci_ids.h pci_ids: add virtio-vhost-user device id 2019-06-03 20:11:22 +00:00
queue_extras.h scripts/check_format: check for spaces before tabs 2018-03-05 11:09:13 -05:00
queue.h check_format: Verify #include syntax 2019-01-29 00:12:07 +00:00
reduce.h lib/reduce: add debug helper function 2019-06-18 04:06:41 +00:00
rpc.h rpc: add SPDK_RPC_REGISTER_ALIAS_DEPRECATED 2019-05-07 00:14:53 +00:00
scsi_spec.h scsi: fix SCSI reservation typos 2019-05-30 21:42:36 +00:00
scsi.h scsi: Add data offset to DIF context separately from start block address 2019-06-11 18:53:58 +00:00
sock.h sock: Add the socket priority setting function. 2019-07-18 04:09:37 +00:00
stdinc.h ftl: Added unit tests for FTL library 2019-01-22 23:22:16 +00:00
string.h string: spdk_strtol to delegate additional error checking 2019-01-29 00:10:57 +00:00
thread.h thread: Export spdk_set_thread() 2019-07-15 01:34:41 +00:00
trace.h trace: shorten max name from 44 to 24 characters 2019-05-02 08:41:56 +00:00
util.h rdma: Use optimal ceiling integer division 2019-07-22 09:22:11 +00:00
uuid.h util/uuid: add a new uuid copy API. 2018-12-06 22:25:09 +00:00
version.h version: 19.07 pre 2019-04-30 21:30:18 +00:00
vhost.h vhost: add completion callback to lib init 2019-05-02 17:06:34 +00:00
vmd.h lib/vmd: Replace spdk_vmd_probe(bdf) with spdk_vmd_init() 2019-06-11 04:35:31 +00:00