DF-0079 / serial_wedge_capture.txt
##### WATCHER2_START Wed Jul 1 22:13:05 UTC 2026 ##### ##### baseline top: ##### load averages: 0.19, 0.06, 0.02; up 0+00:01:13 22:13:06 21 processes: 2 running, 19 sleeping CPU states: 1.8% user, 0.0% nice, 27.0% system, 0.4% interrupt, 70.7% idle Memory: 86M Active, 6460K Inact, 349M Wired, 50M Cache, 85M Buf, 1522M Free Swap: 4096M Total, 4096M Free PID USERNAME NICE SIZE RES STATE C TIME CTIME CPU COMMAND 699 root 0 25M 2456K kqread 0 0:00 0:00 0.88% sshd ##### WEDGE pid=852 iter=0 t=22:13:06 ##### PID PPID STAT UID %CPU TIME UCOMM COMMAND 852 1 R0 1001 0.0 0:00.50 df0079 ./df0079 load averages: 0.19, 0.06, 0.02; up 0+00:01:14 22:13:07 21 processes: 2 running, 19 sleeping CPU states: 0.0% user, 0.0% nice, 50.0% system, 0.0% interrupt, 50.0% idle Memory: 87M Active, 6432K Inact, 349M Wired, 50M Cache, 85M Buf, 1522M Free Swap: 4096M Total, 4096M Free ##### WEDGE pid=852 iter=1 t=22:13:07 ##### PID PPID STAT UID %CPU TIME UCOMM COMMAND 852 1 R0 1001 0.0 0:01.68 df0079 ./df0079 load averages: 0.19, 0.06, 0.02; up 0+00:01:15 22:13:08 21 processes: 2 running, 19 sleeping CPU states: 0.0% user, 0.0% nice, 50.0% system, 0.0% interrupt, 50.0% idle ##### WEDGE pid=852 iter=2 t=22:13:08 ##### PID PPID STAT UID %CPU TIME UCOMM COMMAND 852 1 R0 1001 0.0 0:02.86 df0079 ./df0079 CPU states: 0.0% user, 0.0% nice, 50.0% system, 0.0% interrupt, 50.0% idle ##### WEDGE pid=852 iter=3 t=22:13:09 ##### 852 1 R0 1001 0.0 0:04.04 df0079 ./df0079 ##### WEDGE pid=852 iter=4 t=22:13:10 ##### 852 1 R0 1001 0.0 0:05.22 df0079 ./df0079 ##### WEDGE pid=852 iter=5 t=22:13:11 ##### 852 1 R0 1001 0.0 0:06.40 df0079 ./df0079 ##### WEDGE pid=852 iter=6 t=22:13:13 ##### 852 1 R0 1001 0.0 0:07.58 df0079 ./df0079 ##### WEDGE pid=852 iter=7 t=22:13:14 ##### 852 1 R0 1001 0.0 0:08.76 df0079 ./df0079 ##### WEDGE pid=852 iter=8 t=22:13:15 ##### 852 1 R0 1001 0.0 0:09.94 df0079 ./df0079 ##### WEDGE pid=852 iter=9 t=22:13:16 ##### 852 1 R0 1001 0.0 0:11.11 df0079 ./df0079 ##### WEDGE pid=852 iter=10 t=22:13:17 ##### 852 1 R0 1001 0.0 0:12.30 df0079 ./df0079 ##### WEDGE pid=852 iter=11 t=22:13:19 ##### 852 1 R0 1001 0.0 0:13.47 df0079 ./df0079 ##### WEDGE pid=852 iter=12 t=22:13:20 ##### 852 1 R0 1001 0.0 0:14.66 df0079 ./df0079 ##### WEDGE pid=852 iter=13 t=22:13:21 ##### 852 1 R0 1001 0.0 0:15.84 df0079 ./df0079 ##### WEDGE pid=852 iter=14 t=22:13:22 ##### 852 1 R0 1001 0.0 0:17.02 df0079 ./df0079 ##### WEDGE pid=852 iter=15 t=22:13:23 ##### 852 1 R0 1001 0.0 0:18.20 df0079 ./df0079 ##### WEDGE pid=852 iter=16 t=22:13:24 ##### 852 1 R0 1001 0.0 0:19.39 df0079 ./df0079 ##### WEDGE pid=852 iter=17 t=22:13:26 ##### 852 1 R0 1001 0.0 0:20.56 df0079 ./df0079 ################################################################################ # SUMMARY (extracted from the per-iteration snapshots above) ################################################################################ # Process: pid=852, PPID=1 (orphaned, parent exited), UID=1001 (maxx, UNPRIVILEGED) # STAT: R0 = Running on CPU, no lock held, NOT sleeping/blocked -- i.e. the # kernel thread is spinning in on-CPU kernel context and never blocks. # COMMAND: ./df0079 (the PoC: write(/dev/null, (void*)0x1, 0x100000000)) # CPUTIME: monotonically increasing with NO progress in residual: # iter 0 (t+0.0s): 0:00.50 # iter 1 (t+0.7s): 0:01.68 (+1.18s) # iter 2 (t+1.4s): 0:02.86 (+1.18s) # ... # iter17 (t+19.5s):0:20.56 (+1.18s) # => ~1.18s of CPU per ~1.0s wall = 100% of one core consumed forever. # CPU states (top): "50.0% system, 50.0% idle" on a 2-CPU guest => exactly one # CPU fully in kernel `sys` (the wedged mmrw loop); the other idle/used # by the watcher. With N copies (fork variant), N CPUs wedge => 100%. # RECOVERY: the process is unkillable from userspace (stuck in an unyielding # kernel loop with no signal-check point). Only a hard reset recovers. ################################################################################