DF-2866 / run.sh
#!/bin/sh # DF-2866 - run the pgtmark harness. # Stage 1: kldload prints pagertab[0..7] (index 7 = OOB slot) -- harmless. # Stage 2: sysctl vm.pgtmark_fire=1 dispatches an OBJT_MARKER object # through vm_pager_has_page() -> pagertab[7] wild indirect call. # EXPECT: kernel panic on the stock kernel. Fixed kernel: returns # FALSE, "NO PANIC". set -e cd "$(dirname "$0")" CFG=../../../dfbsd-qemu/config SSH="ssh -F $CFG -o ConnectTimeout=8 -o BatchMode=yes dfbsd" echo "== stage 1: load + dump pagertab ==" $SSH 'kldload /root/pgtmark/pgtmark.ko' $SSH 'dmesg | tail -15' echo "== stage 2: fire (expect panic on stock kernel) ==" $SSH 'sysctl vm.pgtmark_fire=1' || echo "(ssh died -- expected if panic)" sleep 3 echo "== guest state ==" $SSH 'true' && echo "GUEST STILL UP (no panic?)" || echo "GUEST UNREACHABLE (likely panicked)" |