DF-5183 / run.log
LWQ: waiter started (tid 0xfffff800905fc100) LWQ-F3: tsleep(timo=(int)MAX_SCHEDULE_TIMEOUT=-1) returned rv=35 after 2 ticks with NO waker - 'infinite' timeout actually expires every tick (LONG_MAX truncates to int -1, callout clamps to next tick) LWQ-F3: wait_on_bit_timeout(MAX_SCHEDULE_TIMEOUT) on a set bit returned rv=0 after 396 ticks (only exits because we clear the bit below; internally it polls at 1 tick granularity) LWQ: waiter exiting LWQ: ================= SUMMARY ================= LWQ: rounds_done=1666602 fast_correct=1666602 misreports=0 lost_first_wake=34 LWQ: verdict: no misreport observed this run LWQ: =========================================== LWQ: waiter started (tid 0xfffff800905fd480) LWQ-F3: tsleep(timo=(int)MAX_SCHEDULE_TIMEOUT=-1) returned rv=35 after 2 ticks with NO waker - 'infinite' timeout actually expires every tick (LONG_MAX truncates to int -1, callout clamps to next tick) LWQ: MISREPORT #1 (windowed) dt=199 ticks: wait_event_timeout returned 0 (timeout) but condition gen 1 != 0 is TRUE - the in-window wake was lost and the rescue wake could not find the auto-removed entry LWQ: MISREPORT #2 (windowed) dt=199 ticks: wait_event_timeout returned 0 (timeout) but condition gen 3 != 2 is TRUE - the in-window wake was lost and the rescue wake could not find the auto-removed entry LWQ-F3: wait_on_bit_timeout(MAX_SCHEDULE_TIMEOUT) on a set bit returned rv=0 after 396 ticks (only exits because we clear the bit below; internally it polls at 1 tick granularity) LWQ: MISREPORT #3 (windowed) dt=199 ticks: wait_event_timeout returned 0 (timeout) but condition gen 5 != 4 is TRUE - the in-window wake was lost and the rescue wake could not find the auto-removed entry LWQ: MISREPORT #4 (windowed) dt=200 ticks: wait_event_timeout returned 0 (timeout) but condition gen 7 != 6 is TRUE - the in-window wake was lost and the rescue wake could not find the auto-removed entry LWQ: MISREPORT #5 (windowed) dt=199 ticks: wait_event_timeout returned 0 (timeout) but condition gen 9 != 8 is TRUE - the in-window wake was lost and the rescue wake could not find the auto-removed entry LWQ: MISREPORT #6 (windowed) dt=199 ticks: wait_event_timeout returned 0 (timeout) but condition gen 11 != 10 is TRUE - the in-window wake was lost and the rescue wake could not find the auto-removed entry LWQ: MISREPORT #7 (windowed) dt=199 ticks: wait_event_timeout returned 0 (timeout) but condition gen 13 != 12 is TRUE - the in-window wake was lost and the rescue wake could not find the auto-removed entry LWQ: MISREPORT #8 (windowed) dt=199 ticks: wait_event_timeout returned 0 (timeout) but condition gen 15 != 14 is TRUE - the in-window wake was lost and the rescue wake could not find the auto-removed entry LWQ: waker exiting LWQ: MISREPORT #9 (windowed) dt=199 ticks: wait_event_timeout returned 0 (timeout) but condition gen 18 != 16 is TRUE - the in-window wake was lost and the rescue wake could not find the auto-removed entry LWQ: waiter exiting LWQ: ================= SUMMARY ================= LWQ: rounds_done=17 fast=8 control_ok=8 misreports=9 rescues_fired=9 LWQ: verdict: REPRODUCED - windowed rounds: in-window wake LOST + auto-removed entry strands the sleeper; wait_event_timeout() reports timeout although the condition was set true before the wake; rescue wake cannot reach it; control rounds behave correctly LWQ: ===========================================