Hi Olivier, Thanks for the review.
>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? Idea was to let app/lib use an additional 8-bytes of dynamic area. >- 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 yet to do it. I will update, once I have the numbers. >> >> 1. https://urldefense.proofpoint.com/v2/url?u=https- >3A__inbox.dpdk.org_dev_57d2ab7fff672716d37ba4078e2e3bb2db126607.1656605 >763.git.sthotton- >40marvell.com_&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=G9w4KsPaQLACBf >GCL35PtiRH996yqJDxAZwrWegU2qQ&m=O9JeIb0lfExyVnC8dV3WUADowh165KkS >3s9JrmAjLwj8Uw5Iyb0tqSQ9YvQWpbIc&s=DaHEYGwUqUmAFmQ9Jkj8jGnOS4aw8 >iZ8Tcww-jPTdFE&e= . >> >> 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 >>