[PATCH v3 0/5] mbuf dynamic field expansion
Olivier Matz
olivier.matz at 6wind.com
Wed Sep 28 14:52:20 CEST 2022
Hi Shijith,
On Wed, Sep 21, 2022 at 07:26:16PM +0530, Shijith Thotton wrote:
> This is a continuation of the discussions[1] to add mbuf physical address field to dynamic field.
> Previous version was to add PA field to dynamic field area based on the EAL IOVA mode option. It was
> deemed unsafe as some components could still use the PA field without checking IOVA mode and there
> are drivers which need PA to work. One suggestion was to make the IOVA mode check at compile time so
> that drivers which need PA can be disabled during build. This series adds this new meson build
> options. Second patch adds mbuf PA field to dynamic field on such builds. Last two patches enable
> Marvell cnxk PMDs and software PMDs in IOVA as VA build as they work without PA field.
Thank you for this patchset.
To be honnest, initially I was really reserved to remove the use of
buf_iova for some specific platforms.
But what made me change my mind is that the removal if buf_iova will
likely happen in the long-term future. It looks there is a consensus on
this. I think your patchset is a good way to prepare this transition.
What is missing, I think, is a good description of the problem you are
solving:
- more space for dynamic mbuf fields -> why? can you give more detail about
this need?
- increase performance -> you previously said that it was not your point,
but if we move the next field into the first cache line, I think this
has to be highlighted. Out of curiosity, did you made measurements?
I'm sending separate comments as replies to the patches.
Olivier
>
> 1. https://inbox.dpdk.org/dev/57d2ab7fff672716d37ba4078e2e3bb2db126607.1656605763.git.sthotton@marvell.com/.
>
> v3:
> * Cleared use of buf_iova from cnxk PMD.
>
> v2:
> * Used RTE_IOVA_AS_VA instread of rte_is_iova_as_va_build().
> * Moved mbuf next pointer to first cacheline if RTE_IOVA_AS_VA = 1.
>
> Shijith Thotton (5):
> build: add meson option to configure IOVA mode as VA
> mbuf: add second dynamic field member for VA only build
> lib: move mbuf next pointer to first cache line
> drivers: mark Marvell cnxk PMDs work with IOVA as VA
> drivers: mark software PMDs work with IOVA as VA
>
> app/test-bbdev/test_bbdev_perf.c | 2 +-
> app/test-crypto-perf/cperf_test_common.c | 5 +--
> app/test/test_bpf.c | 2 +-
> app/test/test_dmadev.c | 33 ++++++--------
> app/test/test_mbuf.c | 12 +++---
> app/test/test_pcapng.c | 2 +-
> config/arm/meson.build | 8 +++-
> config/meson.build | 1 +
> drivers/common/cnxk/meson.build | 1 +
> drivers/crypto/armv8/meson.build | 1 +
> drivers/crypto/cnxk/cn10k_ipsec_la_ops.h | 4 +-
> drivers/crypto/cnxk/cn9k_ipsec_la_ops.h | 2 +-
> drivers/crypto/cnxk/meson.build | 2 +
> drivers/crypto/ipsec_mb/meson.build | 1 +
> drivers/crypto/null/meson.build | 1 +
> drivers/crypto/openssl/meson.build | 1 +
> drivers/dma/cnxk/meson.build | 1 +
> drivers/dma/skeleton/meson.build | 1 +
> drivers/event/cnxk/meson.build | 1 +
> drivers/event/dsw/meson.build | 1 +
> drivers/event/opdl/meson.build | 1 +
> drivers/event/skeleton/meson.build | 1 +
> drivers/event/sw/meson.build | 1 +
> drivers/mempool/bucket/meson.build | 1 +
> drivers/mempool/cnxk/meson.build | 1 +
> drivers/mempool/ring/meson.build | 1 +
> drivers/mempool/stack/meson.build | 1 +
> drivers/meson.build | 6 +++
> drivers/net/af_packet/meson.build | 1 +
> drivers/net/af_xdp/meson.build | 2 +
> drivers/net/bonding/meson.build | 1 +
> drivers/net/cnxk/cn10k_tx.h | 55 +++++++-----------------
> drivers/net/cnxk/cn9k_tx.h | 55 +++++++-----------------
> drivers/net/cnxk/cnxk_ethdev.h | 1 -
> drivers/net/cnxk/meson.build | 1 +
> drivers/net/failsafe/meson.build | 1 +
> drivers/net/memif/meson.build | 1 +
> drivers/net/null/meson.build | 1 +
> drivers/net/pcap/meson.build | 1 +
> drivers/net/ring/meson.build | 1 +
> drivers/net/tap/meson.build | 1 +
> drivers/raw/cnxk_bphy/meson.build | 1 +
> drivers/raw/cnxk_gpio/meson.build | 1 +
> drivers/raw/skeleton/meson.build | 1 +
> lib/eal/linux/eal.c | 7 +++
> lib/mbuf/rte_mbuf.c | 8 ++--
> lib/mbuf/rte_mbuf.h | 17 +++++---
> lib/mbuf/rte_mbuf_core.h | 55 ++++++++++++++++++------
> lib/mbuf/rte_mbuf_dyn.c | 2 +
> lib/meson.build | 3 ++
> lib/vhost/vhost.h | 2 +-
> lib/vhost/vhost_crypto.c | 54 +++++++++++++++++------
> meson_options.txt | 2 +
> 53 files changed, 220 insertions(+), 150 deletions(-)
>
> --
> 2.25.1
>
More information about the dev
mailing list