Message ID | 20250116135106.19143-1-manivannan.sadhasivam@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | Migrate PCI Endpoint Subsystem tests to Kselftest | expand |
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.com > [2] https://lore.kernel.org/linux-pci/b2a5db97-dc59-33ab-71cd-f591e0b1b34d@linuxfoundation.org > > 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.sadhasivam@linaro.org/ > * 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>
On Thu, Jan 16, 2025 at 04:36:07PM +0100, Niklas Cassel wrote: > 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.com > > [2] https://lore.kernel.org/linux-pci/b2a5db97-dc59-33ab-71cd-f591e0b1b34d@linuxfoundation.org > > > > 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.sadhasivam@linaro.org/ > > * 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. > Agree and this is what I am doing locally, but that change is not really related to this series. So I'll submit it separately. > > Other than that small nit, for the series: > Tested-by: Niklas Cassel <cassel@kernel.org> Thanks a lot! - Mani
On 16 January 2025 17:12:27 CET, Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> wrote: >On Thu, Jan 16, 2025 at 04:36:07PM +0100, Niklas Cassel wrote: >> 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.com >> > [2] https://lore.kernel.org/linux-pci/b2a5db97-dc59-33ab-71cd-f591e0b1b34d@linuxfoundation.org >> > >> > 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.sadhasivam@linaro.org/ >> > * 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. >> > >Agree and this is what I am doing locally, but that change is not really related >to this series. So I'll submit it separately. I don't not agree that it is not related, before this series the example output was: MSI1: OKAY - MSI2: OKAY - MSI3: OKAY - MSI4: OKAY - MSI5: OKAY - MSI6: OKAY - MSI7: OKAY - MSI8: OKAY - MSI9: OKAY - MSI10: OKAY - MSI11: OKAY - MSI12: OKAY - MSI13: OKAY - MSI14: OKAY - MSI15: OKAY - MSI16: OKAY - MSI17: NOT OKAY - MSI18: NOT OKAY - MSI19: NOT OKAY - MSI20: NOT OKAY - MSI21: NOT OKAY - MSI22: NOT OKAY - MSI23: NOT OKAY - MSI24: NOT OKAY - MSI25: NOT OKAY - MSI26: NOT OKAY - MSI27: NOT OKAY - MSI28: NOT OKAY - MSI29: NOT OKAY - MSI30: NOT OKAY - MSI31: NOT OKAY - MSI32: NOT OKAY - SET IRQ TYPE TO MSI-X: OKAY - MSI-X1: OKAY - MSI-X2: OKAY - MSI-X3: OKAY - MSI-X4: OKAY - MSI-X5: OKAY - MSI-X6: OKAY - MSI-X7: OKAY - MSI-X8: OKAY - MSI-X9: NOT OKAY - MSI-X10: NOT OKAY - MSI-X11: NOT OKAY - MSI-X12: NOT OKAY - MSI-X13: NOT OKAY - MSI-X14: NOT OKAY - MSI-X15: NOT OKAY - MSI-X16: NOT OKAY So the output matched the suggested values in the documentation. After this series, the documentation still suggests msi == 16 and msi-x == 8, but the example output now shows that there was no failures. So I think it is most consistent to just update the example in the same commit (in this series) that updates the output to show everything as good. Kind regards, Niklas > >> >> Other than that small nit, for the series: >> Tested-by: Niklas Cassel <cassel@kernel.org> > >Thanks a lot! > >- Mani > >-- >மணிவண்ணன் சதாசிவம்
On Thu, Jan 16, 2025 at 05:39:30PM +0100, Niklas Cassel wrote: > [...] > So the output matched the suggested values in the documentation. > > After this series, the documentation still suggests msi == 16 and msi-x == 8, > but the example output now shows that > there was no failures. > Ah, I misunderstood what you meant. > > So I think it is most consistent to just update the example in the same commit (in this series) that updates the output to show everything as good. > Yeah, makes sense. Let me change it in next revision, thanks! - Mani