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> |
||
---|---|---|
.. | ||
linux | ||
spdk | ||
spdk_internal | ||
Makefile |