DF-4059 / run_patched.sh
#!/bin/sh # run_patched.sh -- fix validation on the PATCHED kernel (both findings). # All scenarios incl. both former panic finales must run with the guest # surviving: no panic, id-0 completions rejected, leak clamped at 46, # timeout detaches the slot (recycle+amr_start succeeds), late # completion tolerated as bad-slot. set -e ROOT=$(cd "$(dirname "$0")/../../.." && pwd) cd "$ROOT" V=./dfbsd-qemu/vm.sh $V run_root 'uname -a > /root/rig/env.txt' $V run_root 'cd /root/rig && kldload ./dfamr_rig.ko' $V run_root 'cd /root/rig && ./dfamr_ctl prime && ./dfamr_ctl offs && ./dfamr_ctl magic' echo "=== DF-4059B on patched kernel (expect: no stores, id rejected) ===" $V run_root 'cd /root/rig && ./dfamr_ctl b' echo "=== DF-4059 leak on patched kernel (expect: 46 entries max, no stack bytes) ===" $V run_root 'cd /root/rig && ./dfamr_ctl leak 2 && dmesg | tail -70' echo "=== DF-4060 timeout on patched kernel (expect: slot detached, no panic) ===" $V run_root 'cd /root/rig && ./dfamr_ctl tmo 1' echo "=== DF-4060 late on patched kernel (expect: bad-slot tolerated, no completion) ===" $V run_root 'cd /root/rig && ./dfamr_ctl late' echo "=== DF-4059A on patched kernel (expect: bad completion id, NO panic) ===" $V run_root 'cd /root/rig && ./dfamr_ctl a' echo "=== GUEST STILL ALIVE (fix validated if you see this) ===" $V run_root 'uptime' |