[dpdk-dev] [PATCH v4 00/15] make DPDK IOVA aware

Thomas Monjalon thomas at monjalon.net
Mon Nov 6 02:41:26 CET 2017


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



More information about the dev mailing list