hitHuang opened a new pull request, #19593:
URL: https://github.com/apache/nuttx/pull/19593
## Summary
`CONFIG_ALLSYMS` doesn't even link under
`CONFIG_BUILD_PROTECTED`/`CONFIG_BUILD_KERNEL`: `g_allsyms`/`g_nallsyms` only
exist in the kernel image, but `symtab_allsyms.c` referencing them is built
into user-mode `libc.a` too. Once that's fixed and you actually try backtraces,
three more bugs show up: user-mode addresses get matched against unrelated
kernel symbols, symbol sizes are garbage under `CONFIG_SYMTAB_ORDEREDBYNAME`,
and a bunch of assembly-only entry points (exception/boot code) never resolve
to a name because they were never marked `STT_FUNC`. This PR fixes all four.
## Impact
Touches `libs/libc/symtab/symtab_allsyms.c` and a few risc-v assembly
boot/exception files. No new Kconfig, no API changes, nothing changes unless
`CONFIG_ALLSYMS=y`.
## Testing
All of the below is `rv-virt:knsh` with `CONFIG_ALLSYMS`,
`CONFIG_SYSTEM_DUMPSTACK`, `CONFIG_FRAME_POINTER`, and `CONFIG_SCHED_BACKTRACE`
turned on by hand, unless noted otherwise. Also checked on `pnsh`, and
regression-tested `nsh` to make sure nothing else broke.
### Problem 0: link failure under BUILD_PROTECTED/BUILD_KERNEL
`rv-virt:knsh`:
```
LD: /home/huang/workspace/nuttx-fork/apps/bin/init
riscv64-unknown-elf-ld -e _start --oformat elf32-littleriscv -e _start
-Bstatic -T/home/huang/workspace/nuttx-fork/apps/import/scripts/gnu-elf.ld
-L/home/huang/workspace/nuttx-fork/apps/import/libs -L
"/home/huang/workspace/toolchain/riscv64-unknown-elf-toolsuite-1.0.6/bin/../lib/gcc/riscv64-unknown-elf/13.2.0/rv32imafdc_zicsr/ilp32d"
/home/huang/workspace/nuttx-fork/apps/import/startup/crt0.o
nsh_main.c.home.huang.workspace.nuttx-fork.apps.system.nsh.o --start-group -lmm
-lc -lproxies -lgcc /home/huang/workspace/nuttx-fork/apps/libapps.a
/home/huang/workspace/toolchain/riscv64-unknown-elf-toolsuite-1.0.6/bin/../lib/gcc/riscv64-unknown-elf/13.2.0/rv32imafdc_zicsr/ilp32d/libgcc.a
--end-group -o /home/huang/workspace/nuttx-fork/apps/bin/init
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/apps/import/libs/libc.a(symtab_allsyms.o): in
function `allsyms_lookup':
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:57:(.text.allsyms_findbyname+0x28):
undefined reference to `g_nallsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:57:(.text.allsyms_findbyname+0x2c):
undefined reference to `g_nallsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:57:(.text.allsyms_findbyname+0x30):
undefined reference to `g_allsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:57:(.text.allsyms_findbyname+0x38):
undefined reference to `g_allsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:64:(.text.allsyms_findbyname+0x46):
undefined reference to `g_allsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:61:(.text.allsyms_findbyvalue+0x28):
undefined reference to `g_nallsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:61:(.text.allsyms_findbyvalue+0x2c):
undefined reference to `g_nallsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:61:(.text.allsyms_findbyvalue+0x30):
undefined reference to `g_allsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:61:(.text.allsyms_findbyvalue+0x38):
undefined reference to `g_allsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:64:(.text.allsyms_findbyvalue+0x46):
undefined reference to `g_allsyms'
make[3]: *** [/home/huang/workspace/nuttx-fork/apps/Application.mk:308:
/home/huang/workspace/nuttx-fork/apps/bin/init] Error 1
make[3]: Leaving directory '/home/huang/workspace/nuttx-fork/apps/system/nsh'
make[2]: *** [Makefile:55:
/home/huang/workspace/nuttx-fork/apps/system/nsh_install] Error 2
make[2]: Leaving directory '/home/huang/workspace/nuttx-fork/apps'
make[1]: *** [Makefile:101: .import] Error 2
make[1]: Leaving directory '/home/huang/workspace/nuttx-fork/apps'
make: *** [Makefile:108: import] Error 2
```
`rv-virt:pnsh`, same underlying problem:
```
huang@ubuntu:~/workspace/nuttx-fork/nuttx$ make -j$(nproc)
Create version.h
LN: platform/board to /home/huang/workspace/nuttx-fork/apps/platform/dummy
Register: hello
Register: nsh
Register: sh
Register: dumpstack
Register: dd
Register: ostest
Register: getprime
CC: getopt.c fpu.c:57:8: warning: #warning "FPU test not built; Only
available in the flat build (CONFIG_BUILD_FLAT)" [-Wcpp]
57 | # warning "FPU test not built; Only available in the flat build
(CONFIG_BUILD_FLAT)"
| ^~~~~~~
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/staging//libc.a(symtab_allsyms.o): in
function `allsyms_lookup':
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:57:(.text.allsyms_findbyname+0x28):
undefined reference to `g_nallsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:57:(.text.allsyms_findbyname+0x2c):
undefined reference to `g_nallsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:57:(.text.allsyms_findbyname+0x30):
undefined reference to `g_allsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:57:(.text.allsyms_findbyname+0x38):
undefined reference to `g_allsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:64:(.text.allsyms_findbyname+0x46):
undefined reference to `g_allsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:61:(.text.allsyms_findbyvalue+0x28):
undefined reference to `g_nallsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:61:(.text.allsyms_findbyvalue+0x2c):
undefined reference to `g_nallsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:61:(.text.allsyms_findbyvalue+0x30):
undefined reference to `g_allsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:61:(.text.allsyms_findbyvalue+0x38):
undefined reference to `g_allsyms'
riscv64-unknown-elf-ld:
/home/huang/workspace/nuttx-fork/nuttx/libs/libc/symtab/symtab_allsyms.c:64:(.text.allsyms_findbyvalue+0x46):
undefined reference to `g_allsyms'
make[1]: *** [Makefile:70: nuttx_user] Error 1
make: *** [tools/Unix.mk:558: nuttx] Error 2
```
### Problems 1-3: after fixing the link error, boots but backtraces are wrong
Before fixing problems 1-3:
```
ABC
NuttShell (NSH) NuttX-13.0.0
nsh> dumpstack 0 10
[2830383448064000.001000] sched_dumpstack: backtrace:
[2856153251840000.001000] sched_dumpstack: [ 0] [<0x8020d79a>]
up_idle+0xc/0xfffff976
[2873333121024000.001000] sched_dumpstack: [ 0] [<0x80201e4e>]
nx_start+0x25e/0x260
[2890512990208000.001000] sched_dumpstack: [ 0] [<0x802011d6>]
qemu_rv_start+0x72/0x1cc8a
[2911987826688000.001000] sched_dumpstack: [ 0] [<0x8020004a>]
Unknown+0x8020004a/0x80207d2e
[2933462663168000.001000] sched_dumpstack: backtrace:
[2946347565056000.001000] sched_dumpstack: [ 1] [<0x8020d2b6>]
up_switch_context+0x40/0x540
[2963527434240000.001000] sched_dumpstack: [ 1] [<0x8021980a>]
nxsem_wait_slow+0x17a/0xfffef70a
[2989297238016000.001000] sched_dumpstack: [ 1] [<0x80208d8c>]
nxsem_wait+0x8e/0xffffcf02
[3006477107200000.001000] sched_dumpstack: [ 1] [<0x80208db0>]
nxsem_wait_uninterruptible+0x16/0xffffb9b0
[3027951943680000.001000] sched_dumpstack: [ 1] [<0x80203128>]
work_thread+0x122/0xffffff12
[3032246910976000.001000] sched_dumpstack: [ 1] [<0x80202a90>]
nxtask_start+0x4c/0x18216
[3040836845568000.001000] sched_dumpstack: backtrace:
[3045131812864000.001000] sched_dumpstack: [ 3] [<0x8020d2b6>]
up_switch_context+0x40/0x540
[3049426780160000.001000] sched_dumpstack: [ 3] [<0x8021a068>]
nxsig_clockwait+0x122/0xfffeaa64
[3058016714752000.001000] sched_dumpstack: [ 3] [<0x8021a7be>]
nxsig_timedwait+0xd4/0xfffff828
[3066606649344000.001000] sched_dumpstack: [ 3] [<0x8021944a>]
nxsched_waitpid+0xc0/0xffffff32
[3070901616640000.001000] sched_dumpstack: [ 3] [<0x80219480>]
waitpid+0xe/0xfffe9902
[3075196583936000.001000] sched_dumpstack: [ 3] [<0x802089fc>]
STUB_waitpid+0x12/0x1a
[3079491551232000.001000] sched_dumpstack: [ 3] [<0x80201496>]
dispatch_syscall+0x46/0x18864
[3083786518528000.001000] sched_dumpstack: [ 3] [<0x802001aa>]
Unknown+0x802001aa/0x80207d2e
[3092376453120000.001000] sched_dumpstack: [ 3] [<0xc000c99a>]
register_blockdriver+0x3fded564/0xffff3322
[3096671420416000.001000] sched_dumpstack: [ 3] [<0xc0005f42>]
register_blockdriver+0x3fde6b0c/0xffff3322
[3105261355008000.001000] sched_dumpstack: [ 3] [<0xc0003662>]
register_blockdriver+0x3fde422c/0xffff3322
[3109556322304000.001000] sched_dumpstack: [ 3] [<0xc00045d2>]
register_blockdriver+0x3fde519c/0xffff3322
[3118146256896000.001000] sched_dumpstack: [ 3] [<0xc0004672>]
register_blockdriver+0x3fde523c/0xffff3322
[3122441224192000.001000] sched_dumpstack: [ 3] [<0xc0003036>]
register_blockdriver+0x3fde3c00/0xffff3322
[3131031158784000.001000] sched_dumpstack: [ 3] [<0xc0002e56>]
register_blockdriver+0x3fde3a20/0xffff3322
[3139621093376000.001000] sched_dumpstack: [ 3] [<0xc0000b4a>]
register_blockdriver+0x3fde1714/0xffff3322
[3148211027968000.001000] sched_dumpstack: [ 3] [<0xc0000b08>]
register_blockdriver+0x3fde16d2/0xffff3322
[3156800962560000.001000] sched_dumpstack: backtrace:
[3161095929856000.001000] sched_dumpstack: [ 4] [<0x80219652>]
sched_backtrace+0x30/0x3b40
[3165390897152000.001000] sched_dumpstack: [ 4] [<0x802085f8>]
STUB_sched_backtrace+0x14/0x1c
[3173980831744000.001000] sched_dumpstack: [ 4] [<0x80201496>]
dispatch_syscall+0x46/0x18864
[3178275799040000.001000] sched_dumpstack: [ 4] [<0x802001aa>]
Unknown+0x802001aa/0x80207d2e
[3186865733632000.001000] sched_dumpstack: [ 4] [<0xc00016ac>]
register_blockdriver+0x3fde2276/0xffff3322
[3191160700928000.001000] sched_dumpstack: [ 4] [<0xc00007dc>]
register_blockdriver+0x3fde13a6/0xffff3322
[3199750635520000.001000] sched_dumpstack: [ 4] [<0xc000076c>]
register_blockdriver+0x3fde1336/0xffff3322
[3204045602816000.001000] sched_dumpstack: [ 4] [<0xc000072e>]
register_blockdriver+0x3fde12f8/0xffff3322
```
Three problems here:
1. Under BUILD_KERNEL/BUILD_PROTECTED the kernel's symbol table can't see
user-mode symbols at all, so user-stack addresses get matched against whatever
unrelated kernel symbol happens to be nearby (`register_blockdriver`-style
output), which is worse than useless.
2. Symbol sizes are garbage, e.g.
`nxsem_wait_uninterruptible+0x16/0xffffb9b0`.
3. Some assembly-only symbols don't resolve at all
(`Unknown+0x8020004a/0x80207d2e`).
Problem 1 doesn't really have a fix beyond "don't lie": there's no way to
resolve a user-mode symbol from kernel context, so the right behavior is just
falling back to the raw address instead of guessing:
```
ABC
NuttShell (NSH) NuttX-13.0.0
nsh> dumpstack 0 10
[133143986176000.001000] sched_dumpstack: backtrace:
[150323855360000.001000] sched_dumpstack: [ 0] [<0x8020d79e>]
up_idle+0xc/0xfffff976
[158913789952000.001000] sched_dumpstack: [ 0] [<0x80201e4e>]
nx_start+0x25e/0x260
[167503724544000.001000] sched_dumpstack: [ 0] [<0x802011d6>]
qemu_rv_start+0x72/0x1cc8e
[171798691840000.001000] sched_dumpstack: [ 0] [<0x8020004a>] 0x8020004a
[176093659136000.001000] sched_dumpstack: backtrace:
[180388626432000.001000] sched_dumpstack: [ 1] [<0x8020d2ba>]
up_switch_context+0x40/0x540
[184683593728000.001000] sched_dumpstack: [ 1] [<0x8021980e>]
nxsem_wait_slow+0x17a/0xfffef706
[193273528320000.001000] sched_dumpstack: [ 1] [<0x80208d8c>]
nxsem_wait+0x8e/0xffffcf02
[201863462912000.001000] sched_dumpstack: [ 1] [<0x80208db0>]
nxsem_wait_uninterruptible+0x16/0xffffb9b0
[210453397504000.001000] sched_dumpstack: [ 1] [<0x80203128>]
work_thread+0x122/0xffffff12
[214748364800000.001000] sched_dumpstack: [ 1] [<0x80202a90>]
nxtask_start+0x4c/0x1821a
[223338299392000.001000] sched_dumpstack: backtrace:
[227633266688000.001000] sched_dumpstack: [ 3] [<0x8020d2ba>]
up_switch_context+0x40/0x540
[236223201280000.001000] sched_dumpstack: [ 3] [<0x8021a06c>]
nxsig_clockwait+0x122/0xfffeaa60
[244813135872000.001000] sched_dumpstack: [ 3] [<0x8021a7c2>]
nxsig_timedwait+0xd4/0xfffff828
[249108103168000.001000] sched_dumpstack: [ 3] [<0x8021944e>]
nxsched_waitpid+0xc0/0xffffff32
[253403070464000.001000] sched_dumpstack: [ 3] [<0x80219484>]
waitpid+0xe/0xfffe98fe
[261993005056000.001000] sched_dumpstack: [ 3] [<0x802089fc>]
STUB_waitpid+0x12/0x1a
[266287972352000.001000] sched_dumpstack: [ 3] [<0x80201496>]
dispatch_syscall+0x46/0x18868
[270582939648000.001000] sched_dumpstack: [ 3] [<0x802001aa>] 0x802001aa
[274877906944000.001000] sched_dumpstack: [ 3] [<0xc000c99a>] 0xc000c99a
[283467841536000.001000] sched_dumpstack: [ 3] [<0xc0005f42>] 0xc0005f42
[287762808832000.001000] sched_dumpstack: [ 3] [<0xc0003662>] 0xc0003662
[292057776128000.001000] sched_dumpstack: [ 3] [<0xc00045d2>] 0xc00045d2
[296352743424000.001000] sched_dumpstack: [ 3] [<0xc0004672>] 0xc0004672
[300647710720000.001000] sched_dumpstack: [ 3] [<0xc0003036>] 0xc0003036
[304942678016000.001000] sched_dumpstack: [ 3] [<0xc0002e56>] 0xc0002e56
[313532612608000.001000] sched_dumpstack: [ 3] [<0xc0000b4a>] 0xc0000b4a
[322122547200000.001000] sched_dumpstack: [ 3] [<0xc0000b08>] 0xc0000b08
[326417514496000.001000] sched_dumpstack: backtrace:
[330712481792000.001000] sched_dumpstack: [ 4] [<0x80219656>]
sched_backtrace+0x30/0x3b40
[335007449088000.001000] sched_dumpstack: [ 4] [<0x802085f8>]
STUB_sched_backtrace+0x14/0x1c
[343597383680000.001000] sched_dumpstack: [ 4] [<0x80201496>]
dispatch_syscall+0x46/0x18868
[347892350976000.001000] sched_dumpstack: [ 4] [<0x802001aa>] 0x802001aa
[352187318272000.001000] sched_dumpstack: [ 4] [<0xc00016ac>] 0xc00016ac
[360777252864000.001000] sched_dumpstack: [ 4] [<0xc00007dc>] 0xc00007dc
[360777252864000.001000] sched_dumpstack: [ 4] [<0xc000076c>] 0xc000076c
[369367187456000.001000] sched_dumpstack: [ 4] [<0xc000072e>] 0xc000072e
```
After fixing problem 2, symbol sizes are correct:
```
ABC
NuttShell (NSH) NuttX-13.0.0
nsh> ps
TID PID PPID PRI POLICY TYPE NPX STATE EVENT SIGMASK
STACK COMMAND
0 0 0 0 FIFO Kthread - Ready
0000000000000000 0003040 Idle_Task
1 0 0 100 RR Kthread - Waiting Semaphore
0000000000000000 0004016 lpwork 0x80602330 0x80602380
3 3 0 100 RR Task - Running
0000000000000000 0003008 /system/bin/init
nsh> dumpstack 0 10
[4054449127424000.001000] sched_dumpstack: backtrace:
[4071628996608000.001000] sched_dumpstack: [ 0] [<0x8020d80c>]
up_idle+0xc/0x14
[4080218931200000.001000] sched_dumpstack: [ 0] [<0x80201e4e>]
nx_start+0x25e/0x260
[4084513898496000.001000] sched_dumpstack: [ 0] [<0x802011d6>]
qemu_rv_start+0x72/0x98
[4088808865792000.001000] sched_dumpstack: [ 0] [<0x8020004a>] 0x8020004a
[4093103833088000.001000] sched_dumpstack: backtrace:
[4097398800384000.001000] sched_dumpstack: [ 1] [<0x8020d328>]
up_switch_context+0x40/0x42
[4101693767680000.001000] sched_dumpstack: [ 1] [<0x8021987c>]
nxsem_wait_slow+0x17a/0x1a2
[4105988734976000.001000] sched_dumpstack: [ 1] [<0x80208d8c>]
nxsem_wait+0x8e/0x9c
[4110283702272000.001000] sched_dumpstack: [ 1] [<0x80208db0>]
nxsem_wait_uninterruptible+0x16/0x26
[4118873636864000.001000] sched_dumpstack: [ 1] [<0x80203128>]
work_thread+0x122/0x166
[4123168604160000.001000] sched_dumpstack: [ 1] [<0x80202a90>]
nxtask_start+0x4c/0x64
[4131758538752000.001000] sched_dumpstack: backtrace:
[4136053506048000.001000] sched_dumpstack: [ 3] [<0x8020d328>]
up_switch_context+0x40/0x42
[4140348473344000.001000] sched_dumpstack: [ 3] [<0x8021a0da>]
nxsig_clockwait+0x122/0x1ea
[4148938407936000.001000] sched_dumpstack: [ 3] [<0x8021a830>]
nxsig_timedwait+0xd4/0x140
[4153233375232000.001000] sched_dumpstack: [ 3] [<0x802194bc>]
nxsched_waitpid+0xc0/0xe8
[4157528342528000.001000] sched_dumpstack: [ 3] [<0x802194f2>]
waitpid+0xe/0x38
[4166118277120000.001000] sched_dumpstack: [ 3] [<0x802089fc>]
STUB_waitpid+0x12/0x1a
[4170413244416000.001000] sched_dumpstack: [ 3] [<0x80201496>]
dispatch_syscall+0x46/0x62
[4174708211712000.001000] sched_dumpstack: [ 3] [<0x802001aa>] 0x802001aa
[4179003179008000.001000] sched_dumpstack: [ 3] [<0xc000c99a>] 0xc000c99a
[4183298146304000.001000] sched_dumpstack: [ 3] [<0xc0005f42>] 0xc0005f42
[4187593113600000.001000] sched_dumpstack: [ 3] [<0xc0003662>] 0xc0003662
[4191888080896000.001000] sched_dumpstack: [ 3] [<0xc00045d2>] 0xc00045d2
[4196183048192000.001000] sched_dumpstack: [ 3] [<0xc0004672>] 0xc0004672
[4200478015488000.001000] sched_dumpstack: [ 3] [<0xc0003036>] 0xc0003036
[4204772982784000.001000] sched_dumpstack: [ 3] [<0xc0002e56>] 0xc0002e56
[4213362917376000.001000] sched_dumpstack: [ 3] [<0xc0000b4a>] 0xc0000b4a
[4217657884672000.001000] sched_dumpstack: [ 3] [<0xc0000b08>] 0xc0000b08
[4226247819264000.001000] sched_dumpstack: backtrace:
[4230542786560000.001000] sched_dumpstack: [ 4] [<0x802196c4>]
sched_backtrace+0x30/0x6e
[4234837753856000.001000] sched_dumpstack: [ 4] [<0x802085f8>]
STUB_sched_backtrace+0x14/0x1c
[4243427688448000.001000] sched_dumpstack: [ 4] [<0x80201496>]
dispatch_syscall+0x46/0x62
[4247722655744000.001000] sched_dumpstack: [ 4] [<0x802001aa>] 0x802001aa
[4252017623040000.001000] sched_dumpstack: [ 4] [<0xc00016ac>] 0xc00016ac
[4256312590336000.001000] sched_dumpstack: [ 4] [<0xc00007dc>] 0xc00007dc
[4260607557632000.001000] sched_dumpstack: [ 4] [<0xc000076c>] 0xc000076c
[4264902524928000.001000] sched_dumpstack: [ 4] [<0xc000072e>] 0xc000072e
```
After fixing problem 3, assembly-only symbols resolve correctly too
(`__start`, `exception_common`):
```
ABC
NuttShell (NSH) NuttX-13.0.0
nsh> dumpstack 0 10
[3508988280832000.001000] sched_dumpstack: backtrace:
[3551937953792000.001000] sched_dumpstack: [ 0] [<0x8020d814>]
up_idle+0xc/0x14
[3599182594048000.001000] sched_dumpstack: [ 0] [<0x80201e56>]
nx_start+0x25e/0x260
[3646427234304000.001000] sched_dumpstack: [ 0] [<0x802011d6>]
qemu_rv_start+0x72/0x98
[3672197038080000.001000] sched_dumpstack: [ 0] [<0x8020004a>]
__start+0x4a/0x100
[3672197038080000.001000] sched_dumpstack: backtrace:
[3672197038080000.001000] sched_dumpstack: [ 1] [<0x8020d330>]
up_switch_context+0x40/0x42
[3672197038080000.001000] sched_dumpstack: [ 1] [<0x802198ba>]
nxsem_wait_slow+0x17a/0x1a2
[3672197038080000.001000] sched_dumpstack: [ 1] [<0x80208d94>]
nxsem_wait+0x8e/0x9c
[3672197038080000.001000] sched_dumpstack: [ 1] [<0x80208db8>]
nxsem_wait_uninterruptible+0x16/0x26
[3710851743744000.001000] sched_dumpstack: [ 1] [<0x80203130>]
work_thread+0x122/0x166
[3715146711040000.001000] sched_dumpstack: [ 1] [<0x80202a98>]
nxtask_start+0x4c/0x64
[3723736645632000.001000] sched_dumpstack: backtrace:
[3728031612928000.001000] sched_dumpstack: [ 3] [<0x8020d330>]
up_switch_context+0x40/0x42
[3732326580224000.001000] sched_dumpstack: [ 3] [<0x8021a118>]
nxsig_clockwait+0x122/0x1ea
[3745211482112000.001000] sched_dumpstack: [ 3] [<0x8021a86e>]
nxsig_timedwait+0xd4/0x140
[3749506449408000.001000] sched_dumpstack: [ 3] [<0x802194fa>]
nxsched_waitpid+0xc0/0xe8
[3753801416704000.001000] sched_dumpstack: [ 3] [<0x80219530>]
waitpid+0xe/0x38
[3762391351296000.001000] sched_dumpstack: [ 3] [<0x80208a04>]
STUB_waitpid+0x12/0x1a
[3766686318592000.001000] sched_dumpstack: [ 3] [<0x80201496>]
dispatch_syscall+0x46/0x62
[3770981285888000.001000] sched_dumpstack: [ 3] [<0x802001aa>]
exception_common+0xaa/0xb4
[3779571220480000.001000] sched_dumpstack: [ 3] [<0xc000c99a>] 0xc000c99a
[3783866187776000.001000] sched_dumpstack: [ 3] [<0xc0005f42>] 0xc0005f42
[3788161155072000.001000] sched_dumpstack: [ 3] [<0xc0003662>] 0xc0003662
[3796751089664000.001000] sched_dumpstack: [ 3] [<0xc00045d2>] 0xc00045d2
[3801046056960000.001000] sched_dumpstack: [ 3] [<0xc0004672>] 0xc0004672
[3805341024256000.001000] sched_dumpstack: [ 3] [<0xc0003036>] 0xc0003036
[3813930958848000.001000] sched_dumpstack: [ 3] [<0xc0002e56>] 0xc0002e56
[3822520893440000.001000] sched_dumpstack: [ 3] [<0xc0000b4a>] 0xc0000b4a
[3835405795328000.001000] sched_dumpstack: [ 3] [<0xc0000b08>] 0xc0000b08
[3843995729920000.001000] sched_dumpstack: backtrace:
[3848290697216000.001000] sched_dumpstack: [ 4] [<0x80219702>]
sched_backtrace+0x30/0x6e
[3852585664512000.001000] sched_dumpstack: [ 4] [<0x80208600>]
STUB_sched_backtrace+0x14/0x1c
[3861175599104000.001000] sched_dumpstack: [ 4] [<0x80201496>]
dispatch_syscall+0x46/0x62
[3865470566400000.001000] sched_dumpstack: [ 4] [<0x802001aa>]
exception_common+0xaa/0xb4
[3874060500992000.001000] sched_dumpstack: [ 4] [<0xc00016ac>] 0xc00016ac
[3878355468288000.001000] sched_dumpstack: [ 4] [<0xc00007dc>] 0xc00007dc
[3882650435584000.001000] sched_dumpstack: [ 4] [<0xc000076c>] 0xc000076c
[3886945402880000.001000] sched_dumpstack: [ 4] [<0xc000072e>] 0xc000072e
```
## Known follow-up (not fixed here)
`g_symtab` and `g_allsyms` have nothing to do with each other — different
data, different generators — but `symtab_findbyname()`/`symtab_findbyvalue()`
only get compiled once, so both tables end up forced to share the same global
ordering assumption
(`CONFIG_SYMTAB_ORDEREDBYNAME`/`CONFIG_SYMTAB_ORDEREDBYVALUE`).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]