# DF-4025 evidence pack

re(4) instance of the DF-3715 (em) callout/serializer AB-BA:
re_stop(sc, TRUE) holds if_serializer and calls callout_stop(&sc->re_timer)
(if_re.c:2000) while re_tick (:1354-1361) may be parked in a blocking
lwkt_serialize_enter (:1358); DragonFly callout_stop sleeps "costp"
(kern_timeout.c:923) waiting for that callback -> permanent deadlock,
serializer never released, one CPU's softclock stops delivering callouts.

- rereplica.c + Makefile: kernel module replicating re's exact protocol
  (re_timer shape: blocking acquire + under-lock self re-arm; re_stop(TRUE)
  shape: hold serializer, callout_stop, then clear running).
- build.sh/build.log: module builds on the guest (BUILD_RC=0).
- run.sh/run.log: arm -> stop in background -> dmesg shows "...entering
  callout_stop()" then the LAST-LINE marker and NOTHING after;
  ps shows the stopper stuck "D5 costp" (kern_timeout.c:923) permanently;
  guest could not even be shut down cleanly afterwards (callout starvation)
  -- force-killed + reset with-src.
- env.txt: no re hardware on guest; source md5 match; verdict therefore
  "inconclusive" per family convention with mechanism PROVEN by replica.
- fix.diff: make re_tick non-blocking (lwkt_serialize_try + 1-tick retry).

Run: ./build.sh (on guest in /root/rereplica); ./run.sh (guest root).
Success criterion: ps line "D5 costp sysctl kern.rereplica.stop=1" that
never disappears; dmesg transcript ends at the LAST-LINE marker.
