⬢ DragonFlyBSD Kernel Audit
DF-2880 / run.log
← back to finding ↓ download raw
STOCK KERNEL (v6.5.0.1712.g89e6a):
# truncate -s 8T /swap8t; vnconfig -c vn0 /swap8t; swapon /dev/vn0s0
swapon: adding /dev/vn0s0 as swap device        (accepted in ~33s; BLIST_MAXBLKS bound ineffective)
pstat -s: /dev/vn0s0  17179869184 512-blocks (= |INT_MIN| pages * 8, printed unsigned)
sysctl vm.swap_size: 1048512 -> 2148532096 pages (8TiB fully counted: overcommit)
under memory pressure (memhog):
  /dev/vbd0s1b  Used=136 (real swap taking pages)
  /dev/vn0s0    Used=0     (NEVER takes a page)
serial console (thousands of repeats, guest wedged -> down):
  swap_pager: I/O error - pageout failed; offset 15015936,size 65536, error 22
  (error 22 = EINVAL = swapdev_strategy vm_swap.c:128 rejecting ALL I/O because
   sp->sw_nblks truncated to INT_MIN < 0 while nblkno+sz is positive)

PATCHED KERNEL (int64 sw_nblks):
swapon OK; swap low/high-water marks set to 85941283/128911925 (full accounting)
under the same memory pressure: ZERO "I/O error" console spam (0 lines);
vn0s0 swap I/O accepted (guest thrashes on file-backed swap instead of
wedge-looping on rejected pageouts) -> truncation fixed.