This v4 is a big rework to complete the patches sent by Santosh. The core components for memory handling (memseg, malloc, memzone, mempool, mbuf) are almost fully updated for IOVA awareness. It will ease maintenance and upcoming reworks; that's why we should push it in 17.11 LTS.
The most important changes in this revision v4 are: - No API break: everything is aliased to keep old names during next releases. It will ease apps migration, waiting for major ABI break. - Rename type from iova_addr_t to rte_iova_t. - Convert memzone field. - Convert mempool fields. - Convert mbuf address helpers. - Reword doxygen comments and variable names in functions. In PMDs, only the address type is renamed. All PMDs will require some attention to transition to IOVA scheme. KNI and NXP bus drivers are not reworded. Santosh Shukla (5): mem: rename segment address from physical to IOVA malloc: use pointer diff macro in IOVA mapping mbuf: rename physical address to IOVA cryptodev: rename physical address type to IOVA drivers/net: rename physical address type to IOVA Thomas Monjalon (10): mem: hide physical address error in VA mode mem: introduce IOVA type mem: rename address mapping function to IOVA malloc: rename address mapping function to IOVA memzone: rename address from physical to IOVA mempool: rename addresses from physical to IOVA mempool: rename address mapping function to IOVA mempool: rename populate functions to IOVA mbuf: rename data address helpers to IOVA doc: add IOVA aware API changes in release notes app/test-crypto-perf/cperf_ops.c | 6 +- app/test-crypto-perf/cperf_test_common.c | 6 +- app/test-crypto-perf/cperf_test_vector_parsing.c | 4 +- app/test-crypto-perf/cperf_test_vectors.c | 6 +- app/test-crypto-perf/cperf_test_vectors.h | 4 +- doc/guides/prog_guide/cryptodev_lib.rst | 6 +- doc/guides/prog_guide/img/mbuf1.svg | 2 +- doc/guides/rel_notes/deprecation.rst | 7 -- doc/guides/rel_notes/release_17_11.rst | 17 ++++ drivers/bus/dpaa/base/qbman/qman.c | 2 +- drivers/bus/dpaa/base/qbman/qman.h | 2 +- drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 2 +- drivers/crypto/dpaa_sec/dpaa_sec.c | 28 +++--- drivers/crypto/mrvl/rte_mrvl_pmd.c | 4 +- drivers/crypto/qat/qat_adf/qat_algs.h | 6 +- drivers/crypto/qat/qat_crypto.c | 22 ++--- drivers/crypto/qat/qat_crypto.h | 2 +- drivers/crypto/qat/qat_qp.c | 8 +- drivers/mempool/dpaa/dpaa_mempool.c | 4 +- drivers/mempool/dpaa2/dpaa2_hw_mempool.c | 4 +- drivers/mempool/dpaa2/dpaa2_hw_mempool.h | 2 +- drivers/mempool/octeontx/octeontx_fpavf.c | 4 +- drivers/mempool/octeontx/rte_mempool_octeontx.c | 2 +- drivers/net/ark/ark_ddm.c | 2 +- drivers/net/ark/ark_ddm.h | 4 +- drivers/net/ark/ark_ethdev_rx.c | 24 ++--- drivers/net/ark/ark_ethdev_tx.c | 8 +- drivers/net/ark/ark_mpu.c | 2 +- drivers/net/ark/ark_mpu.h | 4 +- drivers/net/ark/ark_udm.c | 2 +- drivers/net/ark/ark_udm.h | 4 +- drivers/net/avp/avp_ethdev.c | 2 +- drivers/net/avp/rte_avp_common.h | 20 ++-- drivers/net/bnx2x/bnx2x.c | 44 ++++----- drivers/net/bnx2x/bnx2x.h | 22 ++--- drivers/net/bnx2x/bnx2x_rxtx.c | 14 +-- drivers/net/bnx2x/bnx2x_stats.c | 2 +- drivers/net/bnx2x/bnx2x_vfpf.c | 2 +- drivers/net/bnx2x/ecore_sp.h | 2 +- drivers/net/bnxt/bnxt.h | 10 +- drivers/net/bnxt/bnxt_cpr.h | 4 +- drivers/net/bnxt/bnxt_ethdev.c | 14 +-- drivers/net/bnxt/bnxt_hwrm.c | 26 +++--- drivers/net/bnxt/bnxt_ring.c | 10 +- drivers/net/bnxt/bnxt_ring.h | 4 +- drivers/net/bnxt/bnxt_rxr.h | 4 +- drivers/net/bnxt/bnxt_txr.h | 2 +- drivers/net/bnxt/bnxt_vnic.c | 8 +- drivers/net/bnxt/bnxt_vnic.h | 6 +- drivers/net/cxgbe/sge.c | 6 +- drivers/net/dpaa/dpaa_rxtx.c | 6 +- drivers/net/e1000/em_rxtx.c | 12 +-- drivers/net/e1000/igb_rxtx.c | 12 +-- drivers/net/ena/base/ena_plat_dpdk.h | 4 +- drivers/net/ena/ena_ethdev.c | 6 +- drivers/net/enic/enic_main.c | 8 +- drivers/net/enic/enic_rxtx.c | 6 +- drivers/net/fm10k/fm10k.h | 4 +- drivers/net/fm10k/fm10k_ethdev.c | 4 +- drivers/net/fm10k/fm10k_rxtx_vec.c | 4 +- drivers/net/i40e/i40e_ethdev.c | 2 +- drivers/net/i40e/i40e_fdir.c | 2 +- drivers/net/i40e/i40e_rxtx.c | 22 ++--- drivers/net/i40e/i40e_rxtx_vec_altivec.c | 4 +- drivers/net/i40e/i40e_rxtx_vec_neon.c | 6 +- drivers/net/i40e/i40e_rxtx_vec_sse.c | 6 +- drivers/net/ixgbe/ixgbe_rxtx.c | 18 ++-- drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 6 +- drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c | 6 +- drivers/net/liquidio/lio_rxtx.c | 20 ++-- drivers/net/liquidio/lio_rxtx.h | 6 +- drivers/net/mrvl/mrvl_ethdev.c | 8 +- drivers/net/nfp/nfp_net.c | 8 +- drivers/net/octeontx/base/octeontx_pkovf.c | 4 +- drivers/net/octeontx/octeontx_rxtx.c | 2 +- drivers/net/qede/base/bcm_osal.c | 10 +- drivers/net/qede/base/bcm_osal.h | 2 +- drivers/net/qede/qede_fdir.c | 2 +- drivers/net/qede/qede_rxtx.c | 16 ++-- drivers/net/sfc/efsys.h | 2 +- drivers/net/sfc/sfc.c | 4 +- drivers/net/sfc/sfc_ef10_rx.c | 4 +- drivers/net/sfc/sfc_ef10_tx.c | 6 +- drivers/net/sfc/sfc_rx.c | 2 +- drivers/net/sfc/sfc_tso.c | 4 +- drivers/net/sfc/sfc_tx.c | 2 +- drivers/net/thunderx/base/nicvf_hw.c | 2 +- drivers/net/thunderx/base/nicvf_hw.h | 2 +- drivers/net/thunderx/base/nicvf_hw_defs.h | 6 +- drivers/net/thunderx/nicvf_ethdev.c | 10 +- drivers/net/thunderx/nicvf_ethdev.h | 6 +- drivers/net/thunderx/nicvf_rxtx.h | 4 +- drivers/net/thunderx/nicvf_struct.h | 6 +- drivers/net/virtio/virtio_ethdev.c | 10 +- drivers/net/virtio/virtio_rxtx.h | 4 +- drivers/net/virtio/virtqueue.h | 6 +- drivers/net/vmxnet3/vmxnet3_ethdev.c | 10 +- drivers/net/vmxnet3/vmxnet3_rxtx.c | 8 +- examples/ipsec-secgw/esp.c | 12 +-- examples/l2fwd-crypto/main.c | 8 +- lib/librte_cryptodev/rte_crypto.h | 2 +- lib/librte_cryptodev/rte_crypto_sym.h | 6 +- lib/librte_cryptodev/rte_cryptodev.c | 2 +- lib/librte_cryptodev/rte_cryptodev.h | 2 +- lib/librte_eal/bsdapp/eal/eal_memory.c | 15 ++- lib/librte_eal/common/eal_common_memory.c | 4 +- lib/librte_eal/common/eal_common_memzone.c | 6 +- lib/librte_eal/common/include/rte_malloc.h | 17 +++- lib/librte_eal/common/include/rte_memory.h | 28 +++++- lib/librte_eal/common/include/rte_memzone.h | 6 +- lib/librte_eal/common/rte_malloc.c | 22 ++--- lib/librte_eal/linuxapp/eal/eal_memory.c | 40 ++++---- lib/librte_eal/linuxapp/eal/eal_vfio.c | 6 +- lib/librte_eal/rte_eal_version.map | 3 +- lib/librte_kni/rte_kni.c | 2 +- lib/librte_mbuf/rte_mbuf.c | 6 +- lib/librte_mbuf/rte_mbuf.h | 53 ++++++++--- lib/librte_mempool/rte_mempool.c | 111 +++++++++++++---------- lib/librte_mempool/rte_mempool.h | 86 +++++++++++------- lib/librte_mempool/rte_mempool_ops.c | 4 +- lib/librte_mempool/rte_mempool_version.map | 2 + lib/librte_vhost/vhost.h | 2 +- lib/librte_vhost/vhost_user.c | 4 +- lib/librte_vhost/virtio_net.c | 2 +- test/test/test_cryptodev.c | 42 ++++----- test/test/test_cryptodev.h | 4 +- test/test/test_mbuf.c | 2 +- test/test/test_mempool.c | 4 +- test/test/test_memzone.c | 80 ++++++++-------- 129 files changed, 708 insertions(+), 591 deletions(-) -- 2.14.2