[v2] common/mlx5: enable operation in iova virtual address mode

Message ID 20230412170723.20722-1-viacheslavo@nvidia.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series [v2] common/mlx5: enable operation in iova virtual address mode |

Checks

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

Commit Message

Slava Ovsiienko April 12, 2023, 5:07 p.m. UTC
  The ConnectX NIC series hardware provides advanced internal
MMU option and can operate directly over virtual addresses,
the host software should not care about any virtual-to-physical
address translations. It means the mlx5 PMDs can operate in DPDK
IOVA VA (virtual address) mode transparently.

To force IOVA VA mode the DPDK should be built with meson option:

  enable_iova_as_pa=false

With this option only drivers supporting IOVA VA mode are enabled.
This patch marks mlx5 drivers with require_iova_in_mbuf flag false
value, thus allowing their compilation for IOVA VA mode.

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>

---
v1: http://patches.dpdk.org/project/dpdk/patch/20230412125320.8585-1-viacheslavo@nvidia.com/
v2: fixed typos in commit message, reworded a little bit
---
 drivers/common/mlx5/meson.build   | 2 ++
 drivers/compress/mlx5/meson.build | 2 ++
 drivers/crypto/mlx5/meson.build   | 2 ++
 drivers/net/mlx5/meson.build      | 2 ++
 drivers/regex/mlx5/meson.build    | 2 ++
 5 files changed, 10 insertions(+)
  

Comments

Morten Brørup April 12, 2023, 7:15 p.m. UTC | #1
> From: Viacheslav Ovsiienko [mailto:viacheslavo@nvidia.com]
> Sent: Wednesday, 12 April 2023 19.07
> 
> The ConnectX NIC series hardware provides advanced internal
> MMU option and can operate directly over virtual addresses,
> the host software should not care about any virtual-to-physical
> address translations. It means the mlx5 PMDs can operate in DPDK
> IOVA VA (virtual address) mode transparently.
> 
> To force IOVA VA mode the DPDK should be built with meson option:
> 
>   enable_iova_as_pa=false
> 
> With this option only drivers supporting IOVA VA mode are enabled.
> This patch marks mlx5 drivers with require_iova_in_mbuf flag false
> value, thus allowing their compilation for IOVA VA mode.
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>

Acked-by: Morten Brørup <mb@smartsharesystems.com>
  
Raslan Darawsheh May 24, 2023, 2:04 p.m. UTC | #2
Hi,

> -----Original Message-----
> From: Slava Ovsiienko <viacheslavo@nvidia.com>
> Sent: Wednesday, April 12, 2023 8:07 PM
> To: dev@dpdk.org
> Cc: Matan Azrad <matan@nvidia.com>; Raslan Darawsheh
> <rasland@nvidia.com>; Ori Kam <orika@nvidia.com>
> Subject: [PATCH v2] common/mlx5: enable operation in iova virtual address
> mode
> 
> The ConnectX NIC series hardware provides advanced internal MMU option
> and can operate directly over virtual addresses, the host software should not
> care about any virtual-to-physical address translations. It means the mlx5
> PMDs can operate in DPDK IOVA VA (virtual address) mode transparently.
> 
> To force IOVA VA mode the DPDK should be built with meson option:
> 
>   enable_iova_as_pa=false
> 
> With this option only drivers supporting IOVA VA mode are enabled.
> This patch marks mlx5 drivers with require_iova_in_mbuf flag false value, thus
> allowing their compilation for IOVA VA mode.
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
> 
> ---
> v1: http://patches.dpdk.org/project/dpdk/patch/20230412125320.8585-1-
> viacheslavo@nvidia.com/
> v2: fixed typos in commit message, reworded a little bit

Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/common/mlx5/meson.build b/drivers/common/mlx5/meson.build
index 9dc809f192..26c6d80fe1 100644
--- a/drivers/common/mlx5/meson.build
+++ b/drivers/common/mlx5/meson.build
@@ -42,6 +42,8 @@  else
     cflags += [ '-UPEDANTIC' ]
 endif
 
+require_iova_in_mbuf = false
+
 mlx5_config = configuration_data()
 subdir(exec_env)
 configure_file(output: 'mlx5_autoconf.h', configuration: mlx5_config)
diff --git a/drivers/compress/mlx5/meson.build b/drivers/compress/mlx5/meson.build
index c906f2d7a2..26a0e0cd09 100644
--- a/drivers/compress/mlx5/meson.build
+++ b/drivers/compress/mlx5/meson.build
@@ -28,3 +28,5 @@  foreach option:cflags_options
         cflags += option
     endif
 endforeach
+
+require_iova_in_mbuf = false
diff --git a/drivers/crypto/mlx5/meson.build b/drivers/crypto/mlx5/meson.build
index a830a4c7b9..a2691ec0f0 100644
--- a/drivers/crypto/mlx5/meson.build
+++ b/drivers/crypto/mlx5/meson.build
@@ -30,3 +30,5 @@  foreach option:cflags_options
         cflags += option
     endif
 endforeach
+
+require_iova_in_mbuf = false
diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build
index dba911693e..fde7241f7e 100644
--- a/drivers/net/mlx5/meson.build
+++ b/drivers/net/mlx5/meson.build
@@ -77,6 +77,8 @@  else
     cflags += [ '-UPEDANTIC' ]
 endif
 
+require_iova_in_mbuf = false
+
 testpmd_sources += files('mlx5_testpmd.c')
 
 subdir(exec_env)
diff --git a/drivers/regex/mlx5/meson.build b/drivers/regex/mlx5/meson.build
index 87404101b9..0f4ca46f44 100644
--- a/drivers/regex/mlx5/meson.build
+++ b/drivers/regex/mlx5/meson.build
@@ -32,3 +32,5 @@  foreach option:cflags_options
         cflags += option
     endif
 endforeach
+
+require_iova_in_mbuf = false