[LTP] PCI test of ltp: wrong device was scanned

tianyu 1406985325@qq.com
Wed Jan 13 02:56:35 CET 2021


Hi,all

I have some questions about PCI testing.

testcases/kernel/device-drivers/pci/tpci_user/tpci.c ->static void 
test_run(void)   ,the code scan the devices on a bus one by one,|then it 
calls pci_scan_slot() in kernel.||But A PCIe device has only 8 
functions. Isn’t it possible to scan the next device here?|

|For example, on the problematic machine: 1. When traversing to the 8.1 
device, it will scan to 9.0 by mistake, and then the kernel will turn 
9.0 into a multi-function device (the 9.0 device is a single-function 
device) 2. When traversing to the 8.2 device, call pci_rescan_bus in 
test-case 6 of the ltp test program to scan all devices on bus 0. At 
this time, when the 9.0 device is accessed, it is judged to be a 
multi-function device, and the subsequent functions are accessed. Before 
accessing the function, it will first judge the vendor id. If it is 
0xFFFF, it means that the function does not exist. However, at this 
time, it is found that the vendor id of 9.1 exists and is the same as 
9.0 (it should be 0xffff), so the kernel recognizes 9.1. Next, I 
reconfigured 9.1 and assigned its next level of bus to bus 4. In fact, 
bus 4 does not exist (the serial port log is as follows)|

[ 4218.291890][ 0] ltp_tpci: found pci_dev '0000:00:08.2', bus 0, devfn 
66 [ 4218.298560][ 0] ltp_tpci: Bus number: 0 [ 4218.302503][ 0] 
ltp_tpci: test-case 1 [ 4218.306232][ 0] ltp_tpci: enable pci device [ 
4218.310482][ 0] ltp_tpci: enabled pci device [ 4218.314919][ 0] 
ltp_tpci: test-case 2 [ 4218.318679][ 0] ltp_tpci: find bus [ 
4218.322164][ 0] ltp_tpci: success returned bus pointer [ 4218.327538][ 
0] ltp_tpci: test-case 3 [ 4218.331271][ 0] ltp_tpci: get pci device [ 
4218.335266][ 0] ltp_tpci: found pci device from device info [ 
4218.340974][ 0] ltp_tpci: test-case 4 [ 4218.344709][ 0] ltp_tpci: find 
pci class [ 4218.348740][ 0] ltp_tpci: found pci device from class 
number [ 4218.354664][ 0] ltp_tpci: test-case 5 [ 4218.358387][ 0] 
ltp_tpci: get pci subsys [ 4218.362383][ 0] ltp_tpci: found pci device 
from subsys info [ 4218.368070][ 0] ltp_tpci: test-case 6 [ 
4218.371802][ 0] ltp_tpci: scan pci bus [ 4218.375816][ 0] pci 
0000:00:09.1: [Firmware Bug]: reg 0x10: invalid BAR (can't size) [ 
4218.384249][ 0] pci 0000:00:09.1: bridge configuration invalid ([bus 
00-00]), reconfiguring [ 4218.393594][ 0] pci 0000:00:09.1: PCI bridge 
to [bus 04] [ 4218.399043][ 0] pcieport 0000:00:09.1: Device 14:7a19, 
irq 96 [ 4218.405064][ 0] pcieport 0000:00:09.1: Signaling PME with IRQ 
133 [ 4218.411336][ 1] ltp_tpci: success scan bus [ 4218.415692][ 1] 
ltp_tpci: test-case 7 [ 4218.419500][ 1] ltp_tpci: scan pci slot
||

||

|I think although there may be problems with PCI devices, is the ltp 
test correct? |



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20210113/3a00197b/attachment-0001.htm>


More information about the ltp mailing list