DPDK patches and discussions
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Cc: olivier.matz@6wind.com, sergio.gonzalez.monroy@intel.com,
	anatoly.burakov@intel.com, dev@dpdk.org
Subject: [dpdk-dev] [PATCH v4 00/15] make DPDK IOVA aware
Date: Mon,  6 Nov 2017 02:41:26 +0100	[thread overview]
Message-ID: <20171106014141.13266-1-thomas@monjalon.net> (raw)
In-Reply-To: <20170814151537.29454-1-santosh.shukla@caviumnetworks.com>

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

  parent reply	other threads:[~2017-11-06  1:42 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-14 15:15 [dpdk-dev] [PATCH v1 0/4] make dpdk iova aware Santosh Shukla
2017-08-14 15:15 ` [dpdk-dev] [PATCH v1 1/4] eal: rename phys_addr_t to iova_addr_t Santosh Shukla
2017-09-18 14:06   ` Burakov, Anatoly
2017-09-18 14:31     ` santosh
2017-09-18 14:32     ` Burakov, Anatoly
2017-08-14 15:15 ` [dpdk-dev] [PATCH v1 2/4] eal/memory: rename buf_physaddr to buf_iovaaddr Santosh Shukla
2017-08-14 15:15 ` [dpdk-dev] [PATCH v1 3/4] eal/memory: rename memory translational api to _iova types Santosh Shukla
2017-08-14 15:15 ` [dpdk-dev] [PATCH v1 4/4] doc: remove dpdk iova aware notice Santosh Shukla
2017-09-18 18:44   ` Mcnamara, John
2017-09-05 10:31 ` [dpdk-dev] [PATCH v2 0/5] make dpdk iova aware Santosh Shukla
2017-09-05 10:31   ` [dpdk-dev] [PATCH v2 1/5] eal: rename phys_addr_t to iova_addr_t Santosh Shukla
2017-09-18 15:19     ` Burakov, Anatoly
2017-09-05 10:31   ` [dpdk-dev] [PATCH v2 2/5] eal/memory: rename buf_physaddr to buf_iovaaddr Santosh Shukla
2017-09-18 15:20     ` Burakov, Anatoly
2017-09-05 10:31   ` [dpdk-dev] [PATCH v2 3/5] eal/memory: rename memseg member phys to iova addr Santosh Shukla
2017-09-18 15:04     ` Burakov, Anatoly
2017-09-18 15:08       ` santosh
2017-09-18 15:11         ` Burakov, Anatoly
2017-09-18 15:21     ` Burakov, Anatoly
2017-09-05 10:31   ` [dpdk-dev] [PATCH v2 4/5] eal/memory: rename memory api to iova types Santosh Shukla
2017-09-05 10:31   ` [dpdk-dev] [PATCH v2 5/5] doc: remove dpdk iova aware notice Santosh Shukla
2017-09-19 13:38     ` Mcnamara, John
2017-10-17 13:31   ` [dpdk-dev] [PATCH v2 0/5] make dpdk iova aware Thomas Monjalon
2017-10-17 14:12     ` santosh
2017-10-20 12:31   ` [dpdk-dev] [PATCH v3 0/6] " Santosh Shukla
2017-10-20 12:31     ` [dpdk-dev] [PATCH v3 1/6] eal: rename phys addr to iova addr Santosh Shukla
2017-10-23 20:32       ` Thomas Monjalon
2017-10-24  5:16         ` santosh
2017-10-20 12:31     ` [dpdk-dev] [PATCH v3 2/6] eal/memory: rename buf physaddr to buf iovaaddr Santosh Shukla
2017-10-23 20:15       ` Thomas Monjalon
2017-10-25  9:55         ` Olivier MATZ
2017-10-23 20:34       ` Thomas Monjalon
2017-10-24  5:17         ` santosh
2017-10-25  9:44       ` Olivier MATZ
2017-10-20 12:31     ` [dpdk-dev] [PATCH v3 3/6] eal/memory: rename memseg member phys to iova addr Santosh Shukla
2017-10-20 12:31     ` [dpdk-dev] [PATCH v3 4/6] eal/memory: rename memory API to iova types Santosh Shukla
2017-11-03 11:11       ` Thomas Monjalon
2017-11-03 11:35         ` santosh
2017-11-03 13:58           ` Thomas Monjalon
2017-11-03 15:22             ` [dpdk-dev] [PATCH v3 4/6] eal/memory: rename memory API to iovatypes Jonas Pfefferle1
2017-10-20 12:31     ` [dpdk-dev] [PATCH v3 5/6] doc: remove dpdk iova aware notice Santosh Shukla
2017-10-23 20:29       ` Thomas Monjalon
2017-10-24  5:06         ` santosh
2017-10-25  9:45           ` Thomas Monjalon
2017-10-25  9:50             ` Richardson, Bruce
2017-10-25 10:01               ` Thomas Monjalon
2017-10-25 10:05                 ` Bruce Richardson
2017-10-25 10:12                   ` Thomas Monjalon
2017-10-25 10:32                     ` Bruce Richardson
2017-10-20 12:31     ` [dpdk-dev] [PATCH v3 6/6] eal/common/rte_malloc: use pointer diff in virt2iova Santosh Shukla
2017-10-23 14:58     ` [dpdk-dev] [PATCH v3 0/6] make dpdk iova aware Thomas Monjalon
2017-10-24  5:12       ` santosh
2017-10-24  7:38         ` Thomas Monjalon
2017-11-06  1:41 ` Thomas Monjalon [this message]
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 01/15] mem: hide physical address error in VA mode Thomas Monjalon
2017-11-06  5:39     ` santosh
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 02/15] mem: introduce IOVA type Thomas Monjalon
2017-11-06  5:38     ` santosh
2017-11-06  8:37       ` Thomas Monjalon
2017-11-06  8:51         ` santosh
2017-11-06  9:08           ` Thomas Monjalon
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 03/15] mem: rename segment address from physical to IOVA Thomas Monjalon
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 04/15] mem: rename address mapping function " Thomas Monjalon
2017-11-06  5:41     ` santosh
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 05/15] malloc: " Thomas Monjalon
2017-11-06  5:47     ` santosh
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 06/15] malloc: use pointer diff macro in IOVA mapping Thomas Monjalon
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 07/15] memzone: rename address from physical to IOVA Thomas Monjalon
2017-11-06  5:50     ` santosh
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 08/15] mempool: rename addresses " Thomas Monjalon
2017-11-06  5:52     ` santosh
2017-11-06 15:44     ` Olivier MATZ
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 09/15] mempool: rename address mapping function " Thomas Monjalon
2017-11-06  5:54     ` santosh
2017-11-06 15:44     ` Olivier MATZ
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 10/15] mempool: rename populate functions " Thomas Monjalon
2017-11-06 15:49     ` Olivier MATZ
2017-11-06 15:58       ` Thomas Monjalon
2017-11-06 16:39         ` Olivier MATZ
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 11/15] mbuf: rename physical address " Thomas Monjalon
2017-11-06 15:52     ` Olivier MATZ
2017-11-06 16:00       ` Thomas Monjalon
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 12/15] mbuf: rename data address helpers " Thomas Monjalon
2017-11-06 15:56     ` Olivier MATZ
2017-11-06 16:03       ` Thomas Monjalon
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 13/15] cryptodev: rename physical address type " Thomas Monjalon
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 14/15] drivers/net: " Thomas Monjalon
2017-11-06  1:41   ` [dpdk-dev] [PATCH v4 15/15] doc: add IOVA aware API changes in release notes Thomas Monjalon
2017-11-06  5:56     ` santosh
2017-11-06  8:50     ` Mcnamara, John
2017-11-06 22:48   ` [dpdk-dev] [PATCH v4 00/15] make DPDK IOVA aware Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171106014141.13266-1-thomas@monjalon.net \
    --to=thomas@monjalon.net \
    --cc=anatoly.burakov@intel.com \
    --cc=dev@dpdk.org \
    --cc=olivier.matz@6wind.com \
    --cc=santosh.shukla@caviumnetworks.com \
    --cc=sergio.gonzalez.monroy@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).