summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/semfix_uvmt.py
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 15:19:34 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 15:19:34 -0400
commit40411a6837620097efe2cf15f322f0526ae45385 (patch)
tree1851b23dda57385a021f70aed67e0253e4bb17c4 /tools/guest-diag/semfix_uvmt.py
parentf737696b6ab728c4045517ae8341734f1ac3cc74 (diff)
downloadopen-iov-40411a6837620097efe2cf15f322f0526ae45385.tar.gz
open-iov-40411a6837620097efe2cf15f322f0526ae45385.zip
sema-svc: never apply swept-page releases with no live channel (guest boot corruption); tooling guards
Diffstat (limited to 'tools/guest-diag/semfix_uvmt.py')
-rwxr-xr-xtools/guest-diag/semfix_uvmt.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/tools/guest-diag/semfix_uvmt.py b/tools/guest-diag/semfix_uvmt.py
index 12577ab..0d31394 100755
--- a/tools/guest-diag/semfix_uvmt.py
+++ b/tools/guest-diag/semfix_uvmt.py
@@ -115,11 +115,17 @@ def state_str(sem, st):
def dmesg_releases(seen):
- """Print/append new host-decoded releases (sema-push lines)."""
+ """Print/append new host-decoded releases (sema-push lines).
+
+ Only lines after the last "sema-svc: thread started" marker count: dmesg
+ keeps the previous module load's lines and the old client's releases.
+ """
try:
r = subprocess.run(
["sudo", "-n", "sh", "-c",
- "dmesg -T | grep 'sema-push' | tail -300"],
+ "dmesg -T | awk '/sema-svc: thread started/{n=NR} "
+ "{l[NR]=$0} END{for(i=n+1;i<=NR;i++) print l[i]}' "
+ "| grep 'sema-push' | tail -300"],
capture_output=True, text=True, timeout=10)
except Exception:
return