#!/bin/sh
# DF-3000 scenario runner (probe kernel): exercises the UIO_NOCOPY putpages
# path of hammer_vop_write() under increasing buffer/page pressure and
# reports any DF3000-PROBE console output (check `vm.sh log`).
# run as UNPRIVILEGED user; /mnt/h1 is the HAMMER1 mount.
set -e
echo "== scenario A: sparse ftruncate + sparse dirty + MS_SYNC"
/tmp/op3000  /mnt/h1/t3000a.bin 1048576
echo "== scenario B: fill + sparse dirty + 256MB churn + madvise + MS_SYNC"
/tmp/op3000b /mnt/h1/t3000b.bin /churn.bin
echo "== scenario C: all-pages dirty + 3GB anon pressure + MS_SYNC"
/tmp/op3000c /mnt/h1/t3000c.bin
echo "== scenario D: rounds of re-dirty + hammer1 churn + anon + MS_SYNC"
/tmp/op3000d /mnt/h1/t3000d.bin /mnt/h1/churn1.bin
echo "== scenario E: concurrent buffer-demand + anon pressure + MS_SYNC"
/tmp/op3000e /mnt/h1/t3000e.bin
echo "all scenarios completed"
