On 13/08/23(Sun) 22:59, Kurt Miller wrote: > I’ve been hunting an intermittent jdk crash on sparc64 for some time now. > Since egdb has not been up to the task, I created a small c program which > reproduces the problem. This partially mimics the jdk startup where a number > of detached threads are created. When each thread is created the main thread > waits for it to start and change state. In my test program I then have the > detached thread wait for a condition that will not happen (parked waiting > on a condition var). > > When the intermittent crash occurs, one of two things happen; a segfault or > the process has been killed by the kernel. The segfault cores are similar to > what I see with the jdk crashes. It looks like the stack of the thread > creating > the threads is corrupted. In this case it is the primordial thread. In the jdk > it is a different thread but its the thread that called pthread_create that > has it stack wiped out.
I have seen similar symptoms on x86 with go & rust when unlocking the fault handler. I wonder if grabbing the KERNEL_LOCK() around uvm_fault() in sparc64/trap.c makes the problem disappear... > The problem is sparc64 specific. The jdk doesn’t crash like this on arm64, > amd64 or i386 and the test program has run for over 1 million iterations on > each of those platforms without an issue. > > ======== startup.c ============ > #include <pthread.h> > #include <stdint.h> > #include <stdio.h> > #include <stdlib.h> > #include <err.h> > #include <sys/mman.h> > > typedef struct { > long t_num; > pthread_t t_pthread_id; > > /* sync startup */ > long t_state; > pthread_mutex_t t_mutex; > pthread_cond_t t_cond_var; > } thread_t; > > #define NTHREADS 40 > > thread_t threads[NTHREADS]; > > void > init_threads() { > long t_num; > for (t_num=0; t_num < NTHREADS; t_num++) { > threads[t_num].t_num = t_num; > threads[t_num].t_state = 0; > if (pthread_mutex_init(&threads[t_num].t_mutex, NULL) != 0) > err(1, "pthread_mutex_init failed"); > > if (pthread_cond_init(&threads[t_num].t_cond_var, NULL) != 0) > err(1, "pthread_cond_init failed"); > } > } > > void * > thread_start(thread_t *thread) { > pthread_mutex_lock(&thread->t_mutex); > thread->t_state = 1; > pthread_cond_broadcast(&thread->t_cond_var); > > while (thread->t_state != 2) > pthread_cond_wait(&thread->t_cond_var, &thread->t_mutex); > > pthread_mutex_unlock(&thread->t_mutex); > > return(NULL); > } > > void > create_thread(thread_t *thread) { > pthread_attr_t attr; > if (pthread_attr_init(&attr) != 0) > err(1, "pthread_attr_init failed"); > > if (pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) != 0) > err(1, "pthread_attr_setdetachstate failed"); > > int ret = pthread_create(&thread->t_pthread_id, &attr, (void* (*)(void*)) > thread_start, thread); > pthread_attr_destroy(&attr); > if (ret != 0 ) > err(1, "pthread_create failed"); > > /* wait for thread startup */ > pthread_mutex_lock(&thread->t_mutex); > while (thread->t_state == 0) > pthread_cond_wait(&thread->t_cond_var, &thread->t_mutex); > pthread_mutex_unlock(&thread->t_mutex); > } > > int > main( int argc, char *argv[] ) > { > long t_num; > > init_threads(); > > /* startup threads */ > for (t_num=0; t_num < NTHREADS; t_num++) { > create_thread(&threads[t_num]); > } > > return 0; > } > ============= > > This counts the number of iterations until the test program fails and > restarts the count. > > oracle$ i=0; while true; do if ! ./startup; then echo $i; i=0; else > i=$((i+1)); fi done > Killed > 1904 > Segmentation fault (core dumped) > 12875 > Segmentation fault (core dumped) > 2104 > Killed > 12189 > Segmentation fault (core dumped) > 16616 > Segmentation fault (core dumped) > 912 > Segmentation fault (core dumped) > 7604 > Segmentation fault (core dumped) > 5508 > Segmentation fault (core dumped) > 4820 > Segmentation fault (core dumped) > 7349 > Segmentation fault (core dumped) > 10939 > Segmentation fault (core dumped) > 71 > Segmentation fault (core dumped) > 3844 > Segmentation fault (core dumped) > 977 > Killed > 744 > Segmentation fault (core dumped) > 7026 > Segmentation fault (core dumped) > 94 > Segmentation fault (core dumped) > 2517 > Segmentation fault (core dumped) > 452 > Segmentation fault (core dumped) > 8007 > Segmentation fault (core dumped) > 3109 > Killed > 1969 > Segmentation fault (core dumped) > 9162 > Killed > 5705 > Segmentation fault (core dumped) > 4990 > Segmentation fault (core dumped) > 3972 > Segmentation fault (core dumped) > 857 > Segmentation fault (core dumped) > 3034 > Segmentation fault (core dumped) > 454 > Segmentation fault (core dumped) > 8951 > Killed > 94 > Segmentation fault (core dumped) > 3942 > Segmentation fault (core dumped) > 4680 > Killed > 1322 > Killed > 1164 > Killed > 5283 > Segmentation fault (core dumped) > 122 > Segmentation fault (core dumped) > 3232 > Segmentation fault (core dumped) > 9361 > Killed > 17183 > Killed > 2298 > Segmentation fault (core dumped) > 7751 > Killed > 1626 > Segmentation fault (core dumped) > 9304 > Segmentation fault (core dumped) > 3114 > Segmentation fault (core dumped) > 10444 > Segmentation fault (core dumped) > 2205 > Segmentation fault (core dumped) > 163 > Segmentation fault (core dumped) > 10069 > Segmentation fault (core dumped) > 946 > Segmentation fault (core dumped) > 4147 > Segmentation fault (core dumped) > 1355 > Killed > 901 > Segmentation fault (core dumped) > 7539 > ^C > oracle$ egdb startup startup.core > > GNU gdb (GDB) 13.2 > Copyright (C) 2023 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > Type "show copying" and "show warranty" for details. > This GDB was configured as "sparc64-unknown-openbsd7.3". > Type "show configuration" for configuration details. > For bug reporting instructions, please see: > <https://www.gnu.org/software/gdb/bugs/>. > Find the GDB manual and other documentation resources online at: > <http://www.gnu.org/software/gdb/documentation/>. > > For help, type "help". > Type "apropos word" to search for commands related to "word"... > Reading symbols from startup... > [New process 310964] > [New process 403990] > [New process 602671] > [New process 155126] > [New process 234886] > [New process 460186] > [New process 506058] > [New process 496638] > [New process 369255] > [New process 554491] > [New process 441808] > [New process 550243] > [New process 104938] > [New process 574457] > [New process 237518] > [New process 454114] > [New process 381764] > [New process 241401] > [New process 452902] > [New process 414480] > [New process 535775] > [New process 111880] > [New process 550509] > [New process 258615] > [New process 113766] > [New process 239780] > [New process 276562] > [New process 451442] > [New process 536991] > [New process 240945] > [New process 256661] > [New process 347108] > [New process 221038] > [New process 175363] > Core was generated by `startup'. > Program terminated with signal SIGSEGV, Segmentation fault. > #0 0x0000000a4b71f8f8 in _rthread_mutex_timedlock (mutexp=0x9c8e0dd98, > trywait=0, abs=0x0, timed=0) at rthread_mutex.c:163 > 163 _rthread_debug(5, "%p: mutex_%slock %p (%p)\n", self, > [Current thread is 1 (process 310964)] > (gdb) bt > #0 0x0000000a4b71f8f8 in _rthread_mutex_timedlock (mutexp=0x9c8e0dd98, > trywait=0, abs=0x0, timed=0) at rthread_mutex.c:163 > #1 0x0000000a4b769d9c in _rthread_cond_timedwait (cond=<optimized out>, > mutexp=0x9c8e0dd98, abs=0xc) at rthread_cond.c:121 > (gdb) p *mutexp > $1 = (pthread_mutex_t) 0x309c08 > (gdb) p **mutexp > Cannot access memory at address 0x309c08 > (gdb) thread apply all bt > > Thread 34 (process 175363): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf2e50) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf2e50, mutexp=0x760602570 > <threads+1304>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602558 <threads+1280>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x982a16638) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 33 (process 221038): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf3c50) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf3c50, mutexp=0x760602548 > <threads+1264>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602530 <threads+1240>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9bf3bd638) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 32 (process 347108): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbc9d80) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbc9d80, mutexp=0x760602520 > <threads+1224>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602508 <threads+1200>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9bf3bc238) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 31 (process 256661): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbc8410) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbc8410, mutexp=0x7606024f8 > <threads+1184>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606024e0 <threads+1160>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9bf3bc638) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 30 (process 240945): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf9c50) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf9c50, mutexp=0x7606024d0 > <threads+1144>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606024b8 <threads+1120>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0xa522e4a38) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 29 (process 536991): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf87b0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf87b0, mutexp=0x7606024a8 > <threads+1104>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602490 <threads+1080>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9c4266038) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 28 (process 451442): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > --Type <RET> for more, q to quit, c to continue without paging-- > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf2eb0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf2eb0, mutexp=0x760602480 > <threads+1064>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602468 <threads+1040>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9c4267038) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 27 (process 276562): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbb5980) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbb5980, mutexp=0x760602458 > <threads+1024>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602440 <threads+1000>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9c4267e38) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 26 (process 239780): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf8920) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf8920, mutexp=0x760602430 > <threads+984>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602418 <threads+960>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0xa522e4e38) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 25 (process 113766): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf9620) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf9620, mutexp=0x760602408 > <threads+944>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606023f0 <threads+920>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x982a17e38) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 24 (process 258615): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbb49d0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbb49d0, mutexp=0x7606023e0 > <threads+904>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606023c8 <threads+880>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9bf3bd838) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 23 (process 550509): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf8d10) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf8d10, mutexp=0x7606023b8 > <threads+864>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606023a0 <threads+840>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9c4267838) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 22 (process 111880): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf2da0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf2da0, mutexp=0x760602390 > <threads+824>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602378 <threads+800>) at > startup.c:43 > --Type <RET> for more, q to quit, c to continue without paging-- > #4 0x00000009c8b07550 in _rthread_start (v=0x9c4267638) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 21 (process 535775): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf3870) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf3870, mutexp=0x760602368 > <threads+784>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602350 <threads+760>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x982a16e38) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 20 (process 414480): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf8b90) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf8b90, mutexp=0x760602340 > <threads+744>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602328 <threads+720>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9c4267438) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 19 (process 452902): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf83c0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf83c0, mutexp=0x760602318 > <threads+704>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602300 <threads+680>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9bf3bc038) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 18 (process 241401): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbb51c0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbb51c0, mutexp=0x7606022f0 > <threads+664>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606022d8 <threads+640>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9c4266c38) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 17 (process 381764): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf3cb0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf3cb0, mutexp=0x7606022c8 > <threads+624>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606022b0 <threads+600>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0xa522e5238) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 16 (process 454114): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbc9e50) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbc9e50, mutexp=0x7606022a0 > <threads+584>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602288 <threads+560>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9bf3bd238) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > --Type <RET> for more, q to quit, c to continue without paging-- > > Thread 15 (process 237518): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbb4280) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbb4280, mutexp=0x760602278 > <threads+544>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602260 <threads+520>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0xa522e5838) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 14 (process 574457): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbb5d60) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbb5d60, mutexp=0x760602250 > <threads+504>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602238 <threads+480>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0xa522e5e38) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 13 (process 104938): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf30a0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf30a0, mutexp=0x760602228 > <threads+464>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602210 <threads+440>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9bf3bd438) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 12 (process 550243): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbb47c0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbb47c0, mutexp=0x760602200 > <threads+424>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606021e8 <threads+400>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0xa522e4838) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 11 (process 441808): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf3660) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf3660, mutexp=0x7606021d8 > <threads+384>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606021c0 <threads+360>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0xa522e5638) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 10 (process 554491): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf8650) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf8650, mutexp=0x7606021b0 > <threads+344>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602198 <threads+320>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9bf3bd038) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 9 (process 369255): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > --Type <RET> for more, q to quit, c to continue without paging-- > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbc8360) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbc8360, mutexp=0x760602188 > <threads+304>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602170 <threads+280>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x982a17438) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 8 (process 496638): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf38a0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf38a0, mutexp=0x760602160 > <threads+264>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602148 <threads+240>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0xa522e4038) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 7 (process 506058): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf2560) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf2560, mutexp=0x760602138 > <threads+224>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602120 <threads+200>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9bf3bce38) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 6 (process 460186): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf9370) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf9370, mutexp=0x760602110 > <threads+184>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606020f8 <threads+160>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0xa522e5438) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 5 (process 234886): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf9cd0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf9cd0, mutexp=0x7606020e8 > <threads+144>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606020d0 <threads+120>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9bf3bca38) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 4 (process 155126): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbb4fb0) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbb4fb0, mutexp=0x7606020c0 > <threads+104>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x7606020a8 <threads+80>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x9c4266a38) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 3 (process 602671): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbc9240) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbc9240, mutexp=0x760602098 > <threads+64>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602080 <threads+40>) at > startup.c:43 > --Type <RET> for more, q to quit, c to continue without paging-- > #4 0x00000009c8b07550 in _rthread_start (v=0x982a17038) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 2 (process 403990): > #0 0x0000000a4b770ba8 in futex () at {standard input}:5 > #1 0x0000000a4b769cac in _twait (abs=<optimized out>, clockid=<optimized > out>, val=<optimized out>, p=0x9ccbf8f80) at > /usr/src/lib/libc/thread/synch.h:55 > #2 _rthread_cond_timedwait (cond=0x9ccbf8f80, mutexp=0x760602070 > <threads+24>, abs=0x0) at rthread_cond.c:106 > #3 0x0000000760300888 in thread_start (thread=0x760602058 <threads>) at > startup.c:43 > #4 0x00000009c8b07550 in _rthread_start (v=0x982a17238) at rthread.c:96 > #5 0x0000000a4b78924c in __tfork_thread () at > /usr/src/lib/libc/arch/sparc64/sys/tfork_thread.S:58 > Backtrace stopped: previous frame identical to this frame (corrupt stack?) > > Thread 1 (process 310964): > #0 0x0000000a4b71f8f8 in _rthread_mutex_timedlock (mutexp=0x9c8e0dd98, > trywait=0, abs=0x0, timed=0) at rthread_mutex.c:163 > #1 0x0000000a4b769d9c in _rthread_cond_timedwait (cond=<optimized out>, > mutexp=0x9c8e0dd98, abs=0xc) at rthread_cond.c:121 > (gdb) q > oracle$ dmesg > console is /virtual-devices@100/console@1 > Copyright (c) 1982, 1986, 1989, 1991, 1993 > The Regents of the University of California. All rights reserved. > Copyright (c) 1995-2023 OpenBSD. All rights reserved. https://www.OpenBSD.org > > OpenBSD 7.3-current (GENERIC.MP) #1857: Sat Aug 12 15:26:19 MDT 2023 > dera...@sparc64.openbsd.org:/usr/src/sys/arch/sparc64/compile/GENERIC.MP > real mem = 16642998272 (15872MB) > avail mem = 16320323584 (15564MB) > random: good seed from bootblocks > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root: SPARC T4-1 > cpu0 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu1 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu2 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu3 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu4 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu5 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu6 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu7 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu8 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu9 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu10 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu11 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu12 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu13 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu14 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu15 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu16 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu17 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu18 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu19 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu20 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu21 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu22 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu23 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu24 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu25 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu26 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu27 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu28 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu29 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu30 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu31 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu32 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu33 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu34 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu35 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu36 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu37 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu38 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu39 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu40 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu41 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu42 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu43 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu44 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu45 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu46 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu47 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu48 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu49 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu50 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu51 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu52 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu53 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu54 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu55 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu56 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu57 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu58 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu59 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu60 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu61 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu62 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > cpu63 at mainbus0: SPARC-T4 (rev 0.0) @ 2847.862 MHz > "reboot-memory" at mainbus0 not configured > vbus0 at mainbus0 > "flashprom" at vbus0 not configured > "tpm" at vbus0 not configured > cbus0 at vbus0 > vldc0 at cbus0 > vldcp0 at vldc0 chan 0x0: ivec 0x0, 0x1 channel "hvctl" > "ldom-primary" at vldc0 chan 0x1 not configured > "fmactl" at vldc0 chan 0x3 not configured > vldc1 at cbus0 > "ldmfma" at vldc1 chan 0x4 not configured > vldc2 at cbus0 > "spfma" at vldc2 chan 0x5 not configured > vldc3 at cbus0 > vldcp1 at vldc3 chan 0x14: ivec 0x28, 0x29 channel "spds" > "sunvts" at vldc3 chan 0x6 not configured > "sunmc" at vldc3 chan 0x7 not configured > "explorer" at vldc3 chan 0x8 not configured > "flashupdate" at vldc3 chan 0x9 not configured > "ipmi" at vldc3 chan 0xb not configured > "virtual-domain-service" at cbus0 not configured > vrng0 at vbus0 > vcons0 at vbus0: ivec 0x8011: console > vrtc0 at vbus0 > vpci0 at mainbus0: bus 0 to 18, dvma map 80000000-ffffffff > pci0 at vpci0 > ppb0 at pci0 dev 1 function 0 "Sun SPARC-T3/T4 PCIE" rev 0x01 > pci1 at ppb0 bus 1 > ppb1 at pci1 dev 0 function 0 "IDT 89HPES48H12G2" rev 0x02 > pci2 at ppb1 bus 2 > ppb2 at pci2 dev 0 function 0 "IDT 89HPES48H12G2" rev 0x02: msi > pci3 at ppb2 bus 3 > ppb3 at pci2 dev 4 function 0 "IDT 89HPES48H12G2" rev 0x02 > pci4 at ppb3 bus 4 > mpii0 at pci4 dev 0 function 0 "Symbios Logic SAS2008" rev 0x03: msi > mpii0: RF On-Board, firmware 9.5.0.0 IR, MPI 2.0 > scsibus1 at mpii0: 834 targets > ppb4 at pci2 dev 6 function 0 "IDT 89HPES48H12G2" rev 0x02: msi > pci5 at ppb4 bus 5 > ppb5 at pci2 dev 8 function 0 "IDT 89HPES48H12G2" rev 0x02: msi > pci6 at ppb5 bus 6 > ppb6 at pci0 dev 2 function 0 "Sun SPARC-T3/T4 PCIE" rev 0x01 > pci7 at ppb6 bus 7 > ppb7 at pci7 dev 0 function 0 "IDT 89HPES64H16G2" rev 0x02 > pci8 at ppb7 bus 8 > ppb8 at pci8 dev 0 function 0 "IDT 89HPES64H16G2" rev 0x02 > pci9 at ppb8 bus 9 > ppb9 at pci9 dev 0 function 0 "ASPEED Technology AST1150 PCI" rev 0x02 > pci10 at ppb9 bus 10 > "ASPEED Technology AST2000" rev 0x10 at pci10 dev 0 function 0 not configured > ppb10 at pci8 dev 4 function 0 "IDT 89HPES64H16G2" rev 0x02 > pci11 at ppb10 bus 11 > mpii1 at pci11 dev 0 function 0 "Symbios Logic SAS2008" rev 0x03: msi > mpii1: RF On-Board, firmware 9.5.0.0 IR, MPI 2.0 > scsibus2 at mpii1: 834 targets > ppb11 at pci8 dev 6 function 0 "IDT 89HPES64H16G2" rev 0x02 > pci12 at ppb11 bus 12 > em0 at pci12 dev 0 function 0 "Intel 82576" rev 0x01: msi, address > 00:10:e0:70:d6:0a > em1 at pci12 dev 0 function 1 "Intel 82576" rev 0x01: msi, address > 00:10:e0:70:d6:0b > ppb12 at pci8 dev 7 function 0 "IDT 89HPES64H16G2" rev 0x02 > pci13 at ppb12 bus 13 > em2 at pci13 dev 0 function 0 "Intel 82576" rev 0x01: msi, address > 00:10:e0:70:d6:0c > em3 at pci13 dev 0 function 1 "Intel 82576" rev 0x01: msi, address > 00:10:e0:70:d6:0d > ppb13 at pci8 dev 8 function 0 "IDT 89HPES64H16G2" rev 0x02: msi > pci14 at ppb13 bus 14 > ppb14 at pci8 dev 10 function 0 "IDT 89HPES64H16G2" rev 0x02: msi > pci15 at ppb14 bus 15 > ppb15 at pci8 dev 12 function 0 "IDT 89HPES64H16G2" rev 0x02: msi > pci16 at ppb15 bus 16 > ppb16 at pci8 dev 15 function 0 "IDT 89HPES64H16G2" rev 0x02 > pci17 at ppb16 bus 17 > ppb17 at pci17 dev 0 function 0 "PLX PEX 8112" rev 0xaa > pci18 at ppb17 bus 18 > ohci0 at pci18 dev 0 function 0 "NEC USB" rev 0x43: ivec 0x2, version 1.0 > ohci1 at pci18 dev 0 function 1 "NEC USB" rev 0x43: ivec 0x3, version 1.0 > ehci0 at pci18 dev 0 function 2 "NEC USB" rev 0x04: ivec 0x4 > usb0 at ehci0: USB revision 2.0 > uhub0 at usb0 configuration 1 interface 0 "NEC EHCI root hub" rev 2.00/1.00 > addr 1 > usb1 at ohci0: USB revision 1.0 > uhub1 at usb1 configuration 1 interface 0 "NEC OHCI root hub" rev 1.00/1.00 > addr 1 > usb2 at ohci1: USB revision 1.0 > uhub2 at usb2 configuration 1 interface 0 "NEC OHCI root hub" rev 1.00/1.00 > addr 1 > "niu" at mainbus0 not configured > "pci-performance-counters" at mainbus0 not configured > cd0 at scsibus2 targ 8 lun 0: <TEAC, DV-W28S-B, AT11> removable > sd0 at scsibus1 targ 2 lun 0: <HITACHI, H103030SCSUN300G, A2A8> > naa.5000cca00a598d00 > sd0: 286102MB, 512 bytes/sector, 585937500 sectors > sd1 at scsibus1 targ 5 lun 0: <ATA, Samsung SSD 860, 2B6Q> > naa.5002538e00235f2e > sd1: 488386MB, 512 bytes/sector, 1000215216 sectors > sd2 at scsibus1 targ 3 lun 0: <ATA, Samsung SSD 860, 2B6Q> > naa.5002538e00235f32 > sd2: 488386MB, 512 bytes/sector, 1000215216 sectors > uhub3 at uhub0 port 2 configuration 1 interface 0 "Cypress Semiconductor USB2 > Hub" rev 2.00/0.0b addr 2 > uhub4 at uhub3 port 3 configuration 1 interface 0 "American Megatrends Inc. > Generic Hub" rev 2.00/1.00 addr 3 > umass0 at uhub4 port 2 configuration 1 interface 0 "American Megatrends Inc. > Virtual Cdrom Device" rev 2.00/1.00 addr 4 > umass0: using SCSI over Bulk-Only > scsibus3 at umass0: 2 targets, initiator 0 > cd1 at scsibus3 targ 1 lun 0: <AMI, Virtual CDROM, 1.00> removable > cdce0 at uhub4 port 3 configuration 2 interface 0 "SunMicro Virtual Eth > Device" rev 2.00/1.00 addr 5 > cdce0: address 02:21:28:57:47:17 > uhidev0 at uhub3 port 4 configuration 1 interface 0 "American Megatrends Inc. > Virtual Keyboard and Mouse" rev 1.10/1.00 addr 6 > uhidev0: iclass 3/1 > ukbd0 at uhidev0: 8 variable keys, 6 key codes > wskbd0 at ukbd0 mux 1 > uhidev1 at uhub3 port 4 configuration 1 interface 1 "American Megatrends Inc. > Virtual Keyboard and Mouse" rev 1.10/1.00 addr 6 > uhidev1: iclass 3/1 > ums0 at uhidev1: 3 buttons > wsmouse0 at ums0 mux 0 > uhub5 at uhub0 port 4 configuration 1 interface 0 "Cypress Semiconductor USB2 > Hub" rev 2.00/0.0b addr 7 > vscsi0 at root > scsibus4 at vscsi0: 256 targets > softraid0 at root > scsibus5 at softraid0: 256 targets > bootpath: /pci@400,0/pci@1,0/pci@0,0/pci@4,0/scsi@0,0/disk@5002538e00235f32,0 > root on sd2a (042ec5df05da4280.a) swap on sd2b dump on sd2b > umass1 at uhub5 port 2 configuration 1 interface 0 "16G SLC CHIPFANCIER" rev > 2.10/0.01 addr 8 > umass1: using SCSI over Bulk-Only > scsibus6 at umass1: 2 targets, initiator 0 > sd3 at scsibus6 targ 1 lun 0: <16G SLC, CHIPFANCIER, 1.00> removable > serial.1f750903300315122173 > sd3: 15253MB, 512 bytes/sector, 31238389 sectors >