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
> 


Reply via email to