build: mlx dpdk-rdma compatibility matrix 56/37156/8
authorMohammed Hawari <mohammed@hawari.fr>
Mon, 19 Sep 2022 14:26:25 +0000 (16:26 +0200)
committerDave Wallace <dwallacelf@gmail.com>
Tue, 4 Oct 2022 15:44:17 +0000 (15:44 +0000)
- Verify mlx_rdma_dpdk_matrix.txt versions,
  build MLX drivers in dpdk if the versions match.
  Also output version comparison results to a file
  for CI job to send notification email when the
  versions do not match.

Change-Id: Id1384ba4ea4b1f855f4d77d1d8e2c38683abfe1f
Type: improvement
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Makefile
build/external/Makefile
build/external/mlx_rdma_dpdk_matrix.txt [new file with mode: 0644]
build/external/packages.mk
build/external/packages/dpdk.mk

index 4cd9e9b..4d3ba75 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -760,3 +760,7 @@ ifeq ($(OS_ID)-$(OS_VERSION_ID),$(MAKE_VERIFY_GATE_OS))
 else
        $(call banner,"Skipping tests. Tests under 'make verify' supported on $(MAKE_VERIFY_GATE_OS)")
 endif
+
+.PHONY: check-dpdk-mlx
+check-dpdk-mlx:
+       @[ $$(make -sC build/external dpdk-show-DPDK_MLX_DEFAULT) = y ]
\ No newline at end of file
index 9f6a6ce..b036313 100644 (file)
@@ -38,8 +38,8 @@ ARCH_X86_64=$(filter x86_64,$(shell uname -m))
 include packages.mk
 include packages/ipsec-mb.mk
 include packages/quicly.mk
-include packages/dpdk.mk
 include packages/rdma-core.mk
+include packages/dpdk.mk
 include packages/libbpf.mk
 
 .PHONY: clean
diff --git a/build/external/mlx_rdma_dpdk_matrix.txt b/build/external/mlx_rdma_dpdk_matrix.txt
new file mode 100644 (file)
index 0000000..9fdd83a
--- /dev/null
@@ -0,0 +1 @@
+rdma=41.0 dpdk=22.07
\ No newline at end of file
index 005c2a9..99322ae 100644 (file)
@@ -146,5 +146,9 @@ $(B)/.$1.install.ok: $(B)/.$1.build.ok
 .PHONY: $1-install
 $1-install: $(B)/.$1.install.ok
 
+.PHONY: $1-show-%
+$1-show-%:
+       @echo $$($$*)
+
 ALL_TARGETS += $1-install
 endef
index b963c36..bf27d8a 100644 (file)
@@ -14,9 +14,6 @@
 DPDK_PKTMBUF_HEADROOM        ?= 128
 DPDK_USE_LIBBSD              ?= n
 DPDK_DEBUG                   ?= n
-DPDK_MLX4_PMD                ?= n
-DPDK_MLX5_PMD                ?= n
-DPDK_MLX5_COMMON_PMD         ?= n
 DPDK_TAP_PMD                 ?= n
 DPDK_FAILSAFE_PMD            ?= n
 DPDK_MACHINE                 ?= default
@@ -34,6 +31,11 @@ dpdk_tarball_md5sum          := $(dpdk_tarball_md5sum_$(dpdk_version))
 dpdk_url                     := $(dpdk_base_url)/$(dpdk_tarball)
 dpdk_tarball_strip_dirs      := 1
 dpdk_depends                := rdma-core $(if $(ARCH_X86_64), ipsec-mb)
+
+DPDK_MLX_DEFAULT             := $(shell if grep -q "rdma=$(rdma-core_version) dpdk=$(dpdk_version)" mlx_rdma_dpdk_matrix.txt; then echo 'y'; else echo 'n'; fi)
+DPDK_MLX4_PMD                ?= $(DPDK_MLX_DEFAULT)
+DPDK_MLX5_PMD                ?= $(DPDK_MLX_DEFAULT)
+DPDK_MLX5_COMMON_PMD         ?= $(DPDK_MLX_DEFAULT)
 # Debug or release
 
 DPDK_BUILD_TYPE:=release
@@ -173,6 +175,7 @@ PIP_DOWNLOAD_DIR = $(CURDIR)/downloads/
 
 define dpdk_config_cmds
        cd $(dpdk_build_dir) && \
+       echo "DPDK_MLX_DEFAULT=$(DPDK_MLX_DEFAULT)" > dpdk_mlx_default.sh && \
        rm -rf ../dpdk-meson-venv && \
        mkdir -p ../dpdk-meson-venv && \
        python3 -m venv ../dpdk-meson-venv && \