summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/state_log.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/guest-diag/state_log.sh')
-rw-r--r--tools/guest-diag/state_log.sh12
1 files changed, 12 insertions, 0 deletions
diff --git a/tools/guest-diag/state_log.sh b/tools/guest-diag/state_log.sh
new file mode 100644
index 0000000..de3d6ed
--- /dev/null
+++ b/tools/guest-diag/state_log.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+# state_log.sh <pid> - 200ms sampler of state/syscall/wchan for the whole run.
+PID="$1"
+: > /tmp/state.log
+while kill -0 "$PID" 2>/dev/null; do
+ st=$(awk '{print $3}' /proc/$PID/stat 2>/dev/null)
+ sc=$(cat /proc/$PID/syscall 2>/dev/null | cut -d' ' -f1-3)
+ wc=$(cat /proc/$PID/wchan 2>/dev/null)
+ echo "$(date +%T.%3N) st=$st sc=[$sc] wchan=$wc" >> /tmp/state.log
+ sleep 0.2
+done
+echo "$(date +%T.%3N) GONE" >> /tmp/state.log