WIP: Study performance regression in Fox #224

Draft
rarias wants to merge 3 commits from fox-regression into master
6 changed files with 50 additions and 12 deletions

View File

@@ -4,13 +4,6 @@
# Use the GRUB 2 boot loader.
boot.loader.grub.enable = true;
# Enable GRUB2 serial console
boot.loader.grub.extraConfig = ''
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal_input --append serial
terminal_output --append serial
'';
boot.kernel.sysctl = {
"kernel.perf_event_paranoid" = lib.mkDefault "-1";

View File

@@ -11,4 +11,11 @@
"console=tty1"
"console=ttyS0,115200"
];
# Enable GRUB2 serial console
boot.loader.grub.extraConfig = ''
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal_input --append serial
terminal_output --append serial
'';
}

View File

@@ -3,13 +3,13 @@
{
imports = [
../common/base.nix
../common/xeon/console.nix
../module/amd-uprof.nix
../module/emulation.nix
../module/nvidia.nix
../module/slurm-client.nix
../module/hut-substituter.nix
./wireguard.nix
./serial-console.nix
];
# Don't turn off on August as UPC has different dates.
@@ -19,6 +19,9 @@
# Select the this using the ID to avoid mismatches
boot.loader.grub.device = "/dev/disk/by-id/wwn-0x500a07514b0c1103";
# Increase time so we can boot other entries
boot.loader.timeout = 60;
# No swap, there is plenty of RAM
swapDevices = lib.mkForce [];
@@ -31,7 +34,10 @@
# Use performance for benchmarks
powerManagement.cpuFreqGovernor = "performance";
services.amd-uprof.enable = true;
# Enable amd-uprof in >= 6.15 kernels only
services.amd-uprof.enable =
let ver = config.boot.kernelPackages.kernel.version;
in (lib.strings.compareVersions ver "6.15") >= 0;
# Disable NUMA balancing
boot.kernel.sysctl."kernel.numa_balancing" = 0;
@@ -42,6 +48,11 @@
# Disable NMI watchdog to save one hw counter (for AMD uProf)
boot.kernel.sysctl."kernel.nmi_watchdog" = 0;
specialisation.oldKernel.configuration = {
system.nixos.tags = [ "old-kernel" ];
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_6_12;
};
services.openssh.settings.X11Forwarding = true;
services.fail2ban.enable = true;

21
m/fox/serial-console.nix Normal file
View File

@@ -0,0 +1,21 @@
{
# Restart the serial console
systemd.services."serial-getty@ttyS1" = {
enable = true;
wantedBy = [ "getty.target" ];
serviceConfig.Restart = "always";
};
# Enable serial console
boot.kernelParams = [
"console=tty1"
"console=ttyS1,115200"
];
# Enable GRUB2 serial console
boot.loader.grub.extraConfig = ''
serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
terminal_input --append serial
terminal_output --append serial
'';
}

View File

@@ -4,6 +4,7 @@
imports = [
../common/base.nix
../common/ssf/hosts.nix
../common/xeon/console.nix
../module/emulation.nix
../module/debuginfod.nix
../module/nvidia.nix

View File

@@ -9,13 +9,15 @@
, nanos6
, nodes
, nosv
, mkl
, mpi
, tampi
, openblas
, ovni
, gitBranch ? "master"
, gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git"
, gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4"
, gitCommit ? "fe30c2cfe36b535ef26a0054e010bc005e88ba04"
, useMkl ? true
}:
stdenv.mkDerivation rec {
@@ -42,10 +44,13 @@ stdenv.mkDerivation rec {
nosv
mpi
tampi
ovni
] ++ (if (useMkl) then [
mkl
] else [
openblas
openblas.dev
ovni
];
]);
env = {
NANOS6_HOME = nanos6;