From 00dfe801f48a54898515e96062f4edd0e8b7568b Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Fri, 12 Sep 2025 13:37:17 +0200 Subject: [PATCH] Fix GPI-2 and enable TAGASPI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rdma-core driver.h include is no longer installed: https://github.com/linux-rdma/rdma-core/commit/56dd87acd29279c81adfcf95f9d4d14806a2b615 So ibv_read_sysfs_file() is not defined. As the symbols is still distributed, we simply add the missing prototype manually. Similarly, the gaspi_get_system_mem() function is not available from the gaspi public headers, so we define it in the max_mem.c test. Fixes: https://jungle.bsc.es/git/rarias/bscpkgs/issues/7 Reviewed-by: Aleix Boné Tested-by: Rodrigo Arias Mallo --- overlay.nix | 4 ++-- pkgs/gpi-2/default.nix | 2 ++ pkgs/gpi-2/max-mem.patch | 10 ++++++++++ pkgs/gpi-2/rdma-core.patch | 12 ++++++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 pkgs/gpi-2/max-mem.patch create mode 100644 pkgs/gpi-2/rdma-core.patch diff --git a/overlay.nix b/overlay.nix index 52b0d171..d4ea2691 100644 --- a/overlay.nix +++ b/overlay.nix @@ -18,7 +18,7 @@ let clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmpv; }; clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { }; #extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated - #gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; # Broken: https://jungle.bsc.es/git/rarias/bscpkgs/issues/7 + gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { }; jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { }; lmbench = callPackage ./pkgs/lmbench/default.nix { }; @@ -44,7 +44,7 @@ let stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; }; stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.clangOmpss2Nodes; allowedRequisites = null; }; stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; }; - #tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; # Broken due gpi-2 + tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; tampi = callPackage ./pkgs/tampi/default.nix { }; wxparaver = callPackage ./pkgs/paraver/default.nix { }; }; diff --git a/pkgs/gpi-2/default.nix b/pkgs/gpi-2/default.nix index a17b15c3..007cf807 100644 --- a/pkgs/gpi-2/default.nix +++ b/pkgs/gpi-2/default.nix @@ -34,6 +34,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + patches = [ ./rdma-core.patch ./max-mem.patch ]; + preConfigure = '' patchShebangs autogen.sh ./autogen.sh diff --git a/pkgs/gpi-2/max-mem.patch b/pkgs/gpi-2/max-mem.patch new file mode 100644 index 00000000..0760ff29 --- /dev/null +++ b/pkgs/gpi-2/max-mem.patch @@ -0,0 +1,10 @@ +--- a/tests/tests/segments/max_mem.c 2025-09-12 13:30:53.449353591 +0200 ++++ b/tests/tests/segments/max_mem.c 2025-09-12 13:33:49.750352401 +0200 +@@ -1,5 +1,7 @@ + #include + ++gaspi_size_t gaspi_get_system_mem (void); ++ + /* Test allocates 45% of system memory and creates a segment that + large or if several ranks per node exist, divided among that + number */ diff --git a/pkgs/gpi-2/rdma-core.patch b/pkgs/gpi-2/rdma-core.patch new file mode 100644 index 00000000..4ef82e4b --- /dev/null +++ b/pkgs/gpi-2/rdma-core.patch @@ -0,0 +1,12 @@ +--- a/src/devices/ib/GPI2_IB.h 2025-09-12 13:25:31.564181121 +0200 ++++ b/src/devices/ib/GPI2_IB.h 2025-09-12 13:24:49.105422150 +0200 +@@ -26,6 +26,9 @@ along with GPI-2. If not, see