diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/system/packages/default.nix | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/modules/system/packages/default.nix b/modules/system/packages/default.nix index 84cfac2..f8b914c 100644 --- a/modules/system/packages/default.nix +++ b/modules/system/packages/default.nix @@ -1,7 +1,22 @@ # Common packages { config, lib, pkgs, ... }: with lib; -let linuxpkgs = config.boot.kernelPackages; +let + linuxpkgs = config.boot.kernelPackages; + perf-flamegraph-process = + pkgs.writeShellScriptBin "perf-flamegraph-process" '' + set -euo pipefail + + OUT_DIR="''${HOME}/workspace/tmp/flamegraph" + OUT_SVG="''${OUT_DIR}/$(date +%y%m%d-%H%M%S).svg" + + mkdir -p ''${OUT_DIR} + + ${pkgs.linuxPackages.perf}/bin/perf record -g --call-graph dwarf -F max "$@" + ${pkgs.linuxPackages.perf}/bin/perf script \ + | ${pkgs.flamegraph}/bin/stackcollapse-perf.pl \ + | ${pkgs.flamegraph}/bin/flamegraph.pl > "''${OUT_SVG}" + ''; in { @@ -33,6 +48,7 @@ in openssl parted pciutils + perf-flamegraph-process perf-tools powertop rsync |