>On Thu, Oct 24, 2024 at 04:40:40PM +0530, Jerin Jacob wrote:
>> On Mon, Oct 14, 2024 at 4:37 PM Shijith Thotton <sthot...@marvell.com>
>wrote:
>> >
>> > Value of RTE_IOVA_IN_MBUF was always disabled on cnxk platforms, as
>IOVA
>> > in the mbuf is not required. This change modifies that behavior,
>> > allowing RTE_IOVA_IN_MBUF to be enabled if the build option
>> > -Denable_iova_as_pa=true is explicitly specified.
>> >
>> > Signed-off-by: Shijith Thotton <sthot...@marvell.com>
>> > ---
>> >
>> > diff --git a/config/arm/meson.build b/config/arm/meson.build
>> > index 012935d5d7..ca54524376 100644
>> > --- a/config/arm/meson.build
>> > +++ b/config/arm/meson.build
>> > @@ -439,10 +439,7 @@ soc_cn9k = {
>> >      'description': 'Marvell OCTEON 9',
>> >      'implementer': '0x43',
>> >      'part_number': '0xb2',
>> > -    'numa': false,
>> > -    'flags': [
>> > -        ['RTE_IOVA_IN_MBUF', 0]
>> > -    ]
>> > +    'numa': false
>> >  }
>> >
>> >  soc_cn10k = {
>> > @@ -451,8 +448,7 @@ soc_cn10k = {
>> >      'flags': [
>> >          ['RTE_MAX_LCORE', 24],
>> >          ['RTE_MAX_NUMA_NODES', 1],
>> > -        ['RTE_MEMPOOL_ALIGN', 128],
>> > -        ['RTE_IOVA_IN_MBUF', 0]
>> > +        ['RTE_MEMPOOL_ALIGN', 128]
>> >      ],
>> >      'part_number': '0xd49',
>> >      'extra_march_features': ['crypto'],
>> > diff --git a/drivers/common/cnxk/meson.build
>b/drivers/common/cnxk/meson.build
>> > index dc2ddf1f20..bba780e750 100644
>> > --- a/drivers/common/cnxk/meson.build
>> > +++ b/drivers/common/cnxk/meson.build
>> > @@ -108,4 +108,13 @@ deps += ['bus_pci', 'net', 'telemetry']
>> >
>> >  require_iova_in_mbuf = false
>> >
>> > +cnxk_socs = ['cn9k', 'cn10k', 'cn20k']
>> > +
>> > +# Enable RTE_IOVA_IN_MBUF only if enable_iova_as_pa is set explicitly,
>else disable it
>> > +if meson.version().version_compare('>=1.1.0')
>> > +    if '-Denable_iova_as_pa' not in meson.build_options() and soc_type in
>cnxk_socs
>> > +        dpdk_conf.set10('RTE_IOVA_IN_MBUF', false)
>> > +    endif
>> > +endif
>>
>> Since this is added in driver/common/cnxk, it will be late to decide.
>> For example,
>>
>> Following PMDs will have mis match:
>> common - cpt, dpaax, idpf, ionic
>> bus - cdx, dpaa, fslmc, ifpga, uacce
>>
>> I think, this check needs to move up in the chain. @Richardson, Bruce
>> Any thoughts on cleanly adding this kind of check in top-level meson
>> objects?
>>
>Can you explain what you mean by a mismatch?
>
>Can I assume that the common/cnxk is processed before any of these other
>drivers? If so, then whatever values or variables set by that meson.build
>file can be queried by all the others.
>

The goal is to change the default value of enable_iova_as_pa to false on
CNXK platforms.

Jerin pointed out the following issue with the current patch, which causes a
mismatch during the default build (enable_iova_as_pa not specified):

1. The configuration initially sets RTE_IOVA_IN_MBUF to 1.
2. Meson proceeds through the lib and driver directories, enabling the
    build of drivers that require IOVA.
3. When Meson reaches the common/cnxk folder, it sets RTE_IOVA_IN_MBUF
     to 0.
4. The remaining configuration then disables the build of drivers that depend
     on IOVA.

The problem arises due to the extra PMDs being enabled during step 2.

We could avoid this issue by moving the check added in this patch to a
top-level Meson file, such as config/arm/meson.build.

We would like your feedback on this approach or suggestions for a better
alternative.

Thanks,
Shijith

Reply via email to