https://bugs.dpdk.org/show_bug.cgi?id=1006
Bug ID: 1006 Summary: [dpdk-22.03] [asan] coremask/individual_coremask: AddressSanitizer DEADLYSIGNAL Product: DPDK Version: 22.03 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: Normal Component: core Assignee: dev@dpdk.org Reporter: songx.ji...@intel.com Target Milestone: --- OS: Ubuntu 20.04.4 LTS/5.13.0-30-generic Compiler: gcc version 9.4.0 Hardware platform: Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz NIC hardware: Ethernet Controller E810-C for SFP 1593 NIC firmware: driver: vfio-pci kdriver: ice-1.8.3 firmware: 3.20 0x8000d847 1.3146.0 pkg: ice os default 1.3.28.0 Test Setup 1. Compile dpdk: rm -rf x86_64-native-linuxapp-gcc CC=gcc meson -Denable_kmods=True -Dlibdir=lib -Dbuildtype=debug -Db_lundef=false -Db_sanitize=address --default-library=static x86_64-native-linuxapp-gcc ninja -C x86_64-native-linuxapp-gcc -j 70 2.blind port to dpdk usertools/dpdk-devbind.py --force --bind=vfio-pci 0000:31:00.0 0000:31:00.1 0000:31:00.2 0000:31:00.3 echo 0 > /proc/sys/kernel/randomize_va_space ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x2 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x4 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x8 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x10 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x20 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x40 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x80 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x100 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x200 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x400 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x800 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x1000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x2000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x4000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x8000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x10000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x20000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x40000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x80000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x100000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x200000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x400000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x800000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x1000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x2000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x4000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x8000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x10000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x20000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x40000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x80000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x100000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x200000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x400000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x800000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x1000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x2000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x4000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x8000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x10000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x20000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x40000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x80000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x100000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x200000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x400000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x800000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x1000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x2000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x4000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x8000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x10000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x20000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x40000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x80000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x100000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x200000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x400000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x800000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x1000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x2000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x4000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x8000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x10000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x20000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x40000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x80000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x100000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x200000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x400000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x800000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x1000000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x2000000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x4000000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x8000000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x10000000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x20000000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x40000000000000000000 -n 4 --log-level="lib.eal,8" quit ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x80000000000000000000 -n 4 --log-level="lib.eal,8" quit Show the output from the previous commands. Sometimes, when closing testpmd, the following asan errors will appear AddressSanitizer:DEADLYSIGNAL ================================================================= or AddressSanitizer:DEADLYSIGNAL ================================================================= ==241012==ERROR: AddressSanitizer: SEGV on unknown address 0x7fe77ffb3fe0 (pc 0x555559d32f96 bp 0x7ffff36fc0d0 sp 0x7ffff36fc040 T1) ==241012==The signal is caused by a READ memory access. dut.10.239.251.45: ./x86_64-native-linuxapp-gcc/app/test/dpdk-test -c 0x80000000000000 -n 4 --log-level="lib.eal,8" dut.10.239.251.45: Buffered info: 0 0x555559d32f95 in ice_interrupt_handler ../drivers/net/ice/ice_ethdev.c:1276 #1 0x5555578e3583 in eal_intr_process_interrupts ../lib/eal/linux/eal_interrupts.c:1025 #2 0x5555578e3e08 in eal_intr_handle_interrupts ../lib/eal/linux/eal_interrupts.c:1099 #3 0x5555578e426e in eal_intr_thread_main ../lib/eal/linux/eal_interrupts.c:1171 #4 0x55555789da81 in ctrl_thread_init ../lib/eal/common/eal_common_thread.c:206 #5 0x7ffff7020608 in start_thread /build/glibc-sMfBJT/glibc-2.31/nptl/pthread_create.c:477 #6 0x7ffff6f45162 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f162)AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV ../drivers/net/ice/ice_ethdev.c:1276 in ice_interrupt_handler Thread T1 created by T0 here: #0 0x7ffff75c9805 in pthread_create (/lib/x86_64-linux-gnu/libasan.so.5+0x3a805) #1 0x55555789dbc5 in rte_ctrl_thread_create ../lib/eal/common/eal_common_thread.c:227 #2 0x5555578e4339 in rte_eal_intr_init ../lib/eal/linux/eal_interrupts.c:1199 #3 0x5555578d3299 in rte_eal_init ../lib/eal/linux/eal.c:1042 #4 0x555555e7503e in main ../app/test/test.c:146 #5 0x7ffff6e4a0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2)==241012==ABORTING Expected Result: no Asan errors Regression Is this issue a regression: (Y/N)Y bad commit: dpdk-22.03: 89d3557c8de36a40266ddfbfbaa73adcda97c8f4 [root@carlsville_210 ~/dpdk]# git show 89d3557c8de36a40266ddfbfbaa73adcda97c8f4 commit 89d3557c8de36a40266ddfbfbaa73adcda97c8f4 Author: Harman Kalra <hka...@marvell.com> Date: Fri Jan 21 17:34:19 2022 +0530 common/cnxk: always use single interrupt ID with NIX An errata exists whereby, in certain cases NIX may use an incorrect QINT_IDX for SQ interrupts. As a result, the interrupt may not be delivered to software, or may not be associated with the correct SQ. When NIX uses an incorrect QINT_IDX : 1. NIX_LF_QINT(0..63)_CNT[COUNT] will be incremented for incorrect QINT. 2. NIX_LF_QINT(0..63)_INT[INTR] will be set for incorrect QINT. Fixes: ae06070901ab ("common/cnxk: add NIX Tx queue management API") Cc: sta...@dpdk.org Signed-off-by: Harman Kalra <hka...@marvell.com> Acked-by: Jerin Jacob <jer...@marvell.com> -- You are receiving this mail because: You are the assignee for the bug.