Wind River Support Network

HomeDefectsLIN1019-2237
Not to be fixed

LIN1019-2237 : a mismatch between size of a function stack and its name in aarch64

Created: Aug 20, 2019    Updated: Apr 29, 2021
Resolved Date: Apr 29, 2021
Found In Version: 10.19.45.1
Severity: Standard
Applicable for: Wind River Linux LTS 19
Component/s: BSP - Async

Description

setup.sh --machines intel-x86-64/axxiaarm64/axxiaarm --distro wrlinux --dl-layers
Set CONFIG_STACK_TRACER=y
Install testing module kernel_stack into Image.
bitbake wrlinux-image-glibc-std
On a target:
modprobe -r kernel_stack && echo 0 > /sys/kernel/debug/tracing/stack_max_size; echo 1 > /proc/sys/kernel/stack_tracer_enabled
modprobe kernel_stack && cat /sys/kernel/debug/tracing/stack_max_size; cat /sys/kernel/debug/tracing/stack_trace

size of occupy_stack_init stack should be 3376 instead of 64, the same test is fine on axxiaarm and intel-x86-64.

1. Logs for axxiaarm64
====================
root@axxiaarm64:~# modprobe kernel_stack && cat /sys/kernel/debug/tracing/stack_max_size; cat /sys/kernel/debug/tracing/stack_trace
Occupied 3328 kernel stack.
From ffffff800b8baed8 To ffffff800b8bbbd7.
[ffffff800b8baea0]: 20
[ffffff800b8baea4]: 666
[ffffff800b8baed4]: 686
5464
Depth Size Location (19 entries)
----- ---- --------
0) 5464 16 cgroup_rstat_updated+0x20/0x100
1) 5448 48 cgroup_base_stat_cputime_account_end.isra.0+0x30/0x60
2) 5400 32 __cgroup_account_cputime+0x3c/0x48
3) 5368 32 update_curr+0xc4/0x1d0
4) 5336 64 pick_next_task_fair+0x444/0x508
5) 5272 72 __schedule+0x100/0x600
6) 5200 184 preempt_schedule_common+0x28/0x48
7) 5016 32 preempt_schedule+0x28/0x30
8) 4984 16 vprintk_emit+0x170/0x1f8
9) 4968 128 vprintk_default+0x48/0x58
10) 4840 64 vprintk_func+0xf8/0x1c8
11) 4776 112 printk+0x70/0x90
12) 4664 176 func_sum+0x60/0x8c [kernel_stack]
13) 4488 64 occupy_stack_init+0x70/0xb4 [kernel_stack]
14) 4424 3376 do_one_initcall+0x68/0x248
15) 1048 144 do_init_module+0x60/0x1f0
16) 904 48 load_module+0x1d50/0x2340
17) 856 352 sys_finit_module+0xd0/0xe8
18) 504 504 el0_svc_naked+0x30/0x34

2. Logs for axxiaarm
====================
root@axxiaarm:~# modprobe kernel_stack && cat /sys/kernel/debug/tracing/stack_max_size; cat /sys/kernel/debug/tracing/stack_trace
kernel_stack: loading out-of-tree module taints kernel.
Occupied 3328 kernel stack.
From e32e1084 To e32e1d83.
[e32e105c]: 20
[e32e1060]: 666
[e32e1080]: 686
5408
Depth Size Location (38 entries)
----- ---- --------
0) 5456 4 idle_cpu+0x14/0x60
1) 5452 28 available_idle_cpu+0x18/0x24
2) 5424 136 select_task_rq_fair+0x140/0xbd4
3) 5288 64 try_to_wake_up+0x250/0x3b0
4) 5224 16 default_wake_function+0x1c/0x20
5) 5208 56 __wake_up_common+0xa4/0x134
6) 5152 24 __wake_up_locked+0x28/0x30
7) 5128 64 ep_poll_callback+0x208/0x22c
8) 5064 56 __wake_up_common+0xa4/0x134
9) 5008 88 __wake_up_common_lock+0x78/0xbc
10) 4920 24 __wake_up+0x24/0x2c
11) 4896 24 wake_up_klogd_work_func+0x5c/0x68
12) 4872 32 irq_work_run_list+0x8c/0xbc
13) 4840 16 irq_work_tick+0x48/0x58
14) 4824 32 update_process_times+0x58/0x6c
15) 4792 80 tick_sched_timer+0x1c4/0x244
16) 4712 88 __hrtimer_run_queues+0x1f0/0x3a8
17) 4624 88 hrtimer_interrupt+0x128/0x2a8
18) 4536 16 arch_timer_handler_virt+0x38/0x48
19) 4520 48 handle_percpu_devid_irq+0x134/0x2a4
20) 4472 16 generic_handle_irq+0x28/0x38
21) 4456 40 __handle_domain_irq+0xb0/0xc4
22) 4416 16 handle_IRQ+0x28/0x2c
23) 4400 56 axxia_gic_handle_irq+0x14c/0x254
24) 4344 68 __irq_svc+0x58/0x8c
25) 4276 92 console_unlock+0x1e8/0x464
26) 4184 56 vprintk_emit+0x1a0/0x1bc
27) 4128 24 vprintk_default+0x30/0x38
28) 4104 40 vprintk_func+0x18c/0x1a0
29) 4064 32 printk+0x38/0x58
30) 4032 56 func_sum+0x3c/0x7c [kernel_stack]
31) 3976 3360 occupy_stack_init+0x68/0xb4 [kernel_stack]
32) 616 120 do_one_initcall+0xf4/0x25c
33) 496 40 do_init_module+0x6c/0x1f8
34) 456 216 load_module+0x1e2c/0x1f6c
35) 240 144 sys_finit_module+0xa4/0xc4
36) 96 68 ret_fast_syscall+0x0/0x4c
37) 28 28 0xbef45950
root@axxiaarm:~

2.Logs for intel-x86-64
====================
root@intel-x86-64:~# modprobe kernel_stack
Occupied 3328 kernel stack.
From ffffac2b8629ef50 To ffffac2b8629fc4f.
[ffffac2b8629ef28]: 20
[ffffac2b8629ef2c]: 666
[ffffac2b8629ef4c]: 686
el/debug/tracing/stack_traces/kernel/debug/tracing/stack_max_size; cat /sys/kerne
5776
Depth Size Location (34 entries)
----- ---- --------
0) 5776 64 cgroup_rstat_updated+0x5/0x100
1) 5712 48 cgroup_base_stat_cputime_account_end.isra.0+0x1c/0x60
2) 5664 40 __cgroup_account_cputime+0x41/0x50
3) 5624 64 update_curr+0x10b/0x240
4) 5560 72 put_prev_entity+0x350/0x640
5) 5488 24 put_prev_task_fair+0x25/0x50
6) 5464 48 pick_next_task_rt+0x98/0x200
7) 5416 96 __schedule+0x411/0x6c0
8) 5320 24 preempt_schedule_notrace+0x57/0xd0
9) 5296 88 ___preempt_schedule_notrace+0x16/0x28
10) 5208 40 stack_trace_call+0xb4/0xc0
11) 5168 136 0xffffffffc0129077
12) 5032 64 preempt_count_add+0x5/0xd0
13) 4968 72 delay_tsc+0x61/0x100
14) 4896 16 __const_udelay+0x40/0x50
15) 4880 40 wait_for_xmitr+0x2c/0xa0
16) 4840 32 serial8250_console_putchar+0x1c/0x40
17) 4808 48 uart_console_write+0x4c/0x60
18) 4760 120 serial8250_console_write+0xca/0x230
19) 4640 16 univ8250_console_write+0x21/0x30
20) 4624 64 console_unlock.part.6+0x487/0x540
21) 4560 80 vprintk_emit+0x14b/0x180
22) 4480 16 vprintk_default+0x1f/0x30
23) 4464 48 vprintk_func+0x51/0x108
24) 4416 96 printk+0x58/0x6f
25) 4320 32 func_sum+0x47/0x63 [kernel_stack]
26) 4288 3368 occupy_stack_init+0x69/0xa4 [kernel_stack]
27) 920 120 do_one_initcall+0x53/0x236
28) 800 40 do_init_module+0x60/0x210
29) 760 336 load_module+0x209b/0x25c0
30) 424 200 __se_sys_finit_module+0xc3/0xe0
31) 224 16 __x64_sys_finit_module+0x1a/0x20
32) 208 32 do_syscall_64+0x4d/0x110
33) 176 176 entry_SYSCALL_64_after_hwframe+0x44/0xa9
root@intel-x86-64:~#

Steps to Reproduce

--machines intel-x86-64/axxiaarm64/axxiaarm --distro wrlinux --dl-layers
Set CONFIG_STACK_TRACER=y
Install testing module kernel_stack into Image.
bitbake wrlinux-image-glibc-std
On a target:
modprobe -r kernel_stack && echo 0 > /sys/kernel/debug/tracing/stack_max_size; echo 1 > /proc/sys/kernel/stack_tracer_enabled
modprobe kernel_stack && cat /sys/kernel/debug/tracing/stack_max_size; cat /sys/kernel/debug/tracing/stack_trace
Live chat
Online