Prepare nix build for nanos6 rt tests
This commit is contained in:
parent
6551ba80b1
commit
4ced6a91ca
29
nix/0001-Emit-a-fill-event-at-shutdown.patch
Normal file
29
nix/0001-Emit-a-fill-event-at-shutdown.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From abeed615777690ba748f64bdb72a35fe5311259b Mon Sep 17 00:00:00 2001
|
||||
From: Rodrigo Arias <rodrigo.arias@bsc.es>
|
||||
Date: Thu, 25 Aug 2022 16:36:38 +0200
|
||||
Subject: [PATCH] Emit a fill event at shutdown
|
||||
|
||||
---
|
||||
src/instrument/ovni/InstrumentThreadManagement.cpp | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/src/instrument/ovni/InstrumentThreadManagement.cpp b/src/instrument/ovni/InstrumentThreadManagement.cpp
|
||||
index c79a9750..4872b2d9 100644
|
||||
--- a/src/instrument/ovni/InstrumentThreadManagement.cpp
|
||||
+++ b/src/instrument/ovni/InstrumentThreadManagement.cpp
|
||||
@@ -92,6 +92,12 @@ void Instrument::threadHasResumed(__attribute__((unused)) external_thread_id_t t
|
||||
|
||||
void Instrument::threadWillShutdown()
|
||||
{
|
||||
+ ThreadLocalData &tld = getThreadLocalData();
|
||||
+ if (tld._hungry) {
|
||||
+ tld._hungry = false;
|
||||
+ Ovni::schedFill();
|
||||
+ }
|
||||
+
|
||||
Ovni::threadEnd();
|
||||
}
|
||||
|
||||
--
|
||||
2.36.1
|
||||
|
93
nix/nanos6.nix
Normal file
93
nix/nanos6.nix
Normal file
@ -0,0 +1,93 @@
|
||||
let
|
||||
pkgs = import (builtins.fetchTarball
|
||||
"https://pm.bsc.es/gitlab/rarias/bscpkgs/-/archive/master/bscpkgs-master.tar.gz");
|
||||
|
||||
rWrapper = pkgs.rWrapper.override {
|
||||
packages = with pkgs.rPackages; [ tidyverse rjson jsonlite egg viridis ];
|
||||
};
|
||||
|
||||
# Recursively set MPI
|
||||
bsc = pkgs.bsc.extend (last: prev: {
|
||||
mpi = last.impi;
|
||||
#mpi = last.openmpi;
|
||||
|
||||
nanos6 = (prev.nanos6Git.override {
|
||||
gitUrl = "ssh://git@bscpm03.bsc.es/nanos6/forks/nanos6-extern-001.git";
|
||||
gitBranch = "ovni_instr";
|
||||
extrae = null;
|
||||
}).overrideAttrs (old: {
|
||||
buildInputs = old.buildInputs ++ [ last.ovni ];
|
||||
patches = [ ./0001-Emit-a-fill-event-at-shutdown.patch ];
|
||||
configureFlags = old.configureFlags ++ [
|
||||
"--with-ovni=${last.ovni}"
|
||||
];
|
||||
});
|
||||
|
||||
# Quick hack, as we only need the libovni runtime to match ours
|
||||
nanos6' = /nix/store/zg989jl3mgdps7amdskna43hipb6snsq-nanos6-60fc5f2;
|
||||
|
||||
ompss2 = {
|
||||
clangUnwrapped = prev.clangOmpss2Unwrapped.overrideAttrs (
|
||||
old:
|
||||
rec {
|
||||
src = ../kk/llvm-mono-d3d4f2bf231b9461a5881c5bf56659516d45e670.tar.bz2;
|
||||
#src = fetchTarball {
|
||||
# url = ../kk/llvm-mono-d3d4f2bf231b9461a5881c5bf56659516d45e670.tar.bz2;
|
||||
#};
|
||||
#builtins.fetchTree {
|
||||
# type = "git";
|
||||
# url = "ssh://git@bscpm03.bsc.es/llvm-ompss/llvm-mono.git";
|
||||
# ref = "master";
|
||||
# # Master at 2022-07-26
|
||||
# rev = "d3d4f2bf231b9461a5881c5bf56659516d45e670";
|
||||
# shallow = true;
|
||||
#};
|
||||
version = "d3d4f2bf";
|
||||
}
|
||||
);
|
||||
|
||||
#clangUnwrapped = /nix/store/fg621rqj50x85gnsbh1pj304049yqlaq-clang-ompss2-d3d4f2b;
|
||||
|
||||
clang = prev.clangOmpss2.override {
|
||||
clangOmpss2Unwrapped = last.ompss2.clangUnwrapped;
|
||||
};
|
||||
|
||||
#clang = /nix/store/qva7b665inxgg8wrfl2jf9dwzdp69sxq-clang-ompss2-wrapper-d3d4f2b;
|
||||
|
||||
stdenv = pkgs.overrideCC pkgs.llvmPackages_11.stdenv bsc.ompss2.clang;
|
||||
};
|
||||
|
||||
nosv = pkgs.stdenv.mkDerivation rec {
|
||||
pname = "nosv";
|
||||
version = src.shortRev;
|
||||
buildInputs = with pkgs; [ autoreconfHook pkg-config numactl last.ovni ];
|
||||
configureFlags = [ "--with-ovni=${last.ovni}" ];
|
||||
dontStrip = true;
|
||||
src = builtins.fetchGit {
|
||||
url = "ssh://git@gitlab-internal.bsc.es/nos-v/nos-v.git";
|
||||
ref = "master";
|
||||
};
|
||||
};
|
||||
|
||||
# Quick fix to avoid rebuilding every time the ovni source changes.
|
||||
# Use this nosv' version below as dependency of ovni-rt
|
||||
nosv' = /nix/store/rvnrbc7ibpw06jdilz6mha7szzxcr2mi-nosv-8936f3e;
|
||||
|
||||
ovni = last.callPackage ./ovni.nix { };
|
||||
|
||||
ovni-rt = (last.ovni.override {
|
||||
stdenv = last.ompss2.stdenv;
|
||||
}).overrideAttrs (old: {
|
||||
__impure = true;
|
||||
__noChroot = true;
|
||||
buildInputs = old.buildInputs ++ [
|
||||
last.nosv'
|
||||
pkgs.strace
|
||||
];
|
||||
cmakeFlags = old.cmakeFlags ++ [ "-DBUILD_RT_TESTING=ON" ];
|
||||
});
|
||||
});
|
||||
|
||||
in
|
||||
bsc.ovni-rt
|
||||
#bsc.ompss2.clang
|
32
nix/ovni.nix
Normal file
32
nix/ovni.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
stdenv
|
||||
, cmake
|
||||
, openmpi
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ovni";
|
||||
|
||||
buildInputs = [ cmake openmpi ];
|
||||
|
||||
# Prevent accidental reutilization of previous builds, as we are taking the
|
||||
# current directory as-is
|
||||
preConfigure = ''
|
||||
rm -rf build install
|
||||
|
||||
# There is no /bin/bash
|
||||
patchShebangs test/*.sh
|
||||
'';
|
||||
|
||||
cmakeBuildType = "Debug";
|
||||
cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF" ];
|
||||
buildFlags = [ "VERBOSE=1" ];
|
||||
preCheck = ''
|
||||
export CTEST_OUTPUT_ON_FAILURE=1
|
||||
'';
|
||||
dontStrip = true;
|
||||
doCheck = true;
|
||||
checkTarget = "test";
|
||||
|
||||
src = ../.;
|
||||
}
|
Loading…
Reference in New Issue
Block a user