summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/guest-diag/guest_pin_stream.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/tools/guest-diag/guest_pin_stream.py b/tools/guest-diag/guest_pin_stream.py
index b308136..4bfaaf8 100644
--- a/tools/guest-diag/guest_pin_stream.py
+++ b/tools/guest-diag/guest_pin_stream.py
@@ -1729,10 +1729,16 @@ def main():
# m165 (D-F1a): pool/waiter VAs have no method
# stream content and the CE offset math does not
# apply; route them to the structural tracker-sem
- # walk instead.
+ # walk instead. m168: the tracker sems are
+ # long-lived objects (allocated once) whose page
+ # pointer follows the pool across clients, so try
+ # every sem we have ever resolved a chain for -
+ # seen_sems alone can miss the live generation.
+ _psems = set(seen_sems) | set(KC_PB_STATE.keys()) \
+ | set(resolved_kc_pb)
try:
ok = resolve_pool_va(kc, wv, got,
- seen_sems)
+ _psems)
except Exception:
ok = False
got = []