DPDK patches and discussions
 help / color / mirror / Atom feed
From: Shijith Thotton <sthotton@marvell.com>
To: Bruce Richardson <bruce.richardson@intel.com>,
	Jerin Jacob <jerinjacobk@gmail.com>
Cc: Jerin Jacob <jerinj@marvell.com>,
	Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	Wathsala Vithanage <wathsala.vithanage@arm.com>,
	Nithin Kumar Dabilpuram <ndabilpuram@marvell.com>,
	Kiran Kumar Kokkilagadda <kirankumark@marvell.com>,
	Sunil Kumar Kori <skori@marvell.com>,
	Satha Koteswara Rao Kottidi <skoteshwar@marvell.com>,
	Harman Kalra <hkalra@marvell.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	David Marchand <david.marchand@redhat.com>
Subject: RE: [EXTERNAL] Re: [PATCH] common/cnxk: allow enabling IOVA field in mbuf
Date: Thu, 24 Oct 2024 16:13:19 +0000	[thread overview]
Message-ID: <PH0PR18MB442544B87879F276BDB01037D94E2@PH0PR18MB4425.namprd18.prod.outlook.com> (raw)
In-Reply-To: <Zxo451_U_xXqZT0m@bricha3-mobl1.ger.corp.intel.com>

>On Thu, Oct 24, 2024 at 04:40:40PM +0530, Jerin Jacob wrote:
>> On Mon, Oct 14, 2024 at 4:37 PM Shijith Thotton <sthotton@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 <sthotton@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	other threads:[~2024-10-24 16:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-14 11:06 Shijith Thotton
2024-10-24 11:10 ` Jerin Jacob
2024-10-24 12:09   ` Bruce Richardson
2024-10-24 16:13     ` Shijith Thotton [this message]
2024-10-24 16:44       ` [EXTERNAL] " Bruce Richardson

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=PH0PR18MB442544B87879F276BDB01037D94E2@PH0PR18MB4425.namprd18.prod.outlook.com \
    --to=sthotton@marvell.com \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=hkalra@marvell.com \
    --cc=jerinj@marvell.com \
    --cc=jerinjacobk@gmail.com \
    --cc=kirankumark@marvell.com \
    --cc=ndabilpuram@marvell.com \
    --cc=pbhagavatula@marvell.com \
    --cc=skori@marvell.com \
    --cc=skoteshwar@marvell.com \
    --cc=thomas@monjalon.net \
    --cc=wathsala.vithanage@arm.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).