[DF2232-A1] idr_find(1) -> 0xaa (expect 0xaa) [DF2232-A1] idr_find(1000) -> 0xbb (expect 0xbb) [DF2232-A1] idr_find(999) -> 0 (expect NULL) [DF2232-A1] iter 1: idr_pre_get -> 1 (expect 1) [DF2232-A1] iter 1: idr_get_new_above(sid=500) -> -35 (EAGAIN=-35 expected on iter 1), id=-1 [DF2232-A1] iter 2: idr_pre_get -> 1 (expect 1) [DF2232-A1] iter 2: idr_get_new_above(sid=500) -> 0 (EAGAIN=-35 expected on iter 1), id=500 [DF2232-A1] get_new_above settled: ret=0 id=500 (expect 0, 500) after 2 iteration(s), idr_maxwant=500 (expect 500) [DF2232-A1] idr_remove(1000) -> 0xbb (expect 0xbb) [DF2232-A1] idr_alloc(start=1000) again -> 1000 (expect 1000) [DF2232-A1] idr_nexpands=1 [DF2232-A1] idr_destroy done [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] rig unloaded [DF2232] rig loaded: verbatim linux_idr.c + kernel KPI, watchdog 15s [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 4 [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] ALLOCATOR BOUNDARY: kmalloc(17179869168 bytes [0x3fffffff0], M_IDR, flags 0x102) -> real allocator [DF2232] watchdog thread on cpu 4 [DF2232-WD] FIRED after ~15 s [DF2232-WD] a_stage=0 a_done=0 b_started=0 b_acquired=0 last_kmalloc_req=17179869168 bytes panic: DF2232-WD: B: idr_grow kmalloc(~16GB, M_WAITOK) never returned (vm_wait wedge / OOM) cpuid = 4 Trace beginning at frame 0xfffff800896699b0 df2232_watchdog() at df2232_watchdog+0x79 0xffffffff82600269 df2232_watchdog() at df2232_watchdog+0x79 0xffffffff82600269 systimer_intr() at systimer_intr+0xd6 0xffffffff8065a2f6 pcpu_timer_process_oncpu() at pcpu_timer_process_oncpu+0x82 0xffffffff8065b242 splz_timer() at splz_timer+0x13 0xffffffff80bca404 Debugger("panic") CPU4 stopping CPUs: 0x0000002f stopped Stopped at Debugger+0x7c: movb $0,0xbdaf09(%rip) db>