Re: [PATCH v9 00/12] Add MSI-X support on pcitest tool

From: Gustavo Pimentel
Date: Mon Jul 16 2018 - 10:52:04 EST


Hi Kishon,

On 16/07/2018 05:07, Kishon Vijay Abraham I wrote:
> Hi,
>
> On Friday 13 July 2018 09:29 PM, Gustavo Pimentel wrote:
>> Hi Lorenzo,
>>
>> On 13/07/2018 14:25, Lorenzo Pieralisi wrote:
>>> On Mon, Jul 09, 2018 at 06:42:38PM +0100, Gustavo Pimentel wrote:
>>>> Patch series made against Lorenzo's master branch.
>>>>
>>>> Fix EP link notification implementation.
>>>>
>>>> Add MSI-X support on pcitest tool.
>>>>
>>>> Add new callbacks methods and handlers to trigger the MSI-X interrupts
>>>> on the EP DesignWare IP driver.
>>>>
>>>> Allow to set/get MSI-X EP maximum capability number.
>>>>
>>>> Rework on set/get and triggering MSI methods on EP DesignWare IP driver.
>>>>
>>>> Add a new input parameter (msix) to pcitest tool to test MSI-X feature.
>>>>
>>>> Update the pcitest.sh script to support MSI-X feature tests.
>>>>
>>>> Gustavo Pimentel (12):
>>>> PCI: dwc: Fix EP link notification implementation
>>>> PCI: endpoint: Add MSI-X interfaces
>>>> PCI: Update xxx_pcie_ep_raise_irq() and pci_epc_raise_irq() signatures
>>>> PCI: dwc: Add MSI-X callbacks handler
>>>> PCI: dwc: Rework MSI callbacks handler
>>>> PCI: dwc: Add legacy interrupt callback handler
>>>> pci-epf-test/pci_endpoint_test: Cleanup PCI_ENDPOINT_TEST memspace
>>>> pci-epf-test/pci_endpoint_test: Use irq_type module parameter
>>>> pci-epf-test/pci_endpoint_test: Add MSI-X support
>>>> pci_endpoint_test: Add 2 ioctl commands
>>>> tools: PCI: Add MSI-X support
>>>> PCI: endpoint: Add MSI set maximum restriction
>>>>
>>>> Documentation/PCI/endpoint/pci-test-function.txt | 8 +-
>>>> Documentation/ioctl/ioctl-number.txt | 1 +
>>>> Documentation/misc-devices/pci-endpoint-test.txt | 6 +
>>>> drivers/misc/pci_endpoint_test.c | 260 ++++++++++++++++------
>>>> drivers/pci/controller/dwc/pci-dra7xx.c | 2 +-
>>>> drivers/pci/controller/dwc/pcie-artpec6.c | 2 +-
>>>> drivers/pci/controller/dwc/pcie-designware-ep.c | 217 ++++++++++++++++--
>>>> drivers/pci/controller/dwc/pcie-designware-plat.c | 11 +-
>>>> drivers/pci/controller/dwc/pcie-designware.h | 31 ++-
>>>> drivers/pci/controller/pcie-cadence-ep.c | 3 +-
>>>> drivers/pci/controller/pcie-rockchip-ep.c | 2 +-
>>>> drivers/pci/endpoint/functions/pci-epf-test.c | 86 +++++--
>>>> drivers/pci/endpoint/pci-ep-cfs.c | 24 ++
>>>> drivers/pci/endpoint/pci-epc-core.c | 68 +++++-
>>>> include/linux/pci-epc.h | 16 +-
>>>> include/linux/pci-epf.h | 1 +
>>>> include/uapi/linux/pcitest.h | 3 +
>>>> tools/pci/pcitest.c | 51 ++++-
>>>> tools/pci/pcitest.sh | 15 ++
>>>> 19 files changed, 664 insertions(+), 143 deletions(-)
>>>
>>> Gustavo, Kishon,
>>>
>>> it seems like this series has been thoroughly reviewed and it is
>>> ready to go, please let me know if there is any pending change.
>>
>> I just sent the patch # 10 based on Kishon's latest review.
>> For me it's nearly perfect. :)
>
> I got to test this series today and I found one issue.
>
> use this sequence:
> 1) pcitest -i 2 /* change to MSIX irq type */
> For platforms that doesn't support MSIX, get the following message
> pci-endpoint-test 0000:01:00.0: Failed to get MSI-X interrupts
> SET IRQ TYPE TO MSI-X: NOT OKAY
>
> However after this, pci_endpoint_test_set_irq() will invoke
> pci_endpoint_test_free_irq_vectors() and pci_endpoint_test_release_irq().
> This will free previously allocated MSI irq vectors.
>
> 2) pcitest -i 1 /* change to MSI irq type */
>
> This will not invoke pci_endpoint_test_alloc_irq_vectors() and
> pci_endpoint_test_request_irq() since now "if (irq_type == req_irq_type)"
> will return true.
>
> After this MSI tests will fail.
>
> Other than this failing sequence, the series looks good to me.

It's fixed on the patch series v11 (see patch
#10-pci_endpoint_test-Add-2-ioctl-commands.patch file).
Thanks!

>
> Thanks
> Kishon
>

Regards,
Gustavo