After the stress test, lspci command error

devkit version:JP7.0 (r38.2).


# 压测命令
sudo stress-ng -c 14 -i 5 --hdd 5 --vm 5 --vm-method all

Run the above command for load testing for 10 hours
After the test was completed, the lspci command froze.

strace is tracking the lspci process, which hangs when trying to read the file /sys/bus/pci/devices/0000:01:00.0/config.

mi@localhost:~$ sudo strace lspci
execve("/usr/bin/lspci", ["lspci"], 0xffffc4c8e1c0 /* 22 vars */) = 0
brk(NULL)                               = 0xaaaabd28d000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8bfaa000
faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=130471, ...}) = 0
mmap(NULL, 130471, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff8bf51000
close(3)                                = 0
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpci.so.3", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=133672, ...}) = 0
mmap(NULL, 262808, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_DENYWRITE, -1, 0) = 0xffff8bf10000
mmap(0xffff8bf10000, 197272, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff8bf10000
munmap(0xffff8bf41000, 62104)           = 0
mprotect(0xffff8bf21000, 122880, PROT_NONE) = 0
mmap(0xffff8bf3f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f000) = 0xffff8bf3f000
close(3)                                = 0
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libkmod.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=133048, ...}) = 0
mmap(NULL, 262160, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_DENYWRITE, -1, 0) = 0xffff8becf000
mmap(0xffff8bed0000, 196624, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff8bed0000
munmap(0xffff8becf000, 4096)            = 0
munmap(0xffff8bf01000, 57360)           = 0
mprotect(0xffff8bee9000, 90112, PROT_NONE) = 0
mmap(0xffff8beff000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f000) = 0xffff8beff000
close(3)                                = 0
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\360\206\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1722920, ...}) = 0
mmap(NULL, 1892240, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_DENYWRITE, -1, 0) = 0xffff8bd02000
mmap(0xffff8bd10000, 1826704, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff8bd10000
munmap(0xffff8bd02000, 57344)           = 0
munmap(0xffff8bece000, 8080)            = 0
mprotect(0xffff8beaa000, 77824, PROT_NONE) = 0
mmap(0xffff8bebd000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19d000) = 0xffff8bebd000
mmap(0xffff8bec2000, 49040, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff8bec2000
close(3)                                = 0
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=133272, ...}) = 0
mmap(NULL, 262312, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_DENYWRITE, -1, 0) = 0xffff8bccf000
mmap(0xffff8bcd0000, 196776, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff8bcd0000
munmap(0xffff8bccf000, 4096)            = 0
munmap(0xffff8bd01000, 57512)           = 0
mprotect(0xffff8bcea000, 86016, PROT_NONE) = 0
mmap(0xffff8bcff000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f000) = 0xffff8bcff000
close(3)                                = 0
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libudev.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=264712, ...}) = 0
mmap(NULL, 395840, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_DENYWRITE, -1, 0) = 0xffff8bc6f000
mmap(0xffff8bc70000, 330304, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff8bc70000
munmap(0xffff8bc6f000, 4096)            = 0
munmap(0xffff8bcc1000, 59968)           = 0
mprotect(0xffff8bca1000, 122880, PROT_NONE) = 0
mmap(0xffff8bcbf000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3f000) = 0xffff8bcbf000
close(3)                                = 0
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libzstd.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=657432, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8bfa8000
mmap(NULL, 786576, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_DENYWRITE, -1, 0) = 0xffff8bbaf000
mmap(0xffff8bbb0000, 721040, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff8bbb0000
munmap(0xffff8bbaf000, 4096)            = 0
munmap(0xffff8bc61000, 57488)           = 0
mprotect(0xffff8bc4b000, 81920, PROT_NONE) = 0
mmap(0xffff8bc5f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9f000) = 0xffff8bc5f000
close(3)                                = 0
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=198584, ...}) = 0
mmap(NULL, 327696, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_DENYWRITE, -1, 0) = 0xffff8bb5f000
mmap(0xffff8bb60000, 262160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff8bb60000
munmap(0xffff8bb5f000, 4096)            = 0
munmap(0xffff8bba1000, 57360)           = 0
mprotect(0xffff8bb8f000, 65536, PROT_NONE) = 0
mmap(0xffff8bb9f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2f000) = 0xffff8bb9f000
close(3)                                = 0
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libcrypto.so.3", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=4597928, ...}) = 0
mmap(NULL, 4739768, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_DENYWRITE, -1, 0) = 0xffff8b6da000
mmap(0xffff8b6e0000, 4674232, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff8b6e0000
munmap(0xffff8b6da000, 24576)           = 0
munmap(0xffff8bb56000, 37560)           = 0
mprotect(0xffff8bae7000, 77824, PROT_NONE) = 0
mmap(0xffff8bafa000, 364544, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x40a000) = 0xffff8bafa000
mmap(0xffff8bb53000, 8888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff8bb53000
close(3)                                = 0
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320}\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=67704, ...}) = 0
mmap(NULL, 196696, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_DENYWRITE, -1, 0) = 0xffff8b6af000
mmap(0xffff8b6b0000, 131160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff8b6b0000
munmap(0xffff8b6af000, 4096)            = 0
munmap(0xffff8b6d1000, 57432)           = 0
mprotect(0xffff8b6bb000, 81920, PROT_NONE) = 0
mmap(0xffff8b6cf000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xffff8b6cf000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8bfa6000
set_tid_address(0xffff8bfa6bb0)         = 11942
set_robust_list(0xffff8bfa6bc0, 24)     = 0
rseq(0xffff8bfa7200, 0x20, 0, 0xd428bc00) = 0
mprotect(0xffff8bebd000, 12288, PROT_READ) = 0
mprotect(0xffff8b6cf000, 4096, PROT_READ) = 0
mprotect(0xffff8bafa000, 352256, PROT_READ) = 0
mprotect(0xffff8bb9f000, 4096, PROT_READ) = 0
mprotect(0xffff8bc5f000, 4096, PROT_READ) = 0
mprotect(0xffff8bcbf000, 4096, PROT_READ) = 0
mprotect(0xffff8bcff000, 4096, PROT_READ) = 0
mprotect(0xffff8beff000, 4096, PROT_READ) = 0
mprotect(0xffff8bf3f000, 4096, PROT_READ) = 0
mprotect(0xaaaaaf24f000, 4096, PROT_READ) = 0
mprotect(0xffff8bfaf000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0xffff8bf51000, 130471)          = 0
prctl(PR_CAPBSET_READ, CAP_MAC_OVERRIDE) = 1
prctl(PR_CAPBSET_READ, 0x30 /* CAP_??? */) = -1 EINVAL (Invalid argument)
prctl(PR_CAPBSET_READ, CAP_CHECKPOINT_RESTORE) = 1
prctl(PR_CAPBSET_READ, 0x2c /* CAP_??? */) = -1 EINVAL (Invalid argument)
prctl(PR_CAPBSET_READ, 0x2a /* CAP_??? */) = -1 EINVAL (Invalid argument)
prctl(PR_CAPBSET_READ, 0x29 /* CAP_??? */) = -1 EINVAL (Invalid argument)
rt_sigprocmask(SIG_SETMASK, ~[ILL TRAP BUS FPE SEGV RTMIN RT_1], [], 8) = 0
rt_sigaction(SIGILL, {sa_handler=0xffff8b8d7f10, sa_mask=~[ILL TRAP BUS FPE SEGV RTMIN RT_1], sa_flags=0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGILL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
getrandom("\x48\x98\xbc\x20\x66\xe8\xf9\x86", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0xaaaabd28d000
brk(0xaaaabd2ae000)                     = 0xaaaabd2ae000
faccessat(AT_FDCWD, "/sys/bus/pci", R_OK) = 0
openat(AT_FDCWD, "/sys/bus/pci/devices", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
getdents64(3, 0xaaaabd28d5c0 /* 10 entries */, 32768) = 304
getdents64(3, 0xaaaabd28d5c0 /* 0 entries */, 32768) = 0
close(3)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0001:01:00.0/config", O_RDONLY) = 3
pread64(3, "\354\20R\310\7\5\20\0\1\0\200\2\10\0\0\0\1\0\0\204\0\0\0\0\4\0\0(\0\0\0\0"..., 64, 0) = 64
openat(AT_FDCWD, "/sys/bus/pci/devices/0001:01:00.0/vendor", O_RDONLY) = 4
read(4, "0x10ec\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0001:01:00.0/device", O_RDONLY) = 4
read(4, "0xc852\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0001:01:00.0/class", O_RDONLY) = 4
read(4, "0x028000\n", 1024)             = 9
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0001:01:00.0/revision", O_RDONLY) = 4
read(4, "0x01\n", 1024)                 = 5
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0001:01:00.0/subsystem_vendor", O_RDONLY) = 4
read(4, "0x1a3b\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0001:01:00.0/subsystem_device", O_RDONLY) = 4
read(4, "0x5600\n", 1024)               = 7
close(4)                                = 0
close(3)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:00:00.0/config", O_RDONLY) = 3
pread64(3, "\336\20\330\"\7\5\21\0\0\0\4\6\0\0\1\0\0\0\0\0\0\0\0\0\0\1\377\0\1\1\0\0"..., 64, 0) = 64
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:00:00.0/vendor", O_RDONLY) = 4
read(4, "0x10de\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:00:00.0/device", O_RDONLY) = 4
read(4, "0x22d8\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:00:00.0/class", O_RDONLY) = 4
read(4, "0x060400\n", 1024)             = 9
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:00:00.0/revision", O_RDONLY) = 4
read(4, "0x00\n", 1024)                 = 5
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:00:00.0/subsystem_vendor", O_RDONLY) = 4
read(4, "0x0000\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:00:00.0/subsystem_device", O_RDONLY) = 4
read(4, "0x0000\n", 1024)               = 7
close(4)                                = 0
close(3)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0000:00:00.0/config", O_RDONLY) = 3
pread64(3, "\336\20\346\"\7\5\21\0\0\0\4\6\0\0\1\0\0\0\0\0\0\0\0\0\0\1\377\0\361\1\0\0"..., 64, 0) = 64
openat(AT_FDCWD, "/sys/bus/pci/devices/0000:00:00.0/vendor", O_RDONLY) = 4
read(4, "0x10de\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0000:00:00.0/device", O_RDONLY) = 4
read(4, "0x22e6\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0000:00:00.0/class", O_RDONLY) = 4
read(4, "0x060400\n", 1024)             = 9
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0000:00:00.0/revision", O_RDONLY) = 4
read(4, "0x00\n", 1024)                 = 5
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0000:00:00.0/subsystem_vendor", O_RDONLY) = 4
read(4, "0x0000\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0000:00:00.0/subsystem_device", O_RDONLY) = 4
read(4, "0x0000\n", 1024)               = 7
close(4)                                = 0
close(3)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:01:00.0/config", O_RDONLY) = 3
pread64(3, "\354\20&\201\7\5\20\0\1\0\0\2\20\0\0\0\1\0\0\204\0\0\0\0\4\0\0000\0\0\0\0"..., 64, 0) = 64
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:01:00.0/vendor", O_RDONLY) = 4
read(4, "0x10ec\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:01:00.0/device", O_RDONLY) = 4
read(4, "0x8126\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:01:00.0/class", O_RDONLY) = 4
read(4, "0x020000\n", 1024)             = 9
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:01:00.0/revision", O_RDONLY) = 4
read(4, "0x01\n", 1024)                 = 5
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:01:00.0/subsystem_vendor", O_RDONLY) = 4
read(4, "0x10ec\n", 1024)               = 7
close(4)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0002:01:00.0/subsystem_device", O_RDONLY) = 4
read(4, "0x0123\n", 1024)               = 7
close(4)                                = 0
close(3)                                = 0
openat(AT_FDCWD, "/sys/bus/pci/devices/0000:01:00.0/config", O_RDONLY) = 3
pread64(3, 



The nvpmodel command does not return any result.

mi@localhost:~$ nvpmodel -q
NV Power Mode: 120W
1


^C
^C    

Temperature is normal.

mi@localhost:~$ cat /sys/devices/virtual/thermal/thermal_zone*/temp                              
41781                                                                                            
41781                                                                                            
41125                                                                                            
40937                                                                                            
38906

Looks like we could not reproduce this after running stress for 17hours.

Is there any special steps?

There are no other special operations. It’s just a long-term load test.

The problem occurred again yesterday.

Desktop system crashed,similar to:

Hi, Wayne
we reproduce this issue again. just doing some lspci operation when system bootup.
above already supply strace info. is there any other info need to supply?

How is the reproduce rate of this issue?

For example, If I reboot 10 times, how many times shall we see this issue?

I just want to clarify how should we do to reproduce this.

Hi, Wayne
It is not easy to reproduce. we just reproduce this issue for 3 times. no other operation, just input lspci at the bash window.
i see R38.2.1 fix a pcie related issue. is there any detail info of this issue, like forums link?
4755448 Fix PCIe completion timeout issues during the PTP operation

This one has nothing to do with the issue you are reporting. It is just an issue related to the PTP function of on board ethernet.

Hi, Wayne
As R38.2.1 have no related fixed issue with the lspci issue. and it is hard to reproduce stably.
how can we analyze this issue?
the same thing is when lspci hang problems happen, strace all show the program is reading /sys/bus/pci/devices/0000:01:00.0/config file.
if we reproduce the problem again, what kind of log or operation should we supply to help analyze this issue?

When using devkit R38.2.1 to reproduce the desktop freeze issue, the same lspci issue also occurred, and it was stuck at reading /sys/bus/pci/devices/0000:01:00.0/config

Desktop system crashed