This port seems to be already most progressing non-x86 platform port for now. I started to implement libroot.so
architecture-specific parts that a still stubs for all architectures except x86.
libroot.so
initialization passes, but it currently crash in initialization of libstdc++.so.6.0.25
. Crash is at following position (argument 8 seems to be NULL and it is dereferenced). 3rd party libraries are annoying. Also it is compiled with -fomit-frame-pointer
that breaks stack trace.
<libstdc++.so.6.0.25> _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastElNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE
Log:
arch_thread_init_kthread_stack(0x000000008129b400(launch_daemon), 0x0000000080b2d000, 0x0000000080b31fb0, <kernel_riscv64> _ZL19common_thread_entryPv + 0, 0x0000000080b31fb0)
arch_thread_init_tls(0x000000008129b400(launch_daemon))
thread->user_local_storage: 0xffffffed13a66000)
arch_thread_enter_uspace(0x000000008129b400(launch_daemon), 0xfffffff214c56e24, 0xffffffed13a66200, 0xffffffe99170e000)
sscratch: 0x8129b780, 0x8129b780
runtime_loader entry point
TLS: 0xffffffed13a66000
image->regions[1]: 31000, 345c8
image->regions[1]: 2b8178, 2e5038
image->regions[1]: 31000, 331b0
image->regions[2]: 31000, 36d50
image->regions[1]: 5b5a0, 5fa18
image->regions[1]: 160650, 16ca08
image->regions[2]: 160650, 168378
image->regions[1]: de000, eb4c8
image->regions[2]: de000, 122480
image->regions[1]: 10000, 103e0
image->regions[1]: 18807b8, 1880928
image->regions[1]: 219448, 22d708
image->regions[1]: e010, f380
image->regions[1]: 2c000, 2db08
image->regions[2]: 2c000, 5de18
image->regions[1]: 160578, 174088
image->regions[1]: 1b000, 1b4a0
image->regions[1]: 5000, 5468
unhandled relocation type R_RISCV_TLS_DTPMOD64
Last message repeated 2 times.
unhandled relocation type R_RISCV_TLS_DTPREL64
unhandled relocation type R_RISCV_TLS_DTPMOD64
unhandled relocation type R_RISCV_TLS_DTPREL64
+init: libgcc_s.so.1
(1)
(2)
(3)
(4)
-init: libgcc_s.so.1
+init: libroot.so
(1)
(2)
init_array[0]: 0xfffffff8fe470136
init_array[1]: 0xfffffff8fe470100
init_array[2]: 0xfffffff8fe4701d0
init_array[3]: 0xfffffff8fe47019a
init_array[4]: 0xfffffff8fe470164
init_array[5]: 0xfffffff8fe470206
init_array[6]: 0xfffffff8fe4702ac
(3)
(4)
-init: libroot.so
+init: libstdc++.so.6
(1)
(2)
init_array[0]: 0xffffffe358ed8bac
init_array[1]: 0xffffffe358ed8c20
init_array[2]: 0xffffffe358ed8c92
init_array[3]: 0xffffffe358ed8dbe
init_array[4]: 0xffffffe358ed8e8e
init_array[5]: 0xffffffe358ed8ece
init_array[6]: 0xffffffe358ed8f70
init_array[7]: 0xffffffe358ed9012
init_array[8]: 0xffffffe358ed9104
(3)
(4)
-init: libstdc++.so.6
+init: libicudata.so.57
(1)
(2)
(3)
(4)
-init: libicudata.so.57
+init: libicuuc.so.57
(1)
(2)
(3)
(4)
-init: libicuuc.so.57
+init: libicui18n.so.57
(1)
(2)
init_array[0]: 0xffffffc4c9c44760
(3)
(4)
-init: libicui18n.so.57
+init: libicuio.so.57
(1)
(2)
(3)
(4)
-init: libicuio.so.57
+init: libicutu.so.57
(1)
(2)
init_array[0]: 0xfffffff2088ec310
vm_soft_fault: va 0x0 not covered by area in address space
vm_page_fault: vm_soft_fault returned error 'Bad address' on fault at 0x18, ip 0xffffffe358edc8ec, write 0, user 1, thread 0x92
PANIC: user_debug_exception_occurred(2, 11)
Welcome to Kernel Debugging Land...
Thread 146 "launch_daemon" running on CPU 0
Stack:
FP: 0x80b315a0, PC: <kernel_riscv64> _ZL20kernel_debugger_loopPKcS0_Pvi + 243
FP: 0x80b31610, PC: <kernel_riscv64> _ZL24kernel_debugger_internalPKcS0_Pvi + 131
FP: 0x80b31650, PC: <kernel_riscv64> panic + 93
FP: 0x80b316f0, PC: <kernel_riscv64> user_debug_exception_occurred + 31
FP: 0x80b317e0, PC: <kernel_riscv64> vm_page_fault + 405
FP: 0x80b318c0, PC: <kernel_riscv64> STrap + 539
FP: 0x80b319c0, PC: <kernel_riscv64> SVecU + 109
FP: 0xffffffe358fb2468, PC: <libstdc++.so.6.0.25_seg0ro> 0x9d8eb
FP: 0x43, PC: 0xffffffffffffffff
kdebug>
I feel that it is easier to throw away ICU than investigating why it crash.
I removed ICU dependency from libbe.so
, but crash seems to be the same. It seems to crash when calling constructor of global variable std::__ioinit
.
UPDATE: I found that std::__ioinit
is inserted by #include <iostream>
. Deleting #include <iostream>
from libbe.so
code fixes issue. It seems to be never actually used.
arch_thread_init_kthread_stack(0x000000008129b400(launch_daemon), 0x0000000080b2d000, 0x0000000080b31fb0, <kernel_riscv64> _ZL19common_thread_entryPv + 0, 0x0000000080b31fb0)
arch_thread_init_tls(0x000000008129b400(launch_daemon))
thread->user_local_storage: 0xffffffed13a66000)
arch_thread_enter_uspace(0x000000008129b400(launch_daemon), 0xfffffff214c56e24, 0xffffffed13a66200, 0xffffffe99170e000)
sscratch: 0x8129b780, 0x8129b780
runtime_loader entry point
TLS: 0xffffffed13a66000
image->regions[1]: 31000, 345c8
image->regions[1]: 2d7000, 303730
image->regions[1]: 31000, 331b0
image->regions[2]: 31000, 36d50
image->regions[1]: 5b5a0, 5fa18
image->regions[1]: 160650, 16ca08
image->regions[2]: 160650, 168378
image->regions[1]: de000, eb4c8
image->regions[2]: de000, 122480
image->regions[1]: 10000, 103e0
image->regions[1]: 1b000, 1b4a0
image->regions[1]: 5000, 5468
image->regions[1]: 18807b8, 1880928
image->regions[1]: 219448, 22d708
image->regions[1]: e010, f380
image->regions[1]: 2c000, 2db08
image->regions[2]: 2c000, 5de18
image->regions[1]: 160578, 174088
unhandled relocation type R_RISCV_TLS_DTPMOD64
Last message repeated 2 times.
unhandled relocation type R_RISCV_TLS_DTPREL64
unhandled relocation type R_RISCV_TLS_DTPMOD64
unhandled relocation type R_RISCV_TLS_DTPREL64
+init: libgcc_s.so.1
(1)
(2)
(3)
(4)
-init: libgcc_s.so.1
+init: libroot.so
(1)
(2)
init_array[0]: 0xfffffff8fe470136
init_array[1]: 0xfffffff8fe470100
init_array[2]: 0xfffffff8fe4701d0
init_array[3]: 0xfffffff8fe47019a
init_array[4]: 0xfffffff8fe470164
init_array[5]: 0xfffffff8fe470206
init_array[6]: 0xfffffff8fe4702ac
(3)
(4)
-init: libroot.so
+init: libstdc++.so.6
(1)
(2)
init_array[0]: 0xffffffe3df587bac
init_array[1]: 0xffffffe3df587c20
init_array[2]: 0xffffffe3df587c92
init_array[3]: 0xffffffe3df587dbe
init_array[4]: 0xffffffe3df587e8e
init_array[5]: 0xffffffe3df587ece
init_array[6]: 0xffffffe3df587f70
init_array[7]: 0xffffffe3df588012
init_array[8]: 0xffffffe3df588104
(3)
(4)
-init: libstdc++.so.6
+init: libz.so.1
(1)
(2)
(3)
(4)
-init: libz.so.1
+init: libbe.so
(1)
(2)
init_array[0]: 0xffffffe6b1a7743a
init_array[1]: 0xffffffe6b1a77404
init_array[2]: 0xffffffe6b1a773c6
init_array[3]: 0xffffffe6b1a77356
init_array[4]: 0xffffffe6b1a77620
init_array[5]: 0xffffffe6b1a775b2
init_array[6]: 0xffffffe6b1a77580
init_array[7]: 0xffffffe6b1a7754a
vm_soft_fault: va 0x0 not covered by area in address space
vm_page_fault: vm_soft_fault returned error 'Bad address' on fault at 0x18, ip 0xffffffe3df58b8ec, write 0, user 1, thread 0x92
PANIC: user_debug_exception_occurred(2, 11)
Welcome to Kernel Debugging Land...
Thread 146 "launch_daemon" running on CPU 0
Stack:
FP: 0x80b315a0, PC: <kernel_riscv64> _ZL20kernel_debugger_loopPKcS0_Pvi + 243
FP: 0x80b31610, PC: <kernel_riscv64> _ZL24kernel_debugger_internalPKcS0_Pvi + 131
FP: 0x80b31650, PC: <kernel_riscv64> panic + 93
FP: 0x80b316f0, PC: <kernel_riscv64> user_debug_exception_occurred + 31
FP: 0x80b317e0, PC: <kernel_riscv64> vm_page_fault + 405
FP: 0x80b318c0, PC: <kernel_riscv64> STrap + 539
FP: 0x80b319c0, PC: <kernel_riscv64> SVecU + 109
FP: 0xffffffe3df661468, PC: <libstdc++.so.6.0.25_seg0ro> 0x9d8eb
FP: 0x43, PC: 0xffffffffffffffff
Dependencies are loaded and initalized. launch_daemon
entry point is called. Something is broken then launch_daemon
created new thread.
UPDATE: seems to unrelated to threads, someone is attempting to execute heap memory.
arch_thread_init_kthread_stack(0x000000008129b400(launch_daemon), 0x0000000080b2d000, 0x0000000080b31fb0, <kernel_riscv64> _ZL19common_thread_entryPv + 0, 0x0000000080b31fb0)
arch_thread_init_tls(0x000000008129b400(launch_daemon))
thread->user_local_storage: 0xffffffed13a66000)
arch_thread_enter_uspace(0x000000008129b400(launch_daemon), 0xfffffff214c56e24, 0xffffffed13a66200, 0xffffffe99170e000)
sscratch: 0x8129b780, 0x8129b780
runtime_loader entry point
TLS: 0xffffffed13a66000
image->regions[1]: 31000, 345c8
image->regions[1]: 2d70d8, 3037c0
image->regions[1]: 31000, 331b0
image->regions[2]: 31000, 36d50
image->regions[1]: 600f0, 644e8
image->regions[1]: 160650, 16ca08
image->regions[2]: 160650, 168378
image->regions[1]: de000, eb4c8
image->regions[2]: de000, 122480
image->regions[1]: 10000, 103e0
image->regions[1]: 1b000, 1b4a0
image->regions[1]: 6428, 6890
unhandled relocation type R_RISCV_TLS_DTPMOD64
Last message repeated 2 times.
unhandled relocation type R_RISCV_TLS_DTPREL64
unhandled relocation type R_RISCV_TLS_DTPMOD64
unhandled relocation type R_RISCV_TLS_DTPREL64
INIT: launch_daemon started
+init: libgcc_s.so.1
(1)
(2)
(3)
(4)
-init: libgcc_s.so.1
+init: libroot.so
(1)
(2)
init_array[0]: 0xfffffffe01b7c136
init_array[1]: 0xfffffffe01b7c100
init_array[2]: 0xfffffffe01b7c1d0
init_array[3]: 0xfffffffe01b7c19a
init_array[4]: 0xfffffffe01b7c164
init_array[5]: 0xfffffffe01b7c206
init_array[6]: 0xfffffffe01b7c2ac
(3)
(4)
-init: libroot.so
+init: libstdc++.so.6
(1)
(2)
init_array[0]: 0xffffffe3df587bac
init_array[1]: 0xffffffe3df587c20
init_array[2]: 0xffffffe3df587c92
init_array[3]: 0xffffffe3df587dbe
init_array[4]: 0xffffffe3df587e8e
init_array[5]: 0xffffffe3df587ece
init_array[6]: 0xffffffe3df587f70
init_array[7]: 0xffffffe3df588012
init_array[8]: 0xffffffe3df588104
(3)
(4)
-init: libstdc++.so.6
+init: libz.so.1
(1)
(2)
(3)
(4)
-init: libz.so.1
+init: libbe.so
(1)
(2)
init_array[0]: 0xffffffe6b1a7729a
init_array[1]: 0xffffffe6b1a77264
init_array[2]: 0xffffffe6b1a77226
init_array[3]: 0xffffffe6b1a771b6
init_array[4]: 0xffffffe6b1a7744a
init_array[5]: 0xffffffe6b1a773dc
init_array[6]: 0xffffffe6b1a773aa
init_array[7]: 0xffffffe6b1a77374
init_array[8]: 0xffffffe6b1a77306
init_array[9]: 0xffffffe6b1a772d0
init_array[10]: 0xffffffe6b1a7749c
init_array[11]: 0xffffffe6b1a77466
init_array[12]: 0xffffffe6b1a774d2
(3)
(4)
-init: libbe.so
+init: libbsd.so
(1)
(2)
(3)
(4)
-init: libbsd.so
+init: libnetwork.so
(1)
(2)
init_array[0]: 0xffffffd2dc86fc90
(3)
(4)
-init: libnetwork.so
+init: libbnetapi.so
(1)
(2)
init_array[0]: 0xffffffd1dfbf4540
init_array[1]: 0xffffffd1dfbf45b8
init_array[2]: 0xffffffd1dfbf45ee
init_array[3]: 0xffffffd1dfbf4636
(3)
(4)
-init: libbnetapi.so
+init: _APP_
(1)
(2)
init_array[0]: 0xffffffe8d0f05214
init_array[1]: 0xffffffe8d0f0524c
init_array[2]: 0xffffffe8d0f05308
(3)
(4)
-init: _APP_
runtime_loader: call entry point
launch_daemon entry point
arch_thread_init_kthread_stack(0x000000008129c180(main worker), 0x000000008098a000, 0x000000008098efb0, <kernel_riscv64> _ZL19common_thread_entryPv + 0, 0x000000008098efb0)
load_driver_settings("/safemode/")
load_driver_settings("kernel")
instruction fetch attempted on execute-protected area 0x175 at 0xfffffff72151b000
vm_page_fault: vm_soft_fault returned error 'Permission denied' on fault at 0xfffffff72151b0c8, ip 0xfffffff72151b0c8, write 0, user 1, thread 0x92
PANIC: user_debug_exception_occurred(2, 11)
Welcome to Kernel Debugging Land...
Thread 146 "launch_daemon" running on CPU 0
Stack:
FP: 0x80b315a0, PC: <kernel_riscv64> _ZL20kernel_debugger_loopPKcS0_Pvi + 243
FP: 0x80b31610, PC: <kernel_riscv64> _ZL24kernel_debugger_internalPKcS0_Pvi + 131
FP: 0x80b31650, PC: <kernel_riscv64> panic + 93
FP: 0x80b316f0, PC: <kernel_riscv64> user_debug_exception_occurred + 31
FP: 0x80b317e0, PC: <kernel_riscv64> vm_page_fault + 405
FP: 0x80b318c0, PC: <kernel_riscv64> STrap + 539
FP: 0x80b319c0, PC: <kernel_riscv64> SVecU + 109
FP: 0x0, PC: <heap> 0x170c7
I solved mystery with strtoull()
. It was another miscompilation caused by version declaration (__asm__(".symver ...")
). In this case this is fstat()
. Currently .symver
directive should be never used because it cause disastrous results such as jumping to some random code locations and corrupting stack. Hopefully BeOS compatibility in RISC-V is not needed because BeOS was never run on RISC-V.
Userland symbol name resolving is working, but it is extremely slow (I use default kernel symbol name resolver).
Also after removing all .symver
that cause miscompilation, launch_daemon
is continiously executing without crashes and it now switching user threads. But I currently don’t know what it exactly doing, it supposed to enter idle loop bylocking on something, but it is continuously invoking syscalls.
I enabled generic user_memcpy()
etc. implementation found in arch/generic/user_memory.h
, it works perfectly and it allows to avoid recursive kernel crashes when displaying stack trace of corrupted stack.
STrap(exception uEcall)
sstatus: (ie: {u}, pie: {s}, spp: u, fs: 3, sum: 1)
sepc: <libroot.so> _kern_find_thread + 4
sie: {sExtern}
sip: {}
sscratch: 0x32, 0x8129b780
tp: 0x8129b400(launch_daemon)
trap level: 0x1
syscall 50(_kern_find_thread)
Stack:
FP: 0x80b318c0, PC: <kernel_riscv64> STrap + 1491
FP: 0x80b319c0, PC: <kernel_riscv64> SVecU + 109
FP: 0xffffffed13a655a0, PC: <libroot.so> _kern_find_thread + 3
FP: 0xffffffed13a655d0, PC: <libroot.so> realloc + 97
FP: 0xffffffed13a65600, PC: <libbe.so> _ZN7BString7_ResizeEi + 65
FP: 0xffffffed13a65620, PC: <libbe.so> _ZN7BString13_MakeWritableEib + 103
FP: 0xffffffed13a65650, PC: <libbe.so> _ZN7BString9_DoAppendEPKci + 51
FP: 0xffffffed13a65670, PC: <libbe.so> _ZN7BStringpLEPKc + 53
FP: 0xffffffed13a65720, PC: <libbe.so> _ZN8BPrivate14DefaultCatalog25ReadFromStandardLocationsEv + 167
FP: 0xffffffed13a65800, PC: <libbe.so> _ZN8BPrivate14DefaultCatalogC1ERK9entry_refPKcj + 327
FP: 0xffffffed13a65830, PC: <libbe.so> _ZN8BPrivate14DefaultCatalog11InstantiateERK9entry_refPKcj + 51
FP: 0xffffffed13a65970, PC: <libbe.so> _ZNK8BPrivate19MutableLocaleRoster11LoadCatalogERK9entry_refPKci + 213
FP: 0xffffffed13a659c0, PC: <libbe.so> _ZN8BCatalog5SetToERK9entry_refPKcj + 71
FP: 0xffffffed13a65ea0, PC: <libbe.so> _ZNK8BPrivate19MutableLocaleRoster17LoadSystemCatalogEP8BCatalog + 189
FP: 0xffffffed13a65f60, PC: </boot/system/runtime_loader> 0xb001
FP: 0xffffffed13a65fc0, PC: </boot/system/runtime_loader> 0xb783
FP: 0xffffffed13a66000, PC: </boot/system/runtime_loader> 0x11ef9
FP: 0x80b319f0, PC: <kernel_riscv64> arch_thread_enter_userspace + 161
FP: 0x80b31a30, PC: <kernel_riscv64> _ZL15enter_userspacePN7BKernel6ThreadEP24UserThreadEntryArguments + 67
FP: 0x80b31a90, PC: <kernel_riscv64> thread_enter_userspace_new_team + 53
FP: 0x80b31f80, PC: <kernel_riscv64> _ZL33team_create_thread_start_internalPv + 547
FP: 0x80b31f90, PC: <kernel_riscv64> _ZL24team_create_thread_startPv + 11
FP: 0x80b31fb0, PC: <kernel_riscv64> _ZL19common_thread_entryPv + 49
FP: 0x0, PC: <kernel_riscv64> arch_thread_entry + 3
app_server
is running! I am surprised. We are pretty close to get running desktop.
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x0000000081299480(app_server))
arch_thread_context_switch(0x0000000081299480(app_server), 0x0000000081299900(mount_server))
arch_thread_context_switch(0x0000000081299900(mount_server), 0x000000008129c180(main worker))
arch_thread_context_switch(0x000000008129c180(main worker), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
Last message repeated 2 times.
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x000000008129bd00(virtio notifier 1))
arch_thread_context_switch(0x000000008129bd00(virtio notifier 1), 0x000000008129c180(main worker))
arch_thread_context_switch(0x000000008129c180(main worker), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x000000008129bd00(virtio notifier 1))
arch_thread_context_switch(0x000000008129bd00(virtio notifier 1), 0x000000008129c180(main worker))
arch_thread_context_switch(0x000000008129c180(main worker), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x000000008129c180(main worker))
arch_thread_context_switch(0x000000008129c180(main worker), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x000000008129c180(main worker))
arch_vm_translation_map_create_map()
_map: 0x00000000812234c8
arch_thread_init_kthread_stack(0x0000000081299000(net_server), 0x0000000080750000, 0x0000000080754fb0, <kernel_riscv64> _ZL19common_thread_entryPv + 0, 0x0000000080754fb0)
arch_thread_context_switch(0x000000008129c180(main worker), 0x0000000081299000(net_server))
arch_thread_init_tls(0x0000000081299000(net_server))
thread->user_local_storage: 0xffffffdb373f3000)
arch_thread_enter_uspace(0x0000000081299000(net_server), 0xffffffdae6340e24, 0xffffffdb373f3200, 0xffffffff2f447000)
sscratch: 0x81299380, 0x81299380
runtime_loader entry point
TLS: 0xffffffdb373f3000
image->regions[1]: 17288, 18708
arch_thread_context_switch(0x0000000081299000(net_server), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
switch_sem_etc()
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x000000008129bd00(virtio notifier 1))
arch_thread_context_switch(0x000000008129bd00(virtio notifier 1), 0x0000000081299000(net_server))
image->regions[1]: 2d70d8, 3037c0
image->regions[1]: 33000, 351b0
image->regions[2]: 33000, 38d50
image->regions[1]: 600f0, 644e8
image->regions[1]: 160650, 16ca08
image->regions[2]: 160650, 168378
image->regions[1]: de000, eb550
image->regions[2]: de000, 122480
image->regions[1]: 10000, 103e0
image->regions[1]: 1b000, 1b4a0
image->regions[1]: 6428, 6890
unhandled relocation type R_RISCV_TLS_DTPMOD64
Last message repeated 2 times.
unhandled relocation type R_RISCV_TLS_DTPREL64
unhandled relocation type R_RISCV_TLS_DTPMOD64
unhandled relocation type R_RISCV_TLS_DTPREL64
arch_thread_context_switch(0x0000000081299000(net_server), 0x000000008129c180(main worker))
Worker::Process(): step
Worker::Run("x-vnd.haiku-package_daemon")
Job::_Launch("(null)")
arch_thread_context_switch(0x000000008129c180(main worker), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x0000000081299000(net_server))
+init: libgcc_s.so.1
(1)
(2)
(3)
(4)
-init: libgcc_s.so.1
+init: libroot.so
(1)
(2)
init_array[0]: 0xffffffecff8510a6
init_array[1]: 0xffffffecff851070
init_array[2]: 0xffffffecff851140
init_array[3]: 0xffffffecff85110a
init_array[4]: 0xffffffecff8510d4
init_array[5]: 0xffffffecff851176
init_array[6]: 0xffffffecff85121c
(3)
(4)
-init: libroot.so
+init: libstdc++.so.6
(1)
(2)
init_array[0]: 0xfffffff553678bac
init_array[1]: 0xfffffff553678c20
init_array[2]: 0xfffffff553678c92
init_array[3]: 0xfffffff553678dbe
init_array[4]: 0xfffffff553678e8e
init_array[5]: 0xfffffff553678ece
init_array[6]: 0xfffffff553678f70
init_array[7]: 0xfffffff553679012
init_array[8]: 0xfffffff553679104
(3)
(4)
-init: libstdc++.so.6
+init: libz.so.1
(1)
(2)
(3)
(4)
-init: libz.so.1
+init: libbe.so
arch_thread_context_switch(0x0000000081299000(net_server), 0x000000008129b400(launch_daemon))
arch_thread_context_switch(0x000000008129b400(launch_daemon), 0x000000008129c180(main worker))
arch_thread_context_switch(0x000000008129c180(main worker), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x000000008129bd00(virtio notifier 1))
arch_thread_context_switch(0x000000008129bd00(virtio notifier 1), 0x000000008129c180(main worker))
arch_thread_context_switch(0x000000008129c180(main worker), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x000000008129bd00(virtio notifier 1))
arch_thread_context_switch(0x000000008129bd00(virtio notifier 1), 0x0000000081299480(app_server))
image->regions[1]: 13e88, 14f28
arch_thread_context_switch(0x0000000081299480(app_server), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
switch_sem_etc()
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x000000008129bd00(virtio notifier 1))
arch_thread_context_switch(0x000000008129bd00(virtio notifier 1), 0x000000008129c180(main worker))
arch_thread_context_switch(0x000000008129c180(main worker), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x0000000081299480(app_server))
image->regions[1]: 2d70d8, 3037c0
image->regions[1]: 600f0, 644e8
arch_thread_context_switch(0x0000000081299480(app_server), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x000000008129c180(main worker))
arch_thread_context_switch(0x000000008129c180(main worker), 0x000000008129af80(virtio scheduler 1))
switch_sem_etc()
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x0000000081299900(mount_server))
vm_page_fault: vm_soft_fault returned error 'Bad address' on fault at 0x4c00314148504c40, ip 0xfffffff9fb083ec8, write 0, user 1, thread 0x97
PANIC: user_debug_exception_occurred(2, 11)
Welcome to Kernel Debugging Land...
Thread 151 "mount_server" running on CPU 0
Stack:
FP: 0x80a74500, PC: <kernel_riscv64> debug_call_with_fault_handler.localalias.7 + 121
FP: 0x80a74590, PC: <kernel_riscv64> _ZL20kernel_debugger_loopPKcS0_Pvi + 251
FP: 0x80a74600, PC: <kernel_riscv64> _ZL24kernel_debugger_internalPKcS0_Pvi + 131
FP: 0x80a74640, PC: <kernel_riscv64> panic + 93
FP: 0x80a746e0, PC: <kernel_riscv64> user_debug_exception_occurred + 31
FP: 0x80a747d0, PC: <kernel_riscv64> vm_page_fault + 421
FP: 0x80a748c0, PC: <kernel_riscv64> STrap + 587
FP: 0x80a749c0, PC: <kernel_riscv64> SVecU + 109
FP: 0xffffffd08d0d28e0, PC: </boot/system/runtime_loader> 0xeec7
FP: 0xffffffd08d0d2970, PC: </boot/system/runtime_loader> 0xf2d3
FP: 0xffffffd08d0d29b0, PC: </boot/system/runtime_loader> 0x1065b
FP: 0xffffffd08d0d3ed0, PC: </boot/system/runtime_loader> 0xce7b
FP: 0xffffffd08d0d3f60, PC: </boot/system/runtime_loader> 0xb3e1
FP: 0xffffffd08d0d3fc0, PC: </boot/system/runtime_loader> 0xb751
FP: 0xffffffd08d0d4000, PC: </boot/system/runtime_loader> 0x11ef9
FP: 0x80a749f0, PC: <kernel_riscv64> arch_thread_enter_userspace + 161
FP: 0x80a74a30, PC: <kernel_riscv64> _ZL15enter_userspacePN7BKernel6ThreadEP24UserThreadEntryArguments + 67
FP: 0x80a74a90, PC: <kernel_riscv64> thread_enter_userspace_new_team + 53
FP: 0x80a74f80, PC: <kernel_riscv64> _ZL33team_create_thread_start_internalPv + 547
FP: 0x80a74f90, PC: <kernel_riscv64> _ZL24team_create_thread_startPv + 11
FP: 0x80a74fb0, PC: <kernel_riscv64> _ZL19common_thread_entryPv + 49
FP: 0x0, PC: <kernel_riscv64> arch_thread_entry + 3
initial commands: areas
addr id base size protect lock name
0x0000000081012f00 1 0x0000003000000000 0x0000001000000000 10 1 physical map area
0x0000000081012e40 2 0x0000000081800000 0x0000000000280000 30 7 page structures
0x0000000081012d80 3 0x0000000081000000 0x0000000000800000 30 7 slab area
0x0000000081012cc0 4 0x0000000080146000 0x0000000000010000 30 7 _kernel args_
0x0000000081012c00 5 0x0000000080590000 0x000000000002b000 30 7 _kernel args_
0x0000000081012b40 6 0x00000000805e5000 0x0000000000041000 30 7 _kernel args_
0x0000000081012a80 7 0x0000000080666000 0x000000000002e000 30 7 _kernel args_
0x00000000810129c0 8 0x000000008072b000 0x0000000000009000 30 7 _kernel args_
0x0000000081012900 9 0x0000000080740000 0x0000000000010000 30 7 _kernel args_
0x0000000081012840 a 0x00000000807bb000 0x0000000000010000 30 7 _kernel args_
0x0000000081012780 b 0x0000000080800000 0x0000000000010000 30 7 _kernel args_
0x00000000810126c0 c 0x00000000808c6000 0x000000000000e000 30 7 _kernel args_
0x0000000081012600 d 0x00000000808e1000 0x000000000001c000 30 7 _kernel args_
0x0000000081012540 e 0x000000008097a000 0x0000000000010000 30 7 _kernel args_
0x0000000081012480 f 0x00000000809d7000 0x0000000000010000 30 7 _kernel args_
0x00000000810123c0 10 0x0000000080a2b000 0x0000000000010000 30 7 _kernel args_
0x0000000081012300 11 0x0000000080ac3000 0x0000000000010000 30 7 _kernel args_
0x0000000081012240 12 0x0000000080b1d000 0x0000000000010000 30 7 _kernel args_
0x0000000081012180 13 0x0000000080c0a000 0x0000000000010000 30 7 _kernel args_
0x00000000810120c0 14 0x0000000080c43000 0x0000000000010000 30 7 _kernel args_
0x0000000081012000 15 0x0000000080256000 0x0000000000165000 50 7 kernel_riscv64_text
0x0000000081015f08 16 0x00000000803bb000 0x0000000000052000 30 7 kernel_riscv64_data
0x0000000081018600 37 0x00000000809eb000 0x0000000000003000 50 7 virtio_mmio_text
0x0000000081018540 38 0x00000000809ee000 0x0000000000001000 30 7 virtio_mmio_data
0x0000000081018480 39 0x00000000809e7000 0x0000000000003000 50 7 virtio_block_text
0x00000000810183c0 3a 0x00000000809ea000 0x0000000000001000 30 7 virtio_block_data
0x000000008101b3c8 4f 0x0000000080919000 0x000000000000a000 50 7 pci_text
0x000000008101b308 50 0x0000000080923000 0x0000000000001000 30 7 pci_data
0x000000008101d300 65 0x0000000080791000 0x0000000000006000 50 7 fdt_text
0x000000008101d240 66 0x0000000080797000 0x0000000000001000 30 7 fdt_data
0x0000000081020b48 6f 0x00000000806c0000 0x0000000000032000 50 7 bfs_text
0x0000000081020a88 70 0x00000000806f2000 0x0000000000002000 30 7 bfs_data
0x0000000081020548 77 0x0000000080c53000 0x0000000000005000 30 7 idle thread 1 kstack
0x0000000081020488 79 0x00000000ccccc000 0x0000000000040000 0 7 uninitialized heap memory
0x00000000810203c8 7a 0x00000000deadb000 0x0000000000040000 0 7 freed heap memory
0x0000000081020308 7b 0x00000000ccd0c000 0x0000000000010000 30 2 kdebug heap
0x0000000081020248 7c 0x00000000ccd1c000 0x00000000001d5000 130 2 vesa frame buffer
0x0000000081020188 7d 0x00000000ccef1000 0x0000000000160000 30 2 sem_table
0x00000000810200c8 7e 0x00000000cd051000 0x0000000000008000 2030 2 kernel_commpage
0x0000000081020008 7f 0x00000000cd059000 0x0000000000005000 b0 2 undertaker_2_kstack
0x0000000081261f00 80 0x00000000cd05e000 0x0000000000005000 b0 2 kernel daemon_3_kstack
0x0000000081261e40 81 0x00000000cd063000 0x0000000000005000 b0 2 resource resizer_4_kstack
0x0000000081261d80 82 0x00000000cd068000 0x0000000000005000 b0 2 page scrubber_5_kstack
0x0000000081261cc0 83 0x00000000cd06d000 0x0000000000005000 b0 2 page writer_6_kstack
0x0000000081261c00 84 0x00000000cd072000 0x0000000000005000 b0 2 page daemon_7_kstack
0x0000000081261b40 85 0x00000000cd077000 0x0000000000005000 b0 2 object cache resizer_8_kstack
0x0000000081261a80 86 0x00000000cd07c000 0x0000000000005000 b0 2 low resource manager_9_kstack
0x00000000812619c0 87 0x00000000cd081000 0x0000000000005000 b0 2 dpc: normal priority_10_kstack
0x0000000081261900 88 0x00000000cd086000 0x0000000000005000 b0 2 dpc: high priority_11_kstack
0x0000000081261840 89 0x00000000cd08b000 0x0000000000005000 b0 2 dpc: real-time priority_12_ksta
0x0000000081261780 8a 0x00000000cd090000 0x0000000000005000 b0 2 block notifier/writer_13_kstack
0x0000000081261600 8c 0x00000000cd800000 0x0000000000800000 10 1 slab area
0x00000000812613c0 be 0x00000000cd09b000 0x0000000000001000 30 2 Virtio MMIO
0x0000000081261540 c8 0x00000000cd0a1000 0x0000000000001000 30 2 Virtio MMIO
0x0000000081261180 d2 0x00000000cd0a2000 0x0000000000001000 30 2 Virtio MMIO
0x0000000081261300 dc 0x00000000cd09c000 0x0000000000001000 30 2 Virtio MMIO
0x0000000081261480 e6 0x00000000cd09d000 0x0000000000001000 30 2 Virtio MMIO
0x0000000081261000 fc 0x00000000809a6000 0x0000000000005000 b0 2 media checker_112_kstack
0x0000000081018180 11a 0x00000000809b5000 0x0000000000004000 30 3 dma buffer
0x00000000810180c0 11b 0x00000000809ab000 0x0000000000004000 30 3 dma buffer
0x0000000081261240 11c 0x00000000cd0a3000 0x0000000000004000 30 3 dma buffer
0x00000000813bbe48 11d 0x00000000cd0a7000 0x0000000000004000 30 3 dma buffer
0x00000000813bbf08 11e 0x00000000cd0ab000 0x0000000000004000 30 3 dma buffer
0x00000000813bbd88 11f 0x00000000cd0af000 0x0000000000004000 30 3 dma buffer
0x00000000813bbcc8 120 0x00000000cd0b3000 0x0000000000004000 30 3 dma buffer
0x00000000813bbc08 121 0x00000000cd0b7000 0x0000000000004000 30 3 dma buffer
0x00000000813bbb48 122 0x00000000cd0bb000 0x0000000000004000 30 3 dma buffer
0x00000000813bba88 123 0x00000000cd0bf000 0x0000000000004000 30 3 dma buffer
0x00000000813bb9c8 124 0x00000000cd0c3000 0x0000000000004000 30 3 dma buffer
0x00000000813bb908 125 0x00000000cd0c7000 0x0000000000004000 30 3 dma buffer
0x00000000813bb848 126 0x00000000cd0cb000 0x0000000000004000 30 3 dma buffer
0x00000000813bb788 127 0x00000000cd0cf000 0x0000000000004000 30 3 dma buffer
0x00000000813bb6c8 128 0x00000000cd0d3000 0x0000000000004000 30 3 dma buffer
0x00000000813bb608 129 0x00000000cd0d7000 0x0000000000004000 30 3 dma buffer
0x00000000813bb548 12a 0x00000000cd0db000 0x0000000000004000 30 3 dma buffer
0x00000000813bb488 12b 0x00000000cd0df000 0x0000000000004000 30 3 dma buffer
0x00000000813bb3c8 12c 0x00000000cd0e3000 0x0000000000004000 30 3 dma buffer
0x00000000813bb308 12d 0x00000000cd0e7000 0x0000000000004000 30 3 dma buffer
0x00000000813bb248 12e 0x00000000cd0eb000 0x0000000000004000 30 3 dma buffer
0x00000000813bb188 12f 0x00000000cd0ef000 0x0000000000004000 30 3 dma buffer
0x00000000813bb0c8 130 0x00000000cd0f3000 0x0000000000004000 30 3 dma buffer
0x00000000813bb008 131 0x00000000cd0f7000 0x0000000000004000 30 3 dma buffer
0x0000000081499f00 132 0x00000000cd0fb000 0x0000000000004000 30 3 dma buffer
0x0000000081499e40 133 0x00000000cd0ff000 0x0000000000004000 30 3 dma buffer
0x0000000081499d80 134 0x00000000cd103000 0x0000000000004000 30 3 dma buffer
0x0000000081499cc0 135 0x00000000cd107000 0x0000000000004000 30 3 dma buffer
0x0000000081499c00 136 0x00000000cd10b000 0x0000000000004000 30 3 dma buffer
0x0000000081499b40 137 0x00000000cd10f000 0x0000000000004000 30 3 dma buffer
0x0000000081499a80 138 0x00000000cd113000 0x0000000000004000 30 3 dma buffer
0x00000000814999c0 139 0x00000000cd117000 0x0000000000004000 30 3 dma buffer
0x0000000081499900 13a 0x00000000cd11b000 0x0000000000005000 b0 2 virtio scheduler 1_142_kstack
0x0000000081499840 13b 0x00000000cd120000 0x0000000000005000 b0 2 virtio notifier 1_143_kstack
0x0000000081499780 13c 0x00000000cd125000 0x0000000000003000 30 3 VirtIO Queue
0x00000000814996c0 13d 0x00000000cd128000 0x0000000000005000 b0 2 bfs log flusher_144_kstack
0x0000000081499600 13f 0x00000000809af000 0x0000000000002000 50 2 console_text
0x0000000081499540 140 0x00000000809b1000 0x0000000000001000 30 2 console_data
0x0000000081499480 141 0x00000000cd09e000 0x0000000000001000 50 2 dprintf_text
0x00000000814993c0 142 0x00000000cd09f000 0x0000000000001000 30 2 dprintf_data
0x0000000081499300 143 0x00000000809b9000 0x0000000000001000 50 2 null_text
0x0000000081499240 144 0x00000000809ba000 0x0000000000001000 30 2 null_data
0x0000000081499180 145 0x0000000080a3b000 0x0000000000007000 50 2 tty_text
0x00000000814990c0 146 0x0000000080a42000 0x0000000000007000 30 2 tty_data
0x0000000081020f08 149 0x00000000806bd000 0x0000000000001000 50 2 zero_text
0x0000000081020d88 14a 0x00000000806be000 0x0000000000001000 30 2 zero_data
0x00000000813b10c8 154 0xffffffd9063d2000 0x0000000000004000 4033 2 user area
0x0000000081020e48 155 0x0000000080b2d000 0x0000000000005000 b0 2 launch_daemon_146_kstack
0x00000000813b1008 156 0xffffffed12a66000 0x0000000001001000 3b 2 launch_daemon_146_stack
0x0000000081219f00 157 0xffffffe99170e000 0x0000000000008000 6005 2 commpage
0x0000000081219d80 158 0xfffffff214c45000 0x000000000001c000 15 0 runtime_loader_seg0ro
0x0000000081219cc0 159 0xfffffff214c61000 0x0000000000002000 33 0 runtime_loader_seg1rw
0x0000000081219e40 15a 0xffffffc50dacb000 0x0000000000010000 33 0 rld heap
0x0000000081219c00 15b 0xffffffd37005f000 0x0000000000001000 133 0 _rld_debug_
0x0000000081219a80 15c 0xffffffe533ae7000 0x0000000000033000 15 0 launch_daemon_seg0ro
0x00000000812199c0 15d 0xffffffe533b1a000 0x0000000000004000 33 0 launch_daemon_seg1rw
0x0000000081219900 15e 0xffffffe4aa95a000 0x00000000002d7000 15 0 libbe.so_seg0ro
0x0000000081219840 15f 0xffffffe4aac31000 0x000000000002d000 33 0 libbe.so_seg1rw
0x0000000081219780 160 0xfffffffb9123b000 0x0000000000033000 15 0 libnetwork.so_seg0ro
0x00000000812196c0 161 0xfffffffb9126e000 0x0000000000003000 33 0 libnetwork.so_seg1rw
0x0000000081219600 162 0xfffffffb91271000 0x0000000000005000 33 0 libnetwork.so_seg2rw
0x0000000081219540 163 0xffffffd157048000 0x0000000000060000 15 0 libbnetapi.so_seg0ro
0x0000000081219480 164 0xffffffd1570a8000 0x0000000000005000 33 0 libbnetapi.so_seg1rw
0x00000000812193c0 165 0xffffffe3ac1fc000 0x0000000000160000 15 0 libstdc++.so.6.0.25_seg0ro
0x0000000081219300 166 0xffffffe3ac35c000 0x000000000000d000 33 0 libstdc++.so.6.0.25_seg1rw
0x0000000081219240 167 0xffffffe3ac369000 0x0000000000008000 33 0 libstdc++.so.6.0.25_seg2rw
0x0000000081219180 168 0xfffffff83edb4000 0x00000000000de000 15 0 libroot.so_seg0ro
0x00000000812190c0 169 0xfffffff83ee92000 0x000000000000e000 33 0 libroot.so_seg1rw
0x0000000081219000 16a 0xfffffff83eea0000 0x0000000000044000 33 0 libroot.so_seg2rw
0x0000000081216f08 16b 0xffffffec5bb9f000 0x0000000000010000 15 0 libgcc_s.so.1_seg0ro
0x0000000081216e48 16c 0xffffffec5bbaf000 0x0000000000001000 33 0 libgcc_s.so.1_seg1rw
0x0000000081216cc8 16d 0xfffffff956a6b000 0x000000000001b000 15 0 libz.so.1.2.11_seg0ro
0x0000000081216c08 16e 0xfffffff956a86000 0x0000000000001000 33 0 libz.so.1.2.11_seg1rw
0x0000000081216b48 16f 0xffffffe6388cb000 0x0000000000006000 15 0 libbsd.so_seg0ro
0x0000000081216a88 170 0xffffffe6388d1000 0x0000000000001000 33 0 libbsd.so_seg1rw
0x0000000081216d88 171 0xffffffd5071e3000 0x0000000000010000 33 0 rld heap
0x00000000812169c8 172 0xffffffd590b74000 0x0000000000010000 33 0 rld heap
0x0000000081216908 173 0xffffffd649c62000 0x0000000000018000 33 0 rld heap
0x0000000081216848 174 0xffffffd7c0c65000 0x0000000000018000 33 0 rld heap
0x0000000081216788 175 0xfffffff746786000 0x00000000000a0000 133 0 heap
0x0000000081020908 176 0x000000008098a000 0x0000000000005000 b0 2 main worker_147_kstack
0x0000000081216608 177 0xffffffe629a66000 0x0000000000045000 3b 2 main worker_147_stack
0x00000000810209c8 178 0x0000000080694000 0x0000000000005000 b0 2 worker_148_kstack
0x0000000081216488 179 0xffffffd0d3605000 0x0000000000045000 3b 2 worker_148_stack
0x0000000081020788 17a 0x000000008092d000 0x0000000000005000 b0 2 worker_149_kstack
0x0000000081216308 17b 0xffffffe80e02a000 0x0000000000045000 3b 2 worker_149_stack
0x00000000812160c8 17c 0xffffffeb7dd30000 0x0000000000004000 4033 2 user area
0x0000000081020848 17d 0x00000000806ab000 0x0000000000005000 b0 2 debug_server_150_kstack
0x0000000081216008 17e 0xfffffffcd1003000 0x0000000001001000 3b 2 debug_server_150_stack
0x0000000081219b40 17f 0xffffffea125e0000 0x0000000000008000 6005 2 commpage
0x000000008120ef00 180 0xffffffffebf38000 0x000000000001c000 15 0 runtime_loader_seg0ro
0x000000008120ee40 181 0xffffffffebf54000 0x0000000000002000 33 0 runtime_loader_seg1rw
0x000000008120ed80 182 0xffffffe835c86000 0x0000000000010000 33 0 rld heap
0x000000008120ecc0 183 0xffffffe9fe312000 0x0000000000001000 133 0 _rld_debug_
0x000000008120eb40 184 0xffffffe5e6a02000 0x0000000000011000 15 0 debug_server_seg0ro
0x000000008120ea80 185 0xffffffe5e6a13000 0x0000000000002000 33 0 debug_server_seg1rw
0x000000008120e9c0 186 0xffffffe21980d000 0x00000000002d7000 15 0 libbe.so_seg0ro
0x000000008120e900 187 0xffffffe219ae4000 0x000000000002d000 33 0 libbe.so_seg1rw
0x000000008120e840 188 0xffffffe826d07000 0x000000000000d000 15 0 libdebug.so_seg0ro
0x000000008120e6c0 189 0xffffffe826d14000 0x0000000000001000 33 0 libdebug.so_seg1rw
0x000000008120e540 18a 0xfffffff908e06000 0x0000000000004000 4033 2 user area
0x0000000081020608 18b 0x0000000080a70000 0x0000000000005000 b0 2 mount_server_151_kstack
0x000000008120e480 18c 0xffffffd08c0d4000 0x0000000001001000 3b 2 mount_server_151_stack
0x000000008120e3c0 18d 0xfffffff515404000 0x0000000000008000 6005 2 commpage
0x000000008120e240 18e 0xfffffff9fb075000 0x000000000001c000 15 0 runtime_loader_seg0ro
0x000000008120e180 18f 0xfffffff9fb091000 0x0000000000002000 33 0 runtime_loader_seg1rw
0x000000008120e300 190 0xffffffc0993a7000 0x0000000000010000 33 0 rld heap
0x000000008120e0c0 191 0xffffffc0d779e000 0x0000000000001000 133 0 _rld_debug_
0x000000008104c480 192 0xffffffff4dc70000 0x000000000000a000 1033 0 mount_server_seg0ro
0x000000008120af08 193 0xffffffff4dc7a000 0x0000000000001000 33 0 mount_server_seg1rw
0x000000008120ad88 194 0xfffffff9e0874000 0x0000000000160000 15 0 libstdc++.so.6.0.25_seg0ro
0x000000008120acc8 195 0xfffffff9e09d4000 0x000000000000d000 33 0 libstdc++.so.6.0.25_seg1rw
0x000000008120ac08 196 0xfffffff9e09e1000 0x0000000000008000 33 0 libstdc++.so.6.0.25_seg2rw
0x000000008120ab48 197 0xfffffff95fd03000 0x00000000000de000 15 0 libroot.so_seg0ro
0x000000008120aa88 198 0xfffffff95fde1000 0x000000000000e000 33 0 libroot.so_seg1rw
0x000000008120a9c8 199 0xfffffff95fdef000 0x0000000000044000 33 0 libroot.so_seg2rw
0x000000008120a908 19a 0xffffffe0e3961000 0x0000000000010000 15 0 libgcc_s.so.1_seg0ro
0x000000008120a848 19b 0xffffffe0e3971000 0x0000000000001000 33 0 libgcc_s.so.1_seg1rw
0x000000008120a788 19c 0xffffffca8664c000 0x000000000001b000 15 0 libz.so.1.2.11_seg0ro
0x000000008120a6c8 19d 0xffffffca86667000 0x0000000000001000 33 0 libz.so.1.2.11_seg1rw
0x000000008120ae48 19e 0xffffffe9ff356000 0x0000000000010000 33 0 rld heap
0x000000008120a608 19f 0xffffffea02b67000 0x0000000000018000 33 0 rld heap
0x000000008120a548 1a0 0xffffffea06462000 0x0000000000018000 33 0 rld heap
0x000000008120a308 1a1 0xfffffffae9ba1000 0x0000000000004000 4033 2 user area
0x00000000810206c8 1a2 0x0000000080c1a000 0x0000000000005000 b0 2 app_server_152_kstack
0x000000008120a248 1a3 0xfffffff5eb706000 0x0000000001001000 3b 2 app_server_152_stack
0x000000008120a188 1a4 0xffffffdd7832b000 0x0000000000008000 6005 2 commpage
0x000000008120a008 1a5 0xfffffff9dda8c000 0x000000000001c000 15 0 runtime_loader_seg0ro
0x000000008120e780 1a6 0xfffffff9ddaa8000 0x0000000000002000 33 0 runtime_loader_seg1rw
0x000000008120e000 1a7 0xffffffc98de84000 0x0000000000010000 33 0 rld heap
0x000000008120a0c8 1a8 0xffffffcd7dace000 0x0000000000001000 133 0 _rld_debug_
0x0000000081207e40 1a9 0xffffffdc59fff000 0x000000000015b000 1033 0 app_server_seg0ro
0x0000000081207d80 1aa 0xffffffdc5a15a000 0x000000000000b000 33 0 app_server_seg1rw
0x0000000081207c00 1ab 0xffffffee866ff000 0x00000000002d7000 1033 0 libbe.so_seg0ro
0x0000000081207b40 1ac 0xffffffee869d6000 0x000000000002d000 33 0 libbe.so_seg1rw
0x0000000081207cc0 1ad 0xffffffdc5a165000 0x0000000000009000 33 0 app_server_seg2rw
0x0000000081207a80 1ae 0xffffffce028f3000 0x0000000000188000 1033 0 libtracker.so_seg0ro
0x00000000812079c0 1af 0xffffffce02a7b000 0x0000000000019000 33 0 libtracker.so_seg1rw
0x0000000081207840 1b0 0xffffffcbc4665000 0x0000000000050000 133 0 heap
0x0000000081207780 1b1 0xffffffce02a94000 0x0000000000002000 33 0 libtracker.so_seg2rw
0x0000000081207600 1b2 0xfffffff5598ce000 0x0000000000004000 4033 2 user area
0x0000000081020c08 1b3 0x0000000080750000 0x0000000000005000 b0 2 net_server_153_kstack
0x0000000081207540 1b4 0xffffffdb363f3000 0x0000000001001000 3b 2 net_server_153_stack
0x0000000081207480 1b5 0xffffffff2f447000 0x0000000000008000 6005 2 commpage
0x0000000081207300 1b6 0xffffffdae632f000 0x000000000001c000 15 0 runtime_loader_seg0ro
0x0000000081207240 1b7 0xffffffdae634b000 0x0000000000002000 33 0 runtime_loader_seg1rw
0x00000000812073c0 1b8 0xffffffd5e4b95000 0x0000000000010000 33 0 rld heap
0x0000000081207180 1b9 0xffffffda44277000 0x0000000000001000 133 0 _rld_debug_
0x0000000081207000 1ba 0xffffffff06d09000 0x0000000000017000 15 0 net_server_seg0ro
0x0000000081204e48 1bb 0xffffffff06d20000 0x0000000000002000 33 0 net_server_seg1rw
0x0000000081204d88 1bc 0xfffffff05e97d000 0x00000000002d7000 15 0 libbe.so_seg0ro
0x0000000081204cc8 1bd 0xfffffff05ec54000 0x000000000002d000 33 0 libbe.so_seg1rw
0x0000000081204c08 1be 0xffffffd43c718000 0x0000000000033000 15 0 libnetwork.so_seg0ro
0x0000000081204b48 1bf 0xffffffd43c74b000 0x0000000000003000 33 0 libnetwork.so_seg1rw
0x0000000081204a88 1c0 0xffffffd43c74e000 0x0000000000005000 33 0 libnetwork.so_seg2rw
0x00000000812049c8 1c1 0xfffffff7a8b0f000 0x0000000000060000 15 0 libbnetapi.so_seg0ro
0x0000000081204908 1c2 0xfffffff7a8b6f000 0x0000000000005000 33 0 libbnetapi.so_seg1rw
0x0000000081204848 1c3 0xfffffff5535df000 0x0000000000160000 15 0 libstdc++.so.6.0.25_seg0ro
0x0000000081204788 1c4 0xfffffff55373f000 0x000000000000d000 33 0 libstdc++.so.6.0.25_seg1rw
0x00000000812046c8 1c5 0xfffffff55374c000 0x0000000000008000 33 0 libstdc++.so.6.0.25_seg2rw
0x0000000081204608 1c6 0xffffffecff81b000 0x00000000000de000 15 0 libroot.so_seg0ro
0x0000000081204548 1c7 0xffffffecff8f9000 0x000000000000e000 33 0 libroot.so_seg1rw
0x0000000081204488 1c8 0xffffffecff907000 0x0000000000044000 33 0 libroot.so_seg2rw
0x00000000812043c8 1c9 0xfffffffa94363000 0x0000000000010000 15 0 libgcc_s.so.1_seg0ro
0x0000000081204308 1ca 0xfffffffa94373000 0x0000000000001000 33 0 libgcc_s.so.1_seg1rw
0x0000000081204248 1cb 0xffffffe9ef9be000 0x000000000001b000 15 0 libz.so.1.2.11_seg0ro
0x0000000081204188 1cc 0xffffffe9ef9d9000 0x0000000000001000 33 0 libz.so.1.2.11_seg1rw
0x00000000812040c8 1cd 0xfffffffa7c3e9000 0x0000000000006000 15 0 libbsd.so_seg0ro
0x0000000081204008 1ce 0xfffffffa7c3ef000 0x0000000000001000 33 0 libbsd.so_seg1rw
0x00000000812070c0 1cf 0xffffffdac1325000 0x0000000000010000 33 0 rld heap
0x0000000081204f08 1d0 0xffffffdae274b000 0x0000000000010000 33 0 rld heap
0x000000008123af00 1d1 0xffffffdae2e9b000 0x0000000000018000 33 0 rld heap
0x000000008123ae40 1d2 0xffffffdae4367000 0x0000000000018000 33 0 rld heap
0x000000008123acc0 1d3 0xffffffc39a69d000 0x0000000000050000 133 0 heap
0x000000008123ab40 1d4 0xffffffdae575b000 0x0000000000013000 1033 0 libtranslation.so_seg0ro
0x000000008123aa80 1d5 0xffffffdae576e000 0x0000000000002000 33 0 libtranslation.so_seg1rw
0x000000008123a9c0 1d6 0xffffffd7c8046000 0x00000000002d7000 1033 0 libbe.so_seg0ro
0x000000008123a900 1d7 0xffffffd7c831d000 0x000000000002d000 33 0 libbe.so_seg1rw
0x000000008123a840 1d8 0xffffffccfa046000 0x0000000000060000 1033 0 libbnetapi.so_seg0ro
0x000000008123a780 1d9 0xffffffccfa0a6000 0x0000000000005000 33 0 libbnetapi.so_seg1rw
kdebug>
Such motivation!
Hm time to get some harware ;)… Realy Nice work…
app_server
communicating with registrar
:
arch_thread_context_switch(0x0000000081298700(roster), 0x0000000081299480(app_server))
tp: 0x81299480(app_server)
syscall 221(_kern_read_port_etc)
Stack:
FP: 0x80a018c0, PC: <kernel_riscv64> STrap + 1161
FP: 0x80a019c0, PC: <kernel_riscv64> SVecU + 109
FP: 0xffffffe450ab6910, PC: <libroot.so> _kern_read_port_etc + 3
FP: 0xffffffe450ab6920, PC: <libbe.so> _ZNK10BMessenger11SendMessageEP8BMessageS1_ll + 37
FP: 0xffffffe450ab6a60, PC: <libbe.so> _ZNK7BRoster16_IsAppRegisteredEPK9entry_refijPbP8app_info + 219
FP: 0xffffffe450ab6e00, PC: <libbe.so> _ZN12BApplication9_InitDataEPKcbPi + 941
FP: 0xffffffe450ab6e50, PC: <libbe.so> _ZN12BApplicationC2EPKcS1_ibPi + 69
FP: 0xffffffe450ab6e80, PC: <libbe.so> _ZN7BServerC2EPKcS1_ibPi + 23
FP: 0xffffffe450ab6f60, PC: <_APP_> _ZN9AppServerC2EPi + 47
FP: 0xffffffe450ab6f90, PC: <_APP_> main + 39
FP: 0xffffffe450ab6fc0, PC: <_APP_> _start + 55
FP: 0xffffffe450ab7000, PC: </boot/system/runtime_loader> 0x11f21
FP: 0x80a019f0, PC: <kernel_riscv64> arch_thread_enter_userspace + 161
FP: 0x80a01a30, PC: <kernel_riscv64> _ZL15enter_userspacePN7BKernel6ThreadEP24UserThreadEntryArguments + 67
FP: 0x80a01a90, PC: <kernel_riscv64> thread_enter_userspace_new_team + 53
FP: 0x80a01f80, PC: <kernel_riscv64> _ZL33team_create_thread_start_internalPv + 547
FP: 0x80a01f90, PC: <kernel_riscv64> _ZL24team_create_thread_startPv + 11
FP: 0x80a01fb0, PC: <kernel_riscv64> _ZL19common_thread_entryPv + 49
FP: 0x0, PC: <kernel_riscv64> arch_thread_entry + 3
arch_thread_context_switch(0x0000000081299480(app_server), 0x0000000081298700(roster))
tp: 0x81298700(roster)
syscall 221(_kern_read_port_etc)
Stack:
FP: 0x809938c0, PC: <kernel_riscv64> STrap + 1161
FP: 0x809939c0, PC: <kernel_riscv64> SVecU + 109
FP: 0xffffffe26e430aa0, PC: <libroot.so> _kern_read_port_etc + 3
FP: 0xffffffe26e430ad0, PC: <libbe.so> _ZN7BLooper19ReadMessageFromPortEl + 23
FP: 0xffffffe26e430b30, PC: <libbe.so> _ZN7BLooper11task_looperEv + 85
FP: 0xffffffe26e430b50, PC: <libbe.so> _ZN12BApplication3RunEv + 25
FP: 0xffffffe26e430f90, PC: <_APP_> main + 107
FP: 0xffffffe26e430fc0, PC: <_APP_> _start + 55
FP: 0xffffffe26e431000, PC: </boot/system/runtime_loader> 0x11f21
FP: 0x809939f0, PC: <kernel_riscv64> arch_thread_enter_userspace + 161
FP: 0x80993a30, PC: <kernel_riscv64> _ZL15enter_userspacePN7BKernel6ThreadEP24UserThreadEntryArguments + 67
FP: 0x80993a90, PC: <kernel_riscv64> thread_enter_userspace_new_team + 53
FP: 0x80993f80, PC: <kernel_riscv64> _ZL33team_create_thread_start_internalPv + 547
FP: 0x80993f90, PC: <kernel_riscv64> _ZL24team_create_thread_startPv + 11
FP: 0x80993fb0, PC: <kernel_riscv64> _ZL19common_thread_entryPv + 49
FP: 0x0, PC: <kernel_riscv64> arch_thread_entry + 3
arch_thread_context_switch(0x0000000081298700(roster), 0x0000000081299480(app_server))
tp: 0x81299480(app_server)
syscall 221(_kern_read_port_etc)
Stack:
FP: 0x80a018c0, PC: <kernel_riscv64> STrap + 1161
FP: 0x80a019c0, PC: <kernel_riscv64> SVecU + 109
FP: 0xffffffe450ab6900, PC: <libroot.so> _kern_read_port_etc + 3
FP: 0xffffffe450ab6910, PC: <libbe.so> _ZNK10BMessenger11SendMessageEP8BMessageS1_ll + 37
FP: 0xffffffe450ab6a60, PC: <libbe.so> _ZNK7BRoster15_AddApplicationEPKcPK9entry_refjiiibPjPi + 329
FP: 0xffffffe450ab6e00, PC: <libbe.so> _ZN12BApplication9_InitDataEPKcbPi + 997
FP: 0xffffffe450ab6e50, PC: <libbe.so> _ZN12BApplicationC2EPKcS1_ibPi + 69
FP: 0xffffffe450ab6e80, PC: <libbe.so> _ZN7BServerC2EPKcS1_ibPi + 23
FP: 0xffffffe450ab6f60, PC: <_APP_> _ZN9AppServerC2EPi + 47
FP: 0xffffffe450ab6f90, PC: <_APP_> main + 39
FP: 0xffffffe450ab6fc0, PC: <_APP_> _start + 55
FP: 0xffffffe450ab7000, PC: </boot/system/runtime_loader> 0x11f21
FP: 0x80a019f0, PC: <kernel_riscv64> arch_thread_enter_userspace + 161
FP: 0x80a01a30, PC: <kernel_riscv64> _ZL15enter_userspacePN7BKernel6ThreadEP24UserThreadEntryArguments + 67
FP: 0x80a01a90, PC: <kernel_riscv64> thread_enter_userspace_new_team + 53
FP: 0x80a01f80, PC: <kernel_riscv64> _ZL33team_create_thread_start_internalPv + 547
FP: 0x80a01f90, PC: <kernel_riscv64> _ZL24team_create_thread_startPv + 11
FP: 0x80a01fb0, PC: <kernel_riscv64> _ZL19common_thread_entryPv + 49
FP: 0x0, PC: <kernel_riscv64> arch_thread_entry + 3
arch_thread_context_switch(0x0000000081299480(app_server), 0x00000000803ea0b0(idle thread 1))
INIT: main: done... begin idle loop on cpu 0
PANIC: idle
Welcome to Kernel Debugging Land...
Thread 1 "idle thread 1" running on CPU 0
Stack:
FP: 0x80c57e60, PC: <kernel_riscv64> debug_call_with_fault_handler.localalias.7 + 121
FP: 0x80c57ef0, PC: <kernel_riscv64> _ZL20kernel_debugger_loopPKcS0_Pvi + 251
FP: 0x80c57f60, PC: <kernel_riscv64> _ZL24kernel_debugger_internalPKcS0_Pvi + 131
FP: 0x80c57fa0, PC: <kernel_riscv64> panic + 93
FP: 0x80c58000, PC: <kernel_riscv64> _start + 1201
FP: 0x80145f00, PC: 0x8000019f
FP: 0x80145f60, PC: 0x8002665f
FP: 0x80146000, PC: 0x800002dd
FP: 0x0, PC: 0x8000000d
initial commands: threads
thread id state wait for object cpu pri stack team name
0x00000000803ea0b0 1 running - 0 0 0x0000000080c53000 1 idle thread 1
0x000000008129f780 2 waiting cvar 0x00000000803ea008 - 15 0x00000000cd411000 1 undertaker
0x000000008129f300 3 waiting sem 6 - 5 0x00000000cd416000 1 kernel daemon
0x000000008129ee80 4 waiting sem 10 - 5 0x00000000cd41b000 1 resource resizer
0x000000008129ea00 5 zzz - 1 0x00000000cd420000 1 page scrubber
0x000000008129e580 6 waiting cvar 0x000000008040cb88 - 11 0x00000000cd425000 1 page writer
0x000000008129e100 7 waiting cvar 0x000000008040cb30 - 10 0x00000000cd42a000 1 page daemon
0x000000008129dc80 8 waiting cvar 0x000000008040c8e0 - 110 0x00000000cd42f000 1 object cache resizer
0x000000008129d800 9 waiting sem 26 - 5 0x00000000cd434000 1 low resource manager
0x000000008129d380 10 waiting cvar 0x00000000803e04d0 - 10 0x00000000cd439000 1 dpc: normal priority
0x000000008129cf00 11 waiting cvar 0x00000000803e0538 - 20 0x00000000cd43e000 1 dpc: high priority
0x000000008129ca80 12 waiting cvar 0x00000000803e0468 - 100 0x00000000cd443000 1 dpc: real-time priority
0x000000008129c600 13 waiting sem 39 - 5 0x00000000cd448000 1 block notifier/writer
0x000000008129b880 112 zzz - 10 0x00000000809a6000 1 media checker
0x000000008129af80 142 waiting cvar 0x00000000810215d8 - 12 0x00000000cd4d3000 1 virtio scheduler 1
0x000000008129bd00 143 waiting cvar 0x0000000081021638 - 12 0x00000000cd4d8000 1 virtio notifier 1
0x000000008129a200 144 waiting sem 570 - 10 0x00000000cd4e0000 1 bfs log flusher
0x0000000081299900 183 waiting sem 726 - 10 0x0000000080a70000 1 invalidate_loop
0x000000008129ab00 184 waiting sem 730 - 10 0x00000000806ab000 1 run_on_exit_loop
0x000000008129a680 282 waiting cvar 0x000000008107f590 - 10 0x0000000080c1a000 282 launch_daemon
0x000000008129c180 283 waiting sem 1145 - 10 0x000000008092d000 282 main worker
0x0000000081299d80 284 waiting sem 1145 - 10 0x0000000080699000 282 worker
0x000000008129b400 285 waiting sem 1145 - 10 0x000000008098a000 282 worker
0x0000000081299480 286 waiting cvar 0x000000008123d460 - 10 0x00000000809fd000 286 app_server
0x0000000081299000 287 zzz - 10 0x0000000080b2d000 287 mount_server
0x0000000081298b80 288 waiting cvar 0x000000008117fd18 - 10 0x0000000080c1f000 288 power_daemon
0x0000000081298700 289 waiting cvar 0x000000008117f098 - 11 0x000000008098f000 289 roster
0x0000000081298280 290 zzz - 11 0x0000000080a02000 289 message deliverer
0x0000000081297e00 291 waiting sem 1191 - 16 0x000000008079e000 289 timer_thread
0x0000000081297980 292 waiting cvar 0x000000008117fbd8 - 11 0x00000000807a3000 289 authentication manager
0x0000000081297500 293 waiting sem 1224 - 10 0x00000000807a8000 289 main_mime
0x0000000081297080 294 waiting sem 1209 - 15 0x0000000080a3b000 289 messaging command processor
0x0000000081296c00 295 zzz - 11 0x0000000080768000 289 create_app_meta_mime (s)
0x0000000081296780 296 waiting cvar 0x000000008117f958 - 20 0x0000000080beb000 286 DMT is here for you, eventually
kdebug>
Most stupid mistake rank no. 1.
I identified problem why libicu
is crashing at initialization. It was a mistake when popping trap frame, register s7
was loaded instead of a7
, causing trashing of function 8-th argument. It can happen from anywhere because code is memory mapped file dymanically loaded by page fault fandler.
Now hacks removing libicu dependency can be removed.
.macro PopTrapFrame
ld ra, 0*8(sp)
ld t6, 1*8(sp)
# ld sp, 2*8(sp) restore later
ld gp, 3*8(sp)
# ld tp, 4*8(sp)
ld t0, 5*8(sp)
ld t1, 6*8(sp)
ld t2, 7*8(sp)
ld t5, 8*8(sp)
ld s1, 9*8(sp)
ld a0, 10*8(sp)
ld a1, 11*8(sp)
ld a2, 12*8(sp)
ld a3, 13*8(sp)
ld a4, 14*8(sp)
ld a5, 15*8(sp)
ld a6, 16*8(sp)
ld s7, 17*8(sp) # !!! should be a7
ld s2, 18*8(sp)
ld s3, 19*8(sp)
ld s4, 20*8(sp)
ld s5, 21*8(sp)
ld s6, 22*8(sp)
ld s7, 23*8(sp)
ld s8, 24*8(sp)
ld s9, 25*8(sp)
ld s10, 26*8(sp)
ld s11, 27*8(sp)
ld t3, 28*8(sp)
ld t4, 29*8(sp)
ld fp, 30*8(sp)
ld sp, 2*8(sp)
.endm
app_server
tries to initalize graphics output. Probably something is wrong with kernel framebuffer driver.
arch_thread_context_switch(0x000000008129af80(virtio scheduler 1), 0x0000000081299480(app_server))
tp: 0x81299480(app_server)
syscall 245(_kern_debug_output)
Stack:
FP: 0x80a018c0, PC: <kernel_riscv64> STrap + 1161
FP: 0x80a019c0, PC: <kernel_riscv64> SVecU + 109
FP: 0xfffffffdc78fca90, PC: <libroot.so> _kern_debug_output + 3
FP: 0xfffffffdc78fcab0, PC: <libroot.so> debug_printf + 39
FP: 0xfffffffdc78fcba0, PC: <_APP_> _ZN7Desktop4InitEv + 603
FP: 0xfffffffdc78fcbe0, PC: <_APP_> _ZN9AppServer14_CreateDesktopEjPKc + 65
FP: 0xfffffffdc78fcc90, PC: <_APP_> _ZN9AppServer15MessageReceivedEP8BMessage + 265
FP: 0xfffffffdc78fcee0, PC: <libbe.so> _ZN12BApplication15DispatchMessageEP8BMessageP8BHandler + 427
FP: 0xfffffffdc78fcf40, PC: <libbe.so> _ZN7BLooper11task_looperEv + 423
FP: 0xfffffffdc78fcf60, PC: <libbe.so> _ZN12BApplication3RunEv + 25
FP: 0xfffffffdc78fcf90, PC: <_APP_> main + 67
FP: 0xfffffffdc78fcfc0, PC: <_APP_> _start + 55
FP: 0xfffffffdc78fd000, PC: </boot/system/runtime_loader> 0x11f21
FP: 0x80a019f0, PC: <kernel_riscv64> arch_thread_enter_userspace + 161
FP: 0x80a01a30, PC: <kernel_riscv64> _ZL15enter_userspacePN7BKernel6ThreadEP24UserThreadEntryArguments + 67
FP: 0x80a01a90, PC: <kernel_riscv64> thread_enter_userspace_new_team + 53
FP: 0x80a01f80, PC: <kernel_riscv64> _ZL33team_create_thread_start_internalPv + 547
FP: 0x80a01f90, PC: <kernel_riscv64> _ZL24team_create_thread_startPv + 11
FP: 0x80a01fb0, PC: <kernel_riscv64> _ZL19common_thread_entryPv + 49
FP: 0x0, PC: <kernel_riscv64> arch_thread_entry + 3
Could not initialize graphics output. Exiting.
Yeah! Desktop started! The first non-x86 Haiku desktop is running.
LaunchBox
was selected for first GUI application because other applications still have troubles.
This is simply amazing work! Hats off!
What an entertaining journey. Well done x512
I created stand-alone binary distribution so everyone can play with it. Just unpack and click Run.sh
to start. Distribution is 32 bit only. Currently it is not very useful because it have no keyboard or mouse driver yet, pointer is not moving.
Source code need cleanup before publishing, maybe I create a branch in that repo.
Now if RISC-V really hit off as hardware… Haiku would be in the front of developing it
Device tree in GUI. RISC-V port use new driver API and device manager.
We demand a uname -a output in Terminal