⬢ DragonFlyBSD Kernel Audit
DF-2232 / fix_run.log
← back to finding ↓ download raw
[DF2232-A1] === control phase PASSED (fails=0) ===
[DF2232-A2] === control phase (kernel KPI (shipped binary)) ===
[DF2232-A2] sizeof(struct idr_node)=16
[DF2232-A2] idr_init()
[DF2232-A2] idr_count=255 (expect 255)
[DF2232-A2] idr_alloc(start=1) -> 1 (expect 1), idr_count=255 (expect 255)
[DF2232-A2] idr_alloc(start=1000) -> 1000 (expect 1000), idr_count=1023 (expect 1023)
[DF2232-A2] idr_find(1) -> 0xaa (expect 0xaa)
[DF2232-A2] idr_find(1000) -> 0xbb (expect 0xbb)
[DF2232-A2] idr_find(999) -> 0 (expect NULL)
[DF2232-A2] iter 1: idr_pre_get -> 1 (expect 1)
[DF2232-A2] iter 1: idr_get_new_above(sid=500) -> -35 (EAGAIN=-35 expected on iter 1), id=-1
[DF2232-A2] iter 2: idr_pre_get -> 1 (expect 1)
[DF2232-A2] iter 2: idr_get_new_above(sid=500) -> 0 (EAGAIN=-35 expected on iter 1), id=500
[DF2232-A2] get_new_above settled: ret=0 id=500 (expect 0, 500) after 2 iteration(s), idr_maxwant=500 (expect 500)
[DF2232-A2] idr_remove(1000) -> 0xbb (expect 0xbb)
[DF2232-A2] idr_alloc(start=1000) again -> 1000 (expect 1000)
[DF2232-A2] idr_nexpands=1
[DF2232-A2] idr_destroy done
[DF2232-A2] === control phase PASSED (fails=0) ===
[DF2232-B] === giant-kmalloc phase (verbatim copy) ===
[DF2232-B] plan: idr_alloc(start=536870912, end=0)
[DF2232-B] expected idr_grow loop result: nf = 2^30-1 = 1073741823
[DF2232-B] expected kmalloc request: 1073741823 * 16 = 17179869168 bytes (~16 GiB, M_ZERO|M_WAITOK)
[DF2232] arming 15 s watchdog on cpu 1
[DF2232-B] idr_init
[DF2232-B] ALLOCATOR BOUNDARY: kmalloc(4080 bytes [0xff0], M_IDR, flags 0x102) -> real allocator
[DF2232-B] entering idr_alloc ... (wedge expected on unfixed kernel; watchdog 15 s)
[DF2232-B] idr_alloc RETURNED -12 (unexpected on unfixed kernel)
[DF2232-B] NOTE: negative errno return, no giant kmalloc reached the allocator (last request was 4080 bytes)
[DF2232] watchdog thread stopped+exiting
[DF2232] watchdog disarmed
[DF2232-C] === spin phase (verbatim KLD copy) ===
[DF2232-C] want=INT_MAX=2147483647: growth loop 2*INT_MAX+1 overflows signed int to -1; -1 <= INT_MAX -> infinite loop holding lwkt idr token
[DF2232] arming 15 s watchdog on cpu 0
[DF2232-B] ALLOCATOR BOUNDARY: kmalloc(4080 bytes [0xff0], M_IDR, flags 0x102) -> real allocator
[DF2232-C] idr_count=255
[DF2232-C] A: running on cpu 4 (verbatim copy)
[DF2232-C] A: calling idr_get_new_above(sid=2147483647) -- expect -EAGAIN and idr_maxwant poisoned to INT_MAX
[DF2232-C] A: get_new_above returned -35 (expect -35), id=-1, idr_maxwant=2147483647 (expect 2147483647)
[DF2232-C] A: entering idr_pre_get -- expect INFINITE SPIN in idr_grow: nf=2*nf+1 wraps 2*INT_MAX+1 to -1, -1 <= INT_MAX forever, idr token held
[DF2232-C] A: pre_get RETURNED 0 (unexpected on unfixed kernel)
[DF2232-C] B: running on cpu 5
[DF2232-C] B: pre-spin token check: idr_remove(0) ...
[DF2232-C] B: pre-spin token check returned (token was free)
[DF2232-C] B: A entered pre_get (a_stage=2); calling idr_remove(0) on the SAME idr -- expect NEVER to return (lwkt token held forever by spinning A)
[DF2232-C] B: idr_remove RETURNED (unexpected on unfixed kernel)
[DF2232-C] phase finished: a_done=1 b_acquired=1
[DF2232-C] no spin, no livelock (fixed kernel behavior)
[DF2232] watchdog thread stopped+exiting
[DF2232] watchdog disarmed
[DF2232-C] === spin phase (kernel KPI (shipped binary)) ===
[DF2232-C] want=INT_MAX=2147483647: growth loop 2*INT_MAX+1 overflows signed int to -1; -1 <= INT_MAX -> infinite loop holding lwkt idr token
[DF2232] arming 15 s watchdog on cpu 0
[DF2232-C] idr_count=255
[DF2232-C] A: running on cpu 4 (kernel KPI)
[DF2232-C] A: calling idr_get_new_above(sid=2147483647) -- expect -EAGAIN and idr_maxwant poisoned to INT_MAX
[DF2232-C] A: get_new_above returned -35 (expect -35), id=-1, idr_maxwant=2147483647 (expect 2147483647)
[DF2232-C] A: entering idr_pre_get -- expect INFINITE SPIN in idr_grow: nf=2*nf+1 wraps 2*INT_MAX+1 to -1, -1 <= INT_MAX forever, idr token held
[DF2232-C] A: pre_get RETURNED 0 (unexpected on unfixed kernel)