@@ -1232,7 +1232,7 @@ test_failing_mbuf_sanity_check(struct rte_mempool *pktmbuf_pool)
return -1;
}
- if (RTE_IOVA_AS_PA) {
+ if (RTE_IOVA_IN_MBUF) {
badbuf = *buf;
rte_mbuf_iova_set(&badbuf, 0);
if (verify_mbuf_check_panics(&badbuf)) {
@@ -319,7 +319,7 @@ soc_cn10k = {
['RTE_MAX_LCORE', 24],
['RTE_MAX_NUMA_NODES', 1],
['RTE_MEMPOOL_ALIGN', 128],
- ['RTE_IOVA_AS_PA', 0]
+ ['RTE_IOVA_IN_MBUF', 0]
],
'part_number': '0xd49',
'extra_march_features': ['crypto'],
@@ -412,7 +412,7 @@ soc_cn9k = {
'part_number': '0xb2',
'numa': false,
'flags': [
- ['RTE_IOVA_AS_PA', 0]
+ ['RTE_IOVA_IN_MBUF', 0]
]
}
@@ -316,7 +316,7 @@ endif
if get_option('mbuf_refcnt_atomic')
dpdk_conf.set('RTE_MBUF_REFCNT_ATOMIC', true)
endif
-dpdk_conf.set10('RTE_IOVA_AS_PA', get_option('enable_iova_as_pa'))
+dpdk_conf.set10('RTE_IOVA_IN_MBUF', get_option('enable_iova_as_pa'))
compile_time_cpuflags = []
subdir(arch_subdir)
@@ -504,7 +504,7 @@ ABI Changes
``rte-worker-<lcore_id>`` so that DPDK can accommodate lcores higher than 99.
* mbuf: Replaced ``buf_iova`` field with ``next`` field and added a new field
- ``dynfield2`` at its place in second cacheline if ``RTE_IOVA_AS_PA`` is 0.
+ ``dynfield2`` at its place in second cacheline if ``RTE_IOVA_IN_MBUF`` is 0.
* ethdev: enum ``RTE_FLOW_ITEM`` was affected by deprecation procedure.
@@ -87,4 +87,4 @@ sources += files('cnxk_telemetry_bphy.c',
)
deps += ['bus_pci', 'net', 'telemetry']
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -6,4 +6,4 @@ sources = files('iavf_adminq.c', 'iavf_common.c', 'iavf_impl.c')
if cc.has_argument('-Wno-pointer-to-int-cast')
cflags += '-Wno-pointer-to-int-cast'
endif
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -17,4 +17,4 @@ endif
ext_deps += dep
deps += ['bus_vdev']
sources = files('rte_armv8_pmd.c', 'rte_armv8_pmd_ops.c')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -32,4 +32,4 @@ else
cflags += [ '-ULA_IPSEC_DEBUG','-UCNXK_CRYPTODEV_DEBUG' ]
endif
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -41,4 +41,4 @@ sources = files(
'pmd_zuc.c',
)
deps += ['bus_vdev', 'net', 'security']
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -9,4 +9,4 @@ endif
deps += 'bus_vdev'
sources = files('null_crypto_pmd.c', 'null_crypto_pmd_ops.c')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -15,4 +15,4 @@ endif
deps += 'bus_vdev'
sources = files('rte_openssl_pmd.c', 'rte_openssl_pmd_ops.c')
ext_deps += dep
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -3,4 +3,4 @@
deps += ['bus_pci', 'common_cnxk', 'dmadev']
sources = files('cnxk_dmadev.c')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -5,4 +5,4 @@ deps += ['dmadev', 'kvargs', 'ring', 'bus_vdev']
sources = files(
'skeleton_dmadev.c',
)
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -479,4 +479,4 @@ foreach flag: extra_flags
endforeach
deps += ['bus_pci', 'common_cnxk', 'net_cnxk', 'crypto_cnxk']
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -6,4 +6,4 @@ if cc.has_argument('-Wno-format-nonliteral')
cflags += '-Wno-format-nonliteral'
endif
sources = files('dsw_evdev.c', 'dsw_event.c', 'dsw_xstats.c')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -9,4 +9,4 @@ sources = files(
'opdl_test.c',
)
deps += ['bus_vdev']
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -3,4 +3,4 @@
sources = files('skeleton_eventdev.c')
deps += ['bus_pci', 'bus_vdev']
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -9,4 +9,4 @@ sources = files(
'sw_evdev.c',
)
deps += ['hash', 'bus_vdev']
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -12,4 +12,4 @@ if is_windows
endif
sources = files('rte_mempool_bucket.c')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -17,4 +17,4 @@ sources = files(
)
deps += ['eal', 'mbuf', 'kvargs', 'bus_pci', 'common_cnxk', 'mempool']
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -2,4 +2,4 @@
# Copyright(c) 2017 Intel Corporation
sources = files('rte_mempool_ring.c')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -4,4 +4,4 @@
sources = files('rte_mempool_stack.c')
deps += ['stack']
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -109,7 +109,7 @@ foreach subpath:subdirs
ext_deps = []
pkgconfig_extra_libs = []
testpmd_sources = []
- pmd_supports_disable_iova_as_pa = false
+ require_iova_in_mbuf = true
if not enable_drivers.contains(drv_path)
build = false
@@ -127,9 +127,9 @@ foreach subpath:subdirs
# pull in driver directory which should update all the local variables
subdir(drv_path)
- if dpdk_conf.get('RTE_IOVA_AS_PA') == 0 and not pmd_supports_disable_iova_as_pa and not always_enable.contains(drv_path)
+ if not get_option('enable_iova_as_pa') and require_iova_in_mbuf and not always_enable.contains(drv_path)
build = false
- reason = 'driver does not support disabling IOVA as PA mode'
+ reason = 'requires IOVA in mbuf'
endif
# get dependency objs from strings
@@ -6,4 +6,4 @@ if not is_linux
reason = 'only supported on Linux'
endif
sources = files('rte_eth_af_packet.c')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -71,4 +71,4 @@ if build
endif
endif
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -22,4 +22,4 @@ deps += 'sched' # needed for rte_bitmap.h
deps += ['ip_frag']
headers = files('rte_eth_bond.h', 'rte_eth_bond_8023ad.h')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -195,4 +195,4 @@ foreach flag: extra_flags
endforeach
headers = files('rte_pmd_cnxk.h')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -27,4 +27,4 @@ sources = files(
'failsafe_ops.c',
'failsafe_rxtx.c',
)
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -13,9 +13,7 @@ if arch_subdir != 'x86' and arch_subdir != 'arm' or not dpdk_conf.get('RTE_ARCH_
subdir_done()
endif
-if dpdk_conf.get('RTE_IOVA_AS_PA') == 0
- build = false
- reason = 'driver does not support disabling IOVA as PA mode'
+if not get_option('enable_iova_as_pa')
subdir_done()
endif
@@ -54,7 +54,7 @@ ice_rxq_rearm_common(struct ice_rx_queue *rxq, __rte_unused bool avx512)
mb0 = rxep[0].mbuf;
mb1 = rxep[1].mbuf;
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
/* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */
RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) !=
offsetof(struct rte_mbuf, buf_addr) + 8);
@@ -62,7 +62,7 @@ ice_rxq_rearm_common(struct ice_rx_queue *rxq, __rte_unused bool avx512)
vaddr0 = _mm_loadu_si128((__m128i *)&mb0->buf_addr);
vaddr1 = _mm_loadu_si128((__m128i *)&mb1->buf_addr);
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
/* convert pa to dma_addr hdr/data */
dma_addr0 = _mm_unpackhi_epi64(vaddr0, vaddr0);
dma_addr1 = _mm_unpackhi_epi64(vaddr1, vaddr1);
@@ -105,7 +105,7 @@ ice_rxq_rearm_common(struct ice_rx_queue *rxq, __rte_unused bool avx512)
mb6 = rxep[6].mbuf;
mb7 = rxep[7].mbuf;
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
/* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */
RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) !=
offsetof(struct rte_mbuf, buf_addr) + 8);
@@ -142,7 +142,7 @@ ice_rxq_rearm_common(struct ice_rx_queue *rxq, __rte_unused bool avx512)
_mm512_inserti64x4(_mm512_castsi256_si512(vaddr4_5),
vaddr6_7, 1);
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
/* convert pa to dma_addr hdr/data */
dma_addr0_3 = _mm512_unpackhi_epi64(vaddr0_3, vaddr0_3);
dma_addr4_7 = _mm512_unpackhi_epi64(vaddr4_7, vaddr4_7);
@@ -177,7 +177,7 @@ ice_rxq_rearm_common(struct ice_rx_queue *rxq, __rte_unused bool avx512)
mb2 = rxep[2].mbuf;
mb3 = rxep[3].mbuf;
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
/* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */
RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) !=
offsetof(struct rte_mbuf, buf_addr) + 8);
@@ -198,7 +198,7 @@ ice_rxq_rearm_common(struct ice_rx_queue *rxq, __rte_unused bool avx512)
_mm256_inserti128_si256(_mm256_castsi128_si256(vaddr2),
vaddr3, 1);
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
/* convert pa to dma_addr hdr/data */
dma_addr0_1 = _mm256_unpackhi_epi64(vaddr0_1, vaddr0_1);
dma_addr2_3 = _mm256_unpackhi_epi64(vaddr2_3, vaddr2_3);
@@ -68,7 +68,7 @@ ice_rxq_rearm(struct ice_rx_queue *rxq)
mb0 = rxep[0].mbuf;
mb1 = rxep[1].mbuf;
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
/* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */
RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) !=
offsetof(struct rte_mbuf, buf_addr) + 8);
@@ -76,7 +76,7 @@ ice_rxq_rearm(struct ice_rx_queue *rxq)
vaddr0 = _mm_loadu_si128((__m128i *)&mb0->buf_addr);
vaddr1 = _mm_loadu_si128((__m128i *)&mb1->buf_addr);
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
/* convert pa to dma_addr hdr/data */
dma_addr0 = _mm_unpackhi_epi64(vaddr0, vaddr0);
dma_addr1 = _mm_unpackhi_epi64(vaddr1, vaddr1);
@@ -78,4 +78,4 @@ sources += files(
'ice_dcf_parent.c',
'ice_dcf_sched.c',
)
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -12,4 +12,4 @@ sources = files(
)
deps += ['hash']
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -8,4 +8,4 @@ if is_windows
endif
sources = files('rte_eth_null.c')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -15,4 +15,4 @@ ext_deps += pcap_dep
if is_windows
ext_deps += cc.find_library('iphlpapi', required: true)
endif
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -9,4 +9,4 @@ endif
sources = files('rte_eth_ring.c')
headers = files('rte_eth_ring.h')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -35,4 +35,4 @@ foreach arg:args
config.set(arg[0], cc.has_header_symbol(arg[1], arg[2]))
endforeach
configure_file(output : 'tap_autoconf.h', configuration : config)
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -10,4 +10,4 @@ sources = files(
'cnxk_bphy_irq.c',
)
headers = files('rte_pmd_bphy.h')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -9,4 +9,4 @@ sources = files(
'cnxk_gpio_selftest.c',
)
headers = files('rte_pmd_cnxk_gpio.h')
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -6,4 +6,4 @@ sources = files(
'skeleton_rawdev.c',
'skeleton_rawdev_test.c',
)
-pmd_supports_disable_iova_as_pa = true
+require_iova_in_mbuf = false
@@ -1134,7 +1134,7 @@ rte_eal_init(int argc, char **argv)
return -1;
}
- if (rte_eal_iova_mode() == RTE_IOVA_PA && !RTE_IOVA_AS_PA) {
+ if (rte_eal_iova_mode() == RTE_IOVA_PA && !RTE_IOVA_IN_MBUF) {
rte_eal_init_alert("Cannot use IOVA as 'PA' as it is disabled during build");
rte_errno = EINVAL;
return -1;
@@ -388,7 +388,7 @@ int rte_mbuf_check(const struct rte_mbuf *m, int is_header,
*reason = "bad mbuf pool";
return -1;
}
- if (RTE_IOVA_AS_PA && rte_mbuf_iova_get(m) == 0) {
+ if (RTE_IOVA_IN_MBUF && rte_mbuf_iova_get(m) == 0) {
*reason = "bad IO addr";
return -1;
}
@@ -146,7 +146,7 @@ static inline uint16_t rte_pktmbuf_priv_size(struct rte_mempool *mp);
static inline rte_iova_t
rte_mbuf_iova_get(const struct rte_mbuf *m)
{
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
return m->buf_iova;
#else
return (rte_iova_t)m->buf_addr;
@@ -164,7 +164,7 @@ rte_mbuf_iova_get(const struct rte_mbuf *m)
static inline void
rte_mbuf_iova_set(struct rte_mbuf *m, rte_iova_t iova)
{
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
m->buf_iova = iova;
#else
RTE_SET_USED(m);
@@ -466,11 +466,11 @@ struct rte_mbuf {
RTE_MARKER cacheline0;
void *buf_addr; /**< Virtual address of segment buffer. */
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
/**
* Physical address of segment buffer.
* This field is undefined if the build is configured to use only
- * virtual address as IOVA (i.e. RTE_IOVA_AS_PA is 0).
+ * virtual address as IOVA (i.e. RTE_IOVA_IN_MBUF is 0).
* Force alignment to 8-bytes, so as to ensure we have the exact
* same mbuf cacheline0 layout for 32-bit and 64-bit. This makes
* working on vector drivers easier.
@@ -599,7 +599,7 @@ struct rte_mbuf {
/* second cache line - fields only used in slow path or on TX */
RTE_MARKER cacheline1 __rte_cache_min_aligned;
-#if RTE_IOVA_AS_PA
+#if RTE_IOVA_IN_MBUF
/**
* Next segment of scattered packet. Must be NULL in the last
* segment or in case of non-segmented packet.
@@ -608,7 +608,7 @@ struct rte_mbuf {
#else
/**
* Reserved for dynamic fields
- * when the next pointer is in first cache line (i.e. RTE_IOVA_AS_PA is 0).
+ * when the next pointer is in first cache line (i.e. RTE_IOVA_IN_MBUF is 0).
*/
uint64_t dynfield2;
#endif
@@ -128,7 +128,7 @@ init_shared_mem(void)
*/
memset(shm, 0, sizeof(*shm));
mark_free(dynfield1);
-#if !RTE_IOVA_AS_PA
+#if !RTE_IOVA_IN_MBUF
mark_free(dynfield2);
#endif
@@ -93,7 +93,7 @@ dpdk_libs_deprecated += [
disabled_libs = []
opt_disabled_libs = run_command(list_dir_globs, get_option('disable_libs'),
check: true).stdout().split()
-if dpdk_conf.get('RTE_IOVA_AS_PA') == 0
+if not get_option('enable_iova_as_pa')
opt_disabled_libs += ['kni']
endif
foreach l:opt_disabled_libs
@@ -41,7 +41,7 @@ option('max_lcores', type: 'string', value: 'default', description:
option('max_numa_nodes', type: 'string', value: 'default', description:
'Set the highest NUMA node supported by EAL; "default" is different per-arch, "detect" detects the highest NUMA node on the build machine.')
option('enable_iova_as_pa', type: 'boolean', value: true, description:
- 'Support for IOVA as physical address. Disabling removes the buf_iova field of mbuf.')
+ 'Support the use of physical addresses for IO addresses, such as used by UIO or VFIO in no-IOMMU mode. When disabled, DPDK can only run with IOMMU support for address mappings, but will have more space available in the mbuf structure.')
option('mbuf_refcnt_atomic', type: 'boolean', value: true, description:
'Atomically access the mbuf refcnt.')
option('platform', type: 'string', value: 'native', description: