DF-5790 / run5790.sh
#!/bin/sh # DF-5790 — softc leak when device_delete_child() deletes a # probed-but-unattached (DS_ALIVE) device: device_detach() short-circuits # without device_set_driver(dev,NULL), so the 8192-byte probe softc is # never freed. Compare M_BUS growth of leak cycles vs control cycles. set -e cd /root/df5789 kldload ./rig.ko echo "=== baseline M_BUS ===" vmstat -m | grep -w bus echo "=== control: 100 add/delete cycles WITHOUT probe (no softc) ===" sysctl hw.df5789.leakctl=100 vmstat -m | grep -w bus echo "=== leak: 100 add/PROBE/delete cycles (8192-byte softc leaked each) ===" sysctl hw.df5789.leak=100 vmstat -m | grep -w bus echo "=== leak again x100 (cumulative) ===" sysctl hw.df5789.leak=100 vmstat -m | grep -w bus echo "=== unload cleanly (no dfleak devices held) ===" sysctl hw.df5789.cooperate=1 >/dev/null 2>&1 || true kldunload rig && echo ok vmstat -m | grep -w bus |