On Thu, Jan 16, 2025 at 07:21:02PM +0530, Manivannan Sadhasivam wrote:
Hi,
This series carries forward the effort to add Kselftest for PCI Endpoint Subsystem started by Aman Gupta [1] a while ago. I reworked the initial version based on another patch that fixes the return values of IOCTLs in pci_endpoint_test driver and did many cleanups. Since the resulting work modified the initial version substantially, I took over the authorship.
This series also incorporates the review comment by Shuah Khan [2] to move the existing tests from 'tools/pci' to 'tools/testing/kselftest/pci_endpoint' before migrating to Kselftest framework. I made sure that the tests are executable in each commit and updated documentation accordingly.
- Mani
[1] https://lore.kernel.org/linux-pci/20221007053934.5188-1-aman1.gupta@samsung.... [2] https://lore.kernel.org/linux-pci/b2a5db97-dc59-33ab-71cd-f591e0b1b34d@linux...
Changes in v5:
- Incorporated comments from Niklas
- Added a patch to fix the DMA MEMCPY check in pci-epf-test driver
- Collected tags
- Rebased on top of pci/next 0333f56dbbf7ef6bb46d2906766c3e1b2a04a94d
Changes in v4:
- Dropped the BAR fix patches and submitted them separately: https://lore.kernel.org/linux-pci/20241231130224.38206-1-manivannan.sadhasiv...
- Rebased on top of pci/next 9e1b45d7a5bc0ad20f6b5267992da422884b916e
Changes in v3:
- Collected tags.
- Added a note about failing testcase 10 and command to skip it in documentation.
- Removed Aman Gupta and Padmanabhan Rajanbabu from CC as their addresses are bouncing.
Changes in v2:
- Added a patch that fixes return values of IOCTL in pci_endpoint_test driver
- Moved the existing tests to new location before migrating
- Added a fix for BARs on Qcom devices
- Updated documentation and also added fixture variants for memcpy & DMA modes
Manivannan Sadhasivam (4): PCI: endpoint: pci-epf-test: Fix the check for DMA MEMCPY test misc: pci_endpoint_test: Fix the return value of IOCTL selftests: Move PCI Endpoint tests from tools/pci to Kselftests selftests: pci_endpoint: Migrate to Kselftest framework
Documentation/PCI/endpoint/pci-test-howto.rst | 170 +++++------ MAINTAINERS | 2 +- drivers/misc/pci_endpoint_test.c | 255 +++++++++-------- drivers/pci/endpoint/functions/pci-epf-test.c | 4 +- tools/pci/Build | 1 - tools/pci/Makefile | 58 ---- tools/pci/pcitest.c | 264 ------------------ tools/pci/pcitest.sh | 73 ----- tools/testing/selftests/Makefile | 1 + .../testing/selftests/pci_endpoint/.gitignore | 2 + tools/testing/selftests/pci_endpoint/Makefile | 7 + tools/testing/selftests/pci_endpoint/config | 4 + .../pci_endpoint/pci_endpoint_test.c | 221 +++++++++++++++ 13 files changed, 435 insertions(+), 627 deletions(-) delete mode 100644 tools/pci/Build delete mode 100644 tools/pci/Makefile delete mode 100644 tools/pci/pcitest.c delete mode 100644 tools/pci/pcitest.sh create mode 100644 tools/testing/selftests/pci_endpoint/.gitignore create mode 100644 tools/testing/selftests/pci_endpoint/Makefile create mode 100644 tools/testing/selftests/pci_endpoint/config create mode 100644 tools/testing/selftests/pci_endpoint/pci_endpoint_test.c
-- 2.25.1
I ran the test using simply:
$ ./pci_endpoint_test
and got:
# RUN pci_ep_basic.MSIX_TEST ... # pci_endpoint_test.c:129:MSIX_TEST:Expected 0 (0) == ret (-110) # pci_endpoint_test.c:129:MSIX_TEST:Test failed for MSI-X33 # pci_endpoint_test.c:129:MSIX_TEST:Expected 0 (0) == ret (-110) # pci_endpoint_test.c:129:MSIX_TEST:Test failed for MSI-X34 # pci_endpoint_test.c:129:MSIX_TEST:Expected 0 (0) == ret (-110) # pci_endpoint_test.c:129:MSIX_TEST:Test failed for MSI-X35 # pci_endpoint_test.c:129:MSIX_TEST:Expected 0 (0) == ret (-110) # pci_endpoint_test.c:129:MSIX_TEST:Test failed for MSI-X36 # pci_endpoint_test.c:129:MSIX_TEST:Expected 0 (0) == ret (-110) # pci_endpoint_test.c:129:MSIX_TEST:Test failed for MSI-X37 # pci_endpoint_test.c:129:MSIX_TEST:Expected 0 (0) == ret (-110) # pci_endpoint_test.c:129:MSIX_TEST:Test failed for MSI-X38 # pci_endpoint_test.c:129:MSIX_TEST:Expected 0 (0) == ret (-110) # pci_endpoint_test.c:129:MSIX_TEST:Test failed for MSI-X39
I think that you should also do:
diff --git a/Documentation/PCI/endpoint/pci-test-howto.rst b/Documentation/PCI/endpoint/pci-test-howto.rst index 7d0dbad61456..7d5049c884dd 100644 --- a/Documentation/PCI/endpoint/pci-test-howto.rst +++ b/Documentation/PCI/endpoint/pci-test-howto.rst @@ -81,8 +81,8 @@ device, the following commands can be used::
# echo 0x104c > functions/pci_epf_test/func1/vendorid # echo 0xb500 > functions/pci_epf_test/func1/deviceid - # echo 16 > functions/pci_epf_test/func1/msi_interrupts - # echo 8 > functions/pci_epf_test/func1/msix_interrupts + # echo 32 > functions/pci_epf_test/func1/msi_interrupts + # echo 2048 > functions/pci_epf_test/func1/msix_interrupts
Such that the documentation suggests values that will actually make the pci_endpoint_test pass without any special parameters set.
Other than that small nit, for the series: Tested-by: Niklas Cassel cassel@kernel.org