diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-16 21:43:06 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-16 21:43:06 -0400 |
| commit | 6f445664a1c94b3a00b9cf8a5d5572979610642a (patch) | |
| tree | b542fb07e74587737a4d448ff331a1378e37c41e /tools | |
| parent | d2ceb0e384a4b5cd539c5cc894ae99ad1906abb7 (diff) | |
| download | open-iov-6f445664a1c94b3a00b9cf8a5d5572979610642a.tar.gz open-iov-6f445664a1c94b3a00b9cf8a5d5572979610642a.zip | |
vgsp: m168 revert to session scope - the pool page is per-CLIENT (conflict line r171: cached=0x1247b5000 new=0x1321fa000); a cross-session cache served the previous client's dead page and silently absorbed releases. scanner: pool demand resolves against every known tracker sem (seen + resolved chains)
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/guest-diag/guest_pin_stream.py | 10 |
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 = [] |
