[v2] common/cnxk: allow enabling IOVA field in mbuf

Message ID 20241025095040.2275978-1-sthotton@marvell.com (mailing list archive)
State Changes Requested, archived
Delegated to: Jerin Jacob
Headers
Series [v2] common/cnxk: allow enabling IOVA field in mbuf |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/intel-Functional success Functional PASS

Commit Message

Shijith Thotton Oct. 25, 2024, 9:50 a.m. UTC
The value of RTE_IOVA_IN_MBUF has always been disabled on CNXK
platforms, as IOVA in the mbuf is unnecessary. This update changes that
behavior to respect the value set by the user. A warning message will be
printed if the build is configured to enable IOVA on the CNXK platform.

Signed-off-by: Shijith Thotton <sthotton@marvell.com>
---
v2:
- Don't override the default value of RTE_IOVA_IN_MBUF in CNXK platform.
- Print a warning message if IOVA in mbuf is enabled on CNXK platform.

 config/arm/meson.build          | 8 ++------
 drivers/common/cnxk/meson.build | 6 ++++++
 2 files changed, 8 insertions(+), 6 deletions(-)
  

Comments

Bruce Richardson Oct. 25, 2024, 10:06 a.m. UTC | #1
On Fri, Oct 25, 2024 at 03:20:40PM +0530, Shijith Thotton wrote:
> The value of RTE_IOVA_IN_MBUF has always been disabled on CNXK platforms,
> as IOVA in the mbuf is unnecessary. This update changes that behavior to
> respect the value set by the user. A warning message will be printed if
> the build is configured to enable IOVA on the CNXK platform.
> 
> Signed-off-by: Shijith Thotton <sthotton@marvell.com> --- v2: - Don't
> override the default value of RTE_IOVA_IN_MBUF in CNXK platform.  - Print
> a warning message if IOVA in mbuf is enabled on CNXK platform.
> 
>  config/arm/meson.build          | 8 ++------
>  drivers/common/cnxk/meson.build | 6 ++++++ 2 files changed, 8
>  insertions(+), 6 deletions(-)
> 
I think you probably need some doc updates for this. The current doc (cnxk
platform guide) says "Meson build option enable_iova_as_pa is disabled on
CNXK platforms." This is no longer true. Instead, you probably need to put
- in more than one place in the docs, I suggest - a note telling the user
that the option should be disabled.

/Bruce
  
Shijith Thotton Oct. 25, 2024, 10:12 a.m. UTC | #2
>On Fri, Oct 25, 2024 at 03: 20: 40PM +0530, Shijith Thotton wrote: > The value
>of RTE_IOVA_IN_MBUF has always been disabled on CNXK platforms, > as
>IOVA in the mbuf is unnecessary. This update changes that behavior to >
>respect the value
>
>On Fri, Oct 25, 2024 at 03:20:40PM +0530, Shijith Thotton wrote:
>> The value of RTE_IOVA_IN_MBUF has always been disabled on CNXK
>platforms,
>> as IOVA in the mbuf is unnecessary. This update changes that behavior to
>> respect the value set by the user. A warning message will be printed if
>> the build is configured to enable IOVA on the CNXK platform.
>>
>> Signed-off-by: Shijith Thotton <sthotton@marvell.com> --- v2: - Don't
>> override the default value of RTE_IOVA_IN_MBUF in CNXK platform.  - Print
>> a warning message if IOVA in mbuf is enabled on CNXK platform.
>>
>>  config/arm/meson.build          | 8 ++------
>>  drivers/common/cnxk/meson.build | 6 ++++++ 2 files changed, 8
>>  insertions(+), 6 deletions(-)
>>
>I think you probably need some doc updates for this. The current doc (cnxk
>platform guide) says "Meson build option enable_iova_as_pa is disabled on
>CNXK platforms." This is no longer true. Instead, you probably need to put
>- in more than one place in the docs, I suggest - a note telling the user
>that the option should be disabled.
>

Thanks, will update the documentation.
  

Patch

diff --git a/config/arm/meson.build b/config/arm/meson.build
index 55be7c8711..20f7f6508c 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -459,10 +459,7 @@  soc_cn9k = {
     'description': 'Marvell OCTEON 9',
     'implementer': '0x43',
     'part_number': '0xb2',
-    'numa': false,
-    'flags': [
-        ['RTE_IOVA_IN_MBUF', 0]
-    ]
+    'numa': false
 }
 
 soc_cn10k = {
@@ -471,8 +468,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 abb0f6f01f..293a47524b 100644
--- a/drivers/common/cnxk/meson.build
+++ b/drivers/common/cnxk/meson.build
@@ -108,4 +108,10 @@  deps += ['bus_pci', 'net', 'telemetry']
 
 require_iova_in_mbuf = false
 
+cnxk_socs = ['cn9k', 'cn10k', 'cn20k']
+
+if dpdk_conf.get('RTE_IOVA_IN_MBUF') == 1 and soc_type in cnxk_socs
+    warning('IOVA in mbuf is not required on platform ' + soc_type)
+endif
+
 annotate_locks = false