Wind River Support Network

HomeDefectsLIN1022-1071
Acknowledged

LIN1022-1071 : xilinx-zynq: Have max stack tracer handle the case of return address after data

Created: Jul 24, 2022    Updated: Nov 9, 2023
Resolved Date: Nov 1, 2022
Found In Version: 10.22.33.1
Severity: Standard
Applicable for: Wind River Linux LTS 22
Component/s: BSP

Description

This issue will not affect customer.

 

Steps to Reproduce

1. Create a build directory in local hard disk.

$ cd /buildarea1/xdong/
$ mkdir xilinx-zynq
$ cd xilinx-zynq/
$ pwd
/buildarea1/xdong/xilinx-zynq

2. Setup a xilinx-zynq project.

/lpg-build/cdc/fast_prod/WRL10_22/WRL10_22_GIT/wrlinux-10/setup.sh --machines xilinx-zynq --distro wrlinux --dl-layers --accept-eula=yes

. environment-setup-x86_64-wrlinuxsdk-linux 
. oe-init-build-env 

bitbake wrlinux-image-std

3. Deploy a kernel modules.

cd ../layers/local/
wget https://jira.wrs.com/secure/attachment/323410/recipes-kmod.tar.bz2
tar -zxf recipes-kmod.tar.bz2 
cd ../../build/

4. Specify the kernel module packages to install into an image.

echo 'IMAGE_INSTALL:append = " kernel-test-modules"' >> conf/local.conf 

5. Enable strack trace.

Set CONFIG_STACK_TRACER=y by 'bitbake -c menuconfig virtual/kernel'

6. Rebuild kernel and rootfs.

bitbake -f -c compile virtual/kernel && bitbake wrlinux-image-std

7. Copy kernel/dtb/rootfs to nfs server with vlm tool

$ cd /buildarea1/xdong/xilinx-zynq/build/tmp-glibc/deploy/images/xilinx-zynq

$ ls
total 521344
-rw-r--r-- 2 xdong users  43957041 Aug 16 21:53 modules--5.15.59+git0+d9823ca271_d27cea3916-r0-xilinx-zynq-20220816134757.tgz
lrwxrwxrwx 2 xdong users        77 Aug 16 21:53 modules-xilinx-zynq.tgz -> modules--5.15.59+git0+d9823ca271_d27cea3916-r0-xilinx-zynq-20220816134757.tgz
-rw-r--r-- 2 xdong users      8348 Aug 16 22:01 wrlinux-image-std.env
-rw-r--r-- 2 xdong users     83264 Aug 16 22:01 wrlinux-image-std-xilinx-zynq-20220816134757.rootfs.manifest
-rw-r--r-- 2 xdong users 104781820 Aug 16 22:02 wrlinux-image-std-xilinx-zynq-20220816134757.rootfs.tar.bz2
-rw-r--r-- 2 xdong users 910606336 Aug 16 22:02 wrlinux-image-std-xilinx-zynq-20220816134757.rootfs.wic
-rw-r--r-- 2 xdong users      3282 Aug 16 22:02 wrlinux-image-std-xilinx-zynq-20220816134757.rootfs.wic.bmap
-rw-r--r-- 2 xdong users    744140 Aug 16 22:01 wrlinux-image-std-xilinx-zynq-20220816134757.testdata.json
lrwxrwxrwx 2 xdong users        60 Aug 16 22:01 wrlinux-image-std-xilinx-zynq.manifest -> wrlinux-image-std-xilinx-zynq-20220816134757.rootfs.manifest
lrwxrwxrwx 2 xdong users        59 Aug 16 22:02 wrlinux-image-std-xilinx-zynq.tar.bz2 -> wrlinux-image-std-xilinx-zynq-20220816134757.rootfs.tar.bz2
lrwxrwxrwx 2 xdong users        58 Aug 16 22:01 wrlinux-image-std-xilinx-zynq.testdata.json -> wrlinux-image-std-xilinx-zynq-20220816134757.testdata.json
lrwxrwxrwx 2 xdong users        55 Aug 16 22:02 wrlinux-image-std-xilinx-zynq.wic -> wrlinux-image-std-xilinx-zynq-20220816134757.rootfs.wic
lrwxrwxrwx 2 xdong users        60 Aug 16 22:02 wrlinux-image-std-xilinx-zynq.wic.bmap -> wrlinux-image-std-xilinx-zynq-20220816134757.rootfs.wic.bmap
lrwxrwxrwx 2 xdong users        76 Aug 16 21:53 zImage -> zImage--5.15.59+git0+d9823ca271_d27cea3916-r0-xilinx-zynq-20220816134757.bin
-rw-r--r-- 2 xdong users   7267800 Aug 16 21:53 zImage--5.15.59+git0+d9823ca271_d27cea3916-r0-xilinx-zynq-20220816134757.bin
lrwxrwxrwx 2 xdong users        76 Aug 16 21:53 zImage-xilinx-zynq.bin -> zImage--5.15.59+git0+d9823ca271_d27cea3916-r0-xilinx-zynq-20220816134757.bin
-rw-r--r-- 2 xdong users     17191 Aug 16 21:53 zynq-zc702--5.15.59+git0+d9823ca271_d27cea3916-r0-xilinx-zynq-20220816134757.dtb
lrwxrwxrwx 2 xdong users        80 Aug 16 21:53 zynq-zc702.dtb -> zynq-zc702--5.15.59+git0+d9823ca271_d27cea3916-r0-xilinx-zynq-20220816134757.dtb
lrwxrwxrwx 2 xdong users        80 Aug 16 21:53 zynq-zc702-xilinx-zynq.dtb -> zynq-zc702--5.15.59+git0+d9823ca271_d27cea3916-r0-xilinx-zynq-20220816134757.dtb
-rw-r--r-- 2 xdong users     15627 Aug 16 21:53 zynq-zc706--5.15.59+git0+d9823ca271_d27cea3916-r0-xilinx-zynq-20220816134757.dtb
lrwxrwxrwx 2 xdong users        80 Aug 16 21:53 zynq-zc706.dtb -> zynq-zc706--5.15.59+git0+d9823ca271_d27cea3916-r0-xilinx-zynq-20220816134757.dtb
lrwxrwxrwx 2 xdong users        80 Aug 16 21:53 zynq-zc706-xilinx-zynq.dtb -> zynq-zc706--5.15.59+git0+d9823ca271_d27cea3916-r0-xilinx-zynq-20220816134757.dtb

$ cp zImage-xilinx-zynq.bin zynq-zc702-xilinx-zynq.dtb wrlinux-image-std-xilinx-zynq.tar.bz2 ~/xilinx-zynq-image/
$ /folk/vlm/commandline/vlmTool copyFile -t 21122 -d /folk/xdong/xilinx-zynq-image/zynq-zc702-xilinx-zynq.dtb  -k /folk/xdong/xilinx-zynq-image/zImage-xilinx-zynq.bin  -r /folk/xdong/xilinx-zynq-image/wrlinux-image-std-xilinx-zynq.tar.bz2 

8. You can look at the uboot parameters

Zynq> print bootcmd
bootcmd=run nfsboot
Zynq> print nfsboot
nfsboot=run nfsargs;tftpboot ${loadaddr} ${bootfile};tftpboot ${fdtaddr} ${fdtfile};bootz ${loadaddr} - ${fdtaddr}
Zynq> print nfsargs
nfsargs=setenv bootargs console=${consoledev},${baudrate}n8 root=/dev/nfs rw nfsroot=${serverip}:${rootpath},tcp ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${boardname}:${netdev}:off ${othbootargs}
Zynq> boot

9. On a target(zc702/zc706):

root@xilinx-zynq:~# cat /proc/cmdline 
console=ttyPS0,115200n8 root=/dev/nfs rw nfsroot=128.224.178.20:/export/pxeboot/vlm-boards/21122/rootfs,tcp ip=128.224.178.123:128.224.178.20:128.224.165.1:255.255.255.0:zc706:eth0:off earlyprintk noinitrd selinux=0 enforcing=0 kmemleak=on
root@xilinx-zynq:~# 

root@xilinx-zynq:~# zcat /proc/config.gz |grep STACK_TR 
CONFIG_STACK_TRACER=y

root@xilinx-zynq:~# modinfo kernel_stack
filename:       /lib/modules/5.15.59-yocto-standard/extra/kernel_stack.ko
license:        GPL
author:         Linux Test Team
version:        04 July 2021
description:    Occupy more memory in kernel stack,and avoid stack overflow for all the ARCH.
srcversion:     AA4FA850C8772A4C1CC6F09
depends:        
name:           kernel_stack
vermagic:       5.15.59-yocto-standard SMP preempt mod_unload ARMv7 p2v8 
root@xilinx-zynq:~# 

root@xilinx-zynq:~# echo 0 > /sys/kernel/debug/tracing/stack_max_size
root@xilinx-zynq:~# echo 1 > /proc/sys/kernel/stack_tracer_enabled
root@xilinx-zynq:~# modprobe kernel_stack
kernel_stack: loading out-of-tree module taints kernel.
Occupied 4096 / 8192 kernel stack.
From ffffffff827a6e8c To ffffffff827a7e8b.
root@xilinx-zynq:~# cat /sys/kernel/debug/tracing/stack_max_size
5768Have max stack tracer handle the case of return address after data root@xilinx-zynq:~# cat /sys/kernel/debug/tracing/stack_trace
        Depth    Size   Location    (35 entries)
        -----    ----   --------
  0)     5808       4   decay_load+0xc/0x7c
  1)     5804      32   __accumulate_pelt_segments+0x2c/0x58
  2)     5772      56   __update_load_avg_cfs_rq+0x13c/0x278
  3)     5716      48   update_cfs_rq_load_avg+0x10c/0x124
  4)     5668      48   update_load_avg+0x80/0x344
  5)     5620      48   enqueue_task_fair+0x1d4/0x37c
  6)     5572      16   activate_task+0x18/0x24
  7)     5556      32   ttwu_do_activate+0x98/0xbc
  8)     5524      64   try_to_wake_up+0x310/0x340
  9)     5460       8   autoremove_wake_function+0x14/0x40
 10)     5452      48   __wake_up_common+0xcc/0x130
 11)     5404      72   __wake_up_common_lock+0x7c/0xb4
 12)     5332      16   __wake_up+0x18/0x20
 13)     5316      48   ep_poll_callback+0x15c/0x260
 14)     5268      48   __wake_up_common+0xcc/0x130
 15)     5220      72   __wake_up_common_lock+0x7c/0xb4
 16)     5148      16   __wake_up+0x18/0x20
 17)     5132      16   irq_work_single+0x24/0x50
 18)     5116       8   irq_work_run_list+0x54/0x5c
 19)     5108      24   update_process_times+0xa4/0xc4
 20)     5084      56   tick_sched_timer+0xd4/0x21c
 21)     5028      64   __hrtimer_run_queues+0x17c/0x288
 22)     4964      56   hrtimer_interrupt+0xd4/0x214
 23)     4908       8   twd_handler+0x38/0x44
 24)     4900      24   handle_percpu_devid_irq+0x60/0x104
 25)     4876       8   handle_irq_desc+0x2c/0x3c
 26)     4868      16   handle_domain_irq+0x48/0x5c
 27)     4852      24   gic_handle_irq+0x70/0x80
 28)     4828      64   __irq_svc+0x5c/0x90
 29)     4764     184   console_unlock+0x304/0x45c
 30)     4580      48   vprintk_emit+0x168/0x180
 31)     4532      16   vprintk_default+0x24/0x2c
 32)     4516      16   _printk+0x34/0x58
 33)     4500      16   occupy_stack_init+0x50/0xac [kernel_stack]
 34)     4484    4484   0x1010101
root@xilinx-zynq:~#
Live chat
Online