########## DF-4196: vblank_toctou ########## --- ./vblank_toctou race (VULNERABLE interleaving; expect SIGFPE = kernel #DE) [main] mode=race (initial hwmode.crtc_clock=148500 kHz, htotal=2200) [vblank_off] event_lock released; executing lock-free vblank->hwmode.crtc_clock = 0 (drm_vblank.c:1169) Floating point exception (core dumped) rc=136 --- ./vblank_toctou race_fixed (fix.diff semantics: cached divisor) [main] mode=race_fixed (initial hwmode.crtc_clock=148500 kHz, htotal=2200) [vblank_off] event_lock released; executing lock-free vblank->hwmode.crtc_clock = 0 (drm_vblank.c:1169) [main] SURVIVED: delta_ns=1481818 (check passed BEFORE zero store, division used a cached-nonzero value) rc=0 --- determinism 3x Floating point exception (core dumped) race#1 rc=136 fixed#1 rc=0 Floating point exception (core dumped) race#2 rc=136 fixed#2 rc=0 Floating point exception (core dumped) race#3 rc=136 fixed#3 rc=0 ########## DF-4197: seqlock_aba ########## --- ./seqlock_aba demo (DF shim semantics) [demo] semantics=DF-shim [demo] read_seqbegin -> 0; reader loaded count=100 (preempted here...) [demo] writer ran a FULL cycle: count=101 time=200000, sequence=0 [demo] reader resumed: loaded time=200000, read_seqretry=0 [demo] RESULT: TORN PAIR ACCEPTED {count=100(old), time=200000(new)} — reader believes it is consistent rc=1 --- ./seqlock_aba demo_fixed (Linux monotonic seqcount semantics) [demo] semantics=FIXED(Linux) [demo] read_seqbegin -> 0; reader loaded count=100 (preempted here...) [demo] writer ran a FULL cycle: count=101 time=200000, sequence=2 [demo] reader resumed: loaded time=200000, read_seqretry=1 [demo] RESULT: retry=1 — torn pair REJECTED, reader retries rc=0 --- ./seqlock_aba stress [stress] semantics=DF-shim consistent=8910351 torn_accepted=4189 rc=1 --- ./seqlock_aba stress_fixed [stress] semantics=FIXED(Linux) consistent=6953440 torn_accepted=0 rc=0