linux: quiet the false-positive kernel heartbeat watchdog

portHeartbeatCheck fired on any >3s frame gap and re-fired every 2s,
spamming ge007.crash.log with thread dumps during gdb pauses, level
loads, and SIGTERM teardown on a slow/software-GL setup. Widen to 8s and
stop after 3 reports. A genuine hang is permanent so it still gets caught.
This commit is contained in:
James Dansereau committed 2026-09-03 00:00:07 -04:00
1 parent b49907ded9
commit ff957c21fc
1 file changed
+7 -1
+7 -1
View File
@@ -173,8 +173,14 @@ static uint64_t portNextTimerUs(void);
static void portHeartbeatCheck(void)
{
/* A real hang is a permanent stall; transient >3 s gaps are normal on a
* slow/software-GL/debugger setup (level loads, gdb pauses, SIGTERM
* teardown) and were spamming ge007.crash.log with dozens of thread
* dumps. Use a longer window and stop after a few reports. */
static int fired = 0;
uint64_t now = sysGetMicroseconds();
if (now - g_lastFrameUs > 3000000 && now - g_lastHeartbeatUs > 2000000) {
if (fired < 3 && now - g_lastFrameUs > 8000000 && now - g_lastHeartbeatUs > 5000000) {
fired++;
g_lastHeartbeatUs = now;
sysLogPrintf(LOG_ERROR,
"kernel heartbeat: no frame rendered for %llu ms (frames=%d); state:",