Files
ARMSX3/rpcs3/Emu
jpolo1224 5e49d77c76 Detect a hang by guest lock traffic, not by frames
The frame-based check cannot see this class of hang at all. Tales of Xillia 2
white-screens with its RENDER loop still running: it submits real, non-forced
flips every ~10ms forever, so 'no frame presented' is never true while the
game logic behind them is dead. Measured on device -- g_last_frame_time was
9-12ms old on every sample taken across the hang. Four fixes to the
frame-based detector were all fixing the wrong instrument.

What actually stops is lock traffic. Both hangs seen so far -- Xillia 2's
white screen and Kane & Lynch's freeze -- show mutex acquisition at exactly
zero for minutes while sys_timer_usleep and sys_event_queue_receive continue
at flat, identical rates, which is idle service loops and nothing else. Both
games were taking 100k+ locks per 10s until the moment they stopped.

Polled from the PPU syscall usage thread, which already holds the counters and
is independent of both the RSX thread and the guest. Bounded the same way as
the other path: two dumps, the second 15s after the first so a cia that has
not moved between them is distinguishable from slow progress, re-armed only
when lock traffic resumes.
2026-08-24 15:02:59 -04:00
..
2026-06-21 21:01:39 +02:00
2026-06-21 21:01:39 +02:00
2026-07-14 13:00:58 +03:00
2026-08-10 20:03:56 +03:00
2026-02-25 11:53:04 +01:00
2026-06-21 21:01:39 +02:00
2026-06-21 21:01:39 +02:00
2026-07-19 15:58:26 +02:00
2026-07-19 15:58:26 +02:00