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
commit1895679334371c5a89dd5cb715c980ade6559c72 (patch)
tree2bc3a8483b5d55c7451476ea7a256ad84261bd79 /tools/guest-diag/semfix_uvmt.py
parent1df5ff4729a6ad2d93bdd8707c0837e3bf9581b6 (diff)
downloadopen-iov-1895679334371c5a89dd5cb715c980ade6559c72.tar.gz
open-iov-1895679334371c5a89dd5cb715c980ade6559c72.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