mbox series

[RFC,00/11] Introduce a test for continuous transfer

Message ID 20230317113238.142970-1-mie@igel.co.jp (mailing list archive)
Headers show
Series Introduce a test for continuous transfer | expand

Message

Shunsuke Mie March 17, 2023, 11:32 a.m. UTC
This patchset introduces testing through continuous transfer to the PCI
endpoint tests. The purpose is to find bugs that may exist in the endpoint
controller driver. This changes able to find bugs in the DW EDMA driver and
this patchset includes the fix.

This bug does not appear in the current tests because these synchronize to
finish with every data transfer. However, the problem occurs with
continuous DMA issuances. The continuous transfers are required to get high
throughput and low latency. Therefore, the added tests will enable
realistic transfer testing.

This patchset is divided into three parts:
- Remove duplicated definitions and improve some code [1-6/11]
- Add continuous transfer tests [7-9/11]
- Fix for the DW EDMA driver bug [10,11/11]

This patchset has beed tested on RCar Spidar that has dw pci edma chip.

Shunsuke Mie (11):
  misc: pci_endpoint_test: Aggregate irq_type checking
  misc: pci_endpoint_test: Remove an unused variable
  pci: endpoint: function/pci-epf-test: Unify a range of time
    measurement
  PCI: endpoint: functions/pci-epf-test: Move common difinitions to
    header file
  MAINTAINERS: Add a header file for pci-epf-test
  misc: pci_endpoint_test: Use a common header file between endpoint
    driver
  PCI: endpoint: functions/pci-epf-test: Extend the test for continuous
    transfers
  misc: pci_endpoint_test: Support a test of continuous transfer
  tools: PCI: Add 'C' option to support continuous transfer
  dmaengine: dw-edma: Fix to change for continuous transfer
  dmaengine: dw-edma: Fix to enable to issue dma request on DMA
    processing

 MAINTAINERS                                   |   1 +
 drivers/dma/dw-edma/dw-edma-core.c            |  30 ++-
 drivers/misc/pci_endpoint_test.c              | 132 ++++--------
 drivers/pci/endpoint/functions/pci-epf-test.c | 199 ++++++++----------
 include/linux/pci-epf-test.h                  |  67 ++++++
 include/uapi/linux/pcitest.h                  |   1 +
 tools/pci/pcitest.c                           |  13 +-
 7 files changed, 231 insertions(+), 212 deletions(-)
 create mode 100644 include/linux/pci-epf-test.h

Comments

Manivannan Sadhasivam March 31, 2023, 5:38 a.m. UTC | #1
On Fri, Mar 17, 2023 at 08:32:27PM +0900, Shunsuke Mie wrote:
> This patchset introduces testing through continuous transfer to the PCI
> endpoint tests. The purpose is to find bugs that may exist in the endpoint
> controller driver. This changes able to find bugs in the DW EDMA driver and
> this patchset includes the fix.
> 
> This bug does not appear in the current tests because these synchronize to
> finish with every data transfer. However, the problem occurs with
> continuous DMA issuances. The continuous transfers are required to get high
> throughput and low latency. Therefore, the added tests will enable
> realistic transfer testing.
> 
> This patchset is divided into three parts:
> - Remove duplicated definitions and improve some code [1-6/11]
> - Add continuous transfer tests [7-9/11]
> - Fix for the DW EDMA driver bug [10,11/11]
> 
> This patchset has beed tested on RCar Spidar that has dw pci edma chip.
> 

If you want maintainers to review the patches separately, please remove the RFC
tag. Unless you are looking for some overall feedback about the approach.

But we are in the process of migrating the existing test under tools to
Kselftest framework [1]. Until then, we cannot accept patches improving the
existing test code. So please respin the patches on top of the Kselftest patch
once it got posted. It's already due for some time :/

Also the subject should mention "PCI endpoint".

- Mani

[1] https://lore.kernel.org/all/20221007053934.5188-1-aman1.gupta@samsung.com/

> Shunsuke Mie (11):
>   misc: pci_endpoint_test: Aggregate irq_type checking
>   misc: pci_endpoint_test: Remove an unused variable
>   pci: endpoint: function/pci-epf-test: Unify a range of time
>     measurement
>   PCI: endpoint: functions/pci-epf-test: Move common difinitions to
>     header file
>   MAINTAINERS: Add a header file for pci-epf-test
>   misc: pci_endpoint_test: Use a common header file between endpoint
>     driver
>   PCI: endpoint: functions/pci-epf-test: Extend the test for continuous
>     transfers
>   misc: pci_endpoint_test: Support a test of continuous transfer
>   tools: PCI: Add 'C' option to support continuous transfer
>   dmaengine: dw-edma: Fix to change for continuous transfer
>   dmaengine: dw-edma: Fix to enable to issue dma request on DMA
>     processing
> 
>  MAINTAINERS                                   |   1 +
>  drivers/dma/dw-edma/dw-edma-core.c            |  30 ++-
>  drivers/misc/pci_endpoint_test.c              | 132 ++++--------
>  drivers/pci/endpoint/functions/pci-epf-test.c | 199 ++++++++----------
>  include/linux/pci-epf-test.h                  |  67 ++++++
>  include/uapi/linux/pcitest.h                  |   1 +
>  tools/pci/pcitest.c                           |  13 +-
>  7 files changed, 231 insertions(+), 212 deletions(-)
>  create mode 100644 include/linux/pci-epf-test.h
> 
> -- 
> 2.25.1
>
Shunsuke Mie April 4, 2023, 9:57 a.m. UTC | #2
On 2023/03/31 14:38, Manivannan Sadhasivam wrote:
> On Fri, Mar 17, 2023 at 08:32:27PM +0900, Shunsuke Mie wrote:
>> This patchset introduces testing through continuous transfer to the PCI
>> endpoint tests. The purpose is to find bugs that may exist in the endpoint
>> controller driver. This changes able to find bugs in the DW EDMA driver and
>> this patchset includes the fix.
>>
>> This bug does not appear in the current tests because these synchronize to
>> finish with every data transfer. However, the problem occurs with
>> continuous DMA issuances. The continuous transfers are required to get high
>> throughput and low latency. Therefore, the added tests will enable
>> realistic transfer testing.
>>
>> This patchset is divided into three parts:
>> - Remove duplicated definitions and improve some code [1-6/11]
>> - Add continuous transfer tests [7-9/11]
>> - Fix for the DW EDMA driver bug [10,11/11]
>>
>> This patchset has beed tested on RCar Spidar that has dw pci edma chip.
>>
> If you want maintainers to review the patches separately, please remove the RFC
> tag. Unless you are looking for some overall feedback about the approach.
Got it.
>
> But we are in the process of migrating the existing test under tools to
> Kselftest framework [1]. Until then, we cannot accept patches improving the
> existing test code. So please respin the patches on top of the Kselftest patch
> once it got posted. It's already due for some time :/
I understood. I'll track the work of Kselftest migration.
>
> Also the subject should mention "PCI endpoint".
Yes.
>
> - Mani
>
> [1] https://lore.kernel.org/all/20221007053934.5188-1-aman1.gupta@samsung.com/
Thank you for your comments.
>> Shunsuke Mie (11):
>>    misc: pci_endpoint_test: Aggregate irq_type checking
>>    misc: pci_endpoint_test: Remove an unused variable
>>    pci: endpoint: function/pci-epf-test: Unify a range of time
>>      measurement
>>    PCI: endpoint: functions/pci-epf-test: Move common difinitions to
>>      header file
>>    MAINTAINERS: Add a header file for pci-epf-test
>>    misc: pci_endpoint_test: Use a common header file between endpoint
>>      driver
>>    PCI: endpoint: functions/pci-epf-test: Extend the test for continuous
>>      transfers
>>    misc: pci_endpoint_test: Support a test of continuous transfer
>>    tools: PCI: Add 'C' option to support continuous transfer
>>    dmaengine: dw-edma: Fix to change for continuous transfer
>>    dmaengine: dw-edma: Fix to enable to issue dma request on DMA
>>      processing
>>
>>   MAINTAINERS                                   |   1 +
>>   drivers/dma/dw-edma/dw-edma-core.c            |  30 ++-
>>   drivers/misc/pci_endpoint_test.c              | 132 ++++--------
>>   drivers/pci/endpoint/functions/pci-epf-test.c | 199 ++++++++----------
>>   include/linux/pci-epf-test.h                  |  67 ++++++
>>   include/uapi/linux/pcitest.h                  |   1 +
>>   tools/pci/pcitest.c                           |  13 +-
>>   7 files changed, 231 insertions(+), 212 deletions(-)
>>   create mode 100644 include/linux/pci-epf-test.h
>>
>> -- 
>> 2.25.1
>>
Best,

Shunsuke.