All of lore.kernel.org
 help / color / mirror / Atom feed
From: Niklas Cassel <cassel@kernel.org>
To: Koichiro Den <den@valinux.co.jp>
Cc: Frank Li <Frank.Li@kernel.org>,
	dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org,
	Manivannan Sadhasivam <mani@kernel.org>
Subject: Re: [PATCH 00/17] dmaengine: dw-edma: Support dynamic LL appends
Date: Mon, 22 Jun 2026 16:18:01 +0200	[thread overview]
Message-ID: <ajlEGS99fQT5rGkf@ryzen> (raw)
In-Reply-To: <tau5svk3bcatzeapqeb6mun7dxi4ifk56g5ltkk366ljozjzit@vepneiac3f26>

On Mon, Jun 22, 2026 at 04:38:49PM +0900, Koichiro Den wrote:
> On Tue, Jun 16, 2026 at 12:40:54AM +0900, Koichiro Den wrote:
> 
> Hi Frank, Niklas, all,
> 
> I am looking for a good way to stress PCIe controller DMA engines, such as
> eDMA/HDMA, and measure their upper-bound throughput.
> 
> nvmet_pci_epf is useful since it is a real in-tree consumer, but it is not a
> very direct benchmark for the DMA engine itself. So I wonder if
> pci_endpoint_test would be a reasonable place to add an opt-in DMA performance
> mode.
> 
> One possible option I have in mind is:
> 
>   - a new fixture, pci_ep_dma_perf
>   - opt-in execution, for example with PCITEST_PERF=1 environment variable
>   - a few variants such as single and sg, possibly with a few knobs:
>      - PCITEST_PERF_NUM_WORKERS, to use multiple EP-side workers
>      - PCITEST_PERF_NUM_CHANS, to use multiple DMA channels
>      - perhaps other knobs for SG entry size, number of entries, etc.
>   - the new tests: READ_PERF_TEST and WRITE_PERF_TEST
> 
> For the other possible places I could think of, this still seems to fit best in
> pci_endpoint_test. For example, extending dmatest does not seem to fit well
> because this needs both EP and RC side setup. A separate kselftest also feels
> like it would duplicate a lot of pci_endpoint_test code. That said, I might be
> missing something.
> 
> What do you think? Any thoughts or suggestions would be much appreciated.

There are two existing (out-of-tree) tests for eDMA that I know of:

1)
https://patchwork.kernel.org/project/linux-pci/patch/cc195ac53839b318764c8f6502002cd6d933a923.1547230339.git.gustavo.pimentel@synopsys.com/

But as you can see, the comment was to use dmatest instead.
AFAICT, dmatest currently only supports DMA_MEMCPY, which, by hardware design,
cannot be supported by DWC eDMA HW (since it only allows remote to local, or
local to remote, and remote has to be a PCI address, while local is local
physical address).

Perhaps it is possible to add DMA_SLAVE support to dmatest.


2)
https://github.com/rockchip-linux/kernel/blob/develop-6.1/drivers/pci/controller/dwc/pcie-dw-dmatest.c
https://github.com/rockchip-linux/kernel/blob/develop-6.1/drivers/pci/controller/rockchip-pcie-dma.h


Anyway, since Vinod is the maintainer, it is probably him you need to talk
to come up with a way forward. To not waste your time, I would talk to him
before you spend a lot of time implementing something :)


Kind regards,
Niklas

      reply	other threads:[~2026-06-22 14:18 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-15 15:40 [PATCH 00/17] dmaengine: dw-edma: Support dynamic LL appends Koichiro Den
2026-06-15 15:40 ` [PATCH 01/17] dmaengine: dw-edma: Fix residue burst index in tx_status() Koichiro Den
2026-06-15 18:29   ` Frank Li
2026-06-15 15:40 ` [PATCH 02/17] dmaengine: dw-edma: Fix HDMA channel status register access Koichiro Den
2026-06-15 18:31   ` Frank Li
2026-06-15 15:40 ` [PATCH 03/17] dmaengine: dw-edma: Terminate STOP requests without callbacks Koichiro Den
2026-06-15 18:37   ` Frank Li
2026-06-16  5:27     ` Koichiro Den
2026-06-15 15:40 ` [PATCH 04/17] dmaengine: dw-edma: Clean up vchan descriptors on termination Koichiro Den
2026-06-15 18:43   ` Frank Li
2026-06-16  6:24     ` Koichiro Den
2026-06-15 15:40 ` [PATCH 05/17] dmaengine: dw-edma: Serialize channel state checks Koichiro Den
2026-06-15 18:47   ` Frank Li
2026-06-15 15:41 ` [PATCH 06/17] dmaengine: dw-edma: Add dw_edma_core_ll_cur_idx() to get current LL entry index Koichiro Den
2026-06-15 15:41 ` [PATCH 07/17] dmaengine: dw-edma: Move dw_hdma_set_callback_result() up Koichiro Den
2026-06-15 15:41 ` [PATCH 08/17] dmaengine: dw-edma: Make DMA link list work as a circular buffer Koichiro Den
2026-06-15 15:41 ` [PATCH 09/17] dmaengine: dw-edma: Add LL interrupt placement policy Koichiro Den
2026-06-15 15:41 ` [PATCH 10/17] dmaengine: dw-edma: Reclaim issued descriptors from LL progress Koichiro Den
2026-06-15 15:41 ` [PATCH 11/17] dmaengine: dw-edma: Use HDMA watermarks as progress events Koichiro Den
2026-06-15 15:41 ` [PATCH 12/17] dmaengine: dw-edma: Clear LL data entries on reset Koichiro Den
2026-06-15 15:41 ` [PATCH 13/17] dmaengine: dw-edma: Dispatch DONE interrupts by channel request Koichiro Den
2026-06-15 15:41 ` [PATCH 14/17] dmaengine: dw-edma: Reset LL state after terminate and abort Koichiro Den
2026-06-15 15:41 ` [PATCH 15/17] dmaengine: dw-edma: Dynamically append requests while running Koichiro Den
2026-06-15 15:41 ` [PATCH 16/17] dmaengine: dw-edma: Recover stopped HDMA from tx_status Koichiro Den
2026-06-15 15:41 ` [PATCH 17/17] dmaengine: dw-edma: Add trace support Koichiro Den
2026-06-16  9:13 ` [PATCH 00/17] dmaengine: dw-edma: Support dynamic LL appends Niklas Cassel
2026-06-17  0:48   ` Koichiro Den
2026-06-22  7:38 ` Koichiro Den
2026-06-22 14:18   ` Niklas Cassel [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ajlEGS99fQT5rGkf@ryzen \
    --to=cassel@kernel.org \
    --cc=Frank.Li@kernel.org \
    --cc=den@valinux.co.jp \
    --cc=dmaengine@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mani@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.