aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-08-08 00:49:11 +0900
committerOphestra <cat@gensokyo.uk>2025-08-08 00:56:25 +0900
commita4f7e92e1c96b6afda6389de44d166804512d24d (patch)
tree360f66c80f252495b2ef9e3a626712ab67a46141 /test
parentf1a53d611604482db975b312f4eeb6a81ea95ce5 (diff)
test/interactive: helper scripts for tracing
The vm state is discarded often, and it is quite cumbersome to set everything up again when the shell history is gone. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'test')
-rw-r--r--test/interactive/trace.nix28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/interactive/trace.nix b/test/interactive/trace.nix
new file mode 100644
index 00000000..f055e0bb
--- /dev/null
+++ b/test/interactive/trace.nix
@@ -0,0 +1,28 @@
+{ lib, pkgs, ... }:
+let
+ tracing = name: "\"/sys/kernel/debug/tracing/${name}\"";
+in
+{
+ environment.systemPackages = [
+ (pkgs.writeShellScriptBin "hakurei-set-up-tracing" ''
+ set -e
+ echo "$1" > ${tracing "set_graph_function"}
+ echo function_graph > ${tracing "current_tracer"}
+ echo funcgraph-tail > ${tracing "trace_options"}
+ echo funcgraph-retval > ${tracing "trace_options"}
+ echo nofuncgraph-cpu > ${tracing "trace_options"}
+ echo nofuncgraph-overhead > ${tracing "trace_options"}
+ echo nofuncgraph-duration > ${tracing "trace_options"}
+ '')
+ (pkgs.writeShellScriptBin "hakurei-print-trace" "exec cat ${tracing "trace"}")
+ (pkgs.writeShellScriptBin "hakurei-consume-trace" "exec cat ${tracing "trace_pipe"}")
+ ];
+
+ boot.kernelPatches = [
+ {
+ name = "funcgraph-retval";
+ patch = null;
+ extraStructuredConfig.FUNCTION_GRAPH_RETVAL = lib.kernel.yes;
+ }
+ ];
+}