diff options
Diffstat (limited to 'tools/guest-diag/pin_gr_stream.py')
| -rw-r--r-- | tools/guest-diag/pin_gr_stream.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/guest-diag/pin_gr_stream.py b/tools/guest-diag/pin_gr_stream.py index 35c2ea3..b2ba9b8 100644 --- a/tools/guest-diag/pin_gr_stream.py +++ b/tools/guest-diag/pin_gr_stream.py @@ -675,7 +675,19 @@ def _flush(runs, seen, full=False): # r145 stall: sema-probe "NO ENTRY" for the live push pages) and the # pool/tracker page (pending release starved, every client's first # seconds). - ce_win = 0x120000000 <= va < 0x122000000 + # + # SESSION 153-r1397b: the GL setup-push families get the same + # treatment. The guest re-emits a strict-validated 60 216 B window + # every ~4 s because a burst can be partially dropped under host + # load and the `done` latch otherwise never retries the lost pages + # (r1397: pages 0x400a000..0x400e000 never landed; every 60216 B + # entry read answered src=255 and the push was skipped). Without + # this exception the unchanged re-emits were dropped here. + gl_win = ((0x4000000 <= va < 0x4160000) or + (0x4200000 <= va < 0x4300000) or + (0xcc80000 <= va < 0xcc90000) or + (0x6f00000 <= va < 0x6f10000)) + ce_win = 0x120000000 <= va < 0x122000000 or gl_win if not full and not ce_win and seen.get(va) == pa and n == 1: continue todo[(va, pa, n)] = True |
