public inbox for dmaengine@vger.kernel.org
 help / color / mirror / Atom feed
From: "Köry Maincent" <kory.maincent@bootlin.com>
To: Serge Semin <fancer.lancer@gmail.com>
Cc: Cai Huoqing <cai.huoqing@linux.dev>,
	Manivannan Sadhasivam <mani@kernel.org>,
	Vinod Koul <vkoul@kernel.org>,
	Gustavo Pimentel <Gustavo.Pimentel@synopsys.com>,
	dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Herve Codina <herve.codina@bootlin.com>
Subject: Re: [PATCH 4/9] dmaengine: dw-edma: HDMA: Add memory barrier before starting the DMA transfer in remote setup
Date: Thu, 22 Jun 2023 17:12:03 +0200	[thread overview]
Message-ID: <20230622171203.6857b918@kmaincent-XPS-13-7390> (raw)
In-Reply-To: <ti6avu3xdrw7rjwskmemuxu4tcerfq3wd3y4c4v26pbjqjcs5h@izqmikcjsv56>

On Wed, 21 Jun 2023 18:56:49 +0300
Serge Semin <fancer.lancer@gmail.com> wrote:

> > Thanks for you detailed answer, this was instructive.
> > I will come back with more information if TLP flags are set.
> > FYI the PCIe board I am currently working with is the one from Brainchip:
> > Here is the driver:
> > https://github.com/Brainchip-Inc/akida_dw_edma  
> 
> I've glanced at the driver a bit:
> 
> 1. Nothing criminal I've noticed in the way the BARs are mapped. It's
> done as it's normally done. pcim_iomap_regions() is supposed to map
> with no additional optimization. So the caching seems irrelevant
> in this case.
> 
> 2. The probe() method performs some device iATU config:
> akida_1500_setup_iatu() and akida_1000_setup_iatu(). I would have a
> closer look at the way the inbound MWs setup is done.
> 
> 3. akida_1000_iatu_conf_table contains comments about the APB bus. If
> it's an internal device bus and both LPDDR and eDMA are accessible
> over the same bus, then the re-ordering may happen there. If APB means
> the well known Advanced Peripheral Bus, then it's a quite slow bus
> with respect to the system interconnect and PCIe buses. If eDMA regs
> and LL-memory buses are different then the last write to the LL-memory
> might be indeed still pending while the doorbells update arrives.
> Sending a dummy read to the LL-memory stalls the program execution
> until a response arrive (PCIe MRd TLPs are non-posted - "send and wait
> for response") which happens only after the last write to the
> LL-memory finishes. That's probably why your fix with the dummy-read
> works and why the delay you noticed is quite significant (4us).
> Though it looks quite strange to put LPDDR on such slow bus.
> 
> 4. I would have also had a closer look at the way the outbound MW is
> configured in your PCIe host controller (whether it enables some
> optimizations like Relaxed ordering and ID-based ordering).
> 
> In anyway I would have got in touch with the FPGA designers whether
> any of my suppositions correct (especially regarding 3.).

Alright, thanks for your instructive review!

In the HDMA driver point of view we can not know if the eDMA regs and the
LL-memory will be in same bus in whatever future implementation. Of course it
is the hardware designers who should be careful about having a fast bus and
memory for the LL, but wouldn't it be more cautious to have this read?
Just a small thought!

Köry

  reply	other threads:[~2023-06-22 15:12 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-09  8:16 [PATCH 0/9] Fix support of dw-edma HDMA NATIVE IP in remote setup Köry Maincent
2023-06-09  8:16 ` [PATCH 1/9] dmaengine: dw-edma: Fix the ch_count hdma callback Köry Maincent
2023-06-18 21:07   ` Serge Semin
2023-06-19 18:07     ` Köry Maincent
2023-06-09  8:16 ` [PATCH 2/9] dmaengine: dw-edma: Typos fixes Köry Maincent
2023-06-18 21:15   ` Serge Semin
2023-06-09  8:16 ` [PATCH 3/9] dmaengine: dw-edma: Add HDMA remote interrupt configuration Köry Maincent
2023-06-18 21:48   ` Serge Semin
2023-06-19 18:16     ` Köry Maincent
2023-06-20  9:32       ` Serge Semin
2023-06-09  8:16 ` [PATCH 4/9] dmaengine: dw-edma: HDMA: Add memory barrier before starting the DMA transfer in remote setup Köry Maincent
2023-06-19 17:02   ` Serge Semin
2023-06-19 18:32     ` Köry Maincent
2023-06-20 11:45       ` Serge Semin
2023-06-20 13:30         ` Köry Maincent
2023-06-21  9:45           ` Serge Semin
2023-06-21 13:19             ` Köry Maincent
2023-06-21 15:56               ` Serge Semin
2023-06-22 15:12                 ` Köry Maincent [this message]
2023-06-22 16:22                   ` Serge Semin
2023-09-12  8:52                     ` Köry Maincent
2023-09-25 16:06                       ` Serge Semin
2023-06-09  8:16 ` [PATCH 5/9] dmaengine: dw-edma: HDMA: Fix possible race condition " Köry Maincent
2023-06-19 17:15   ` Serge Semin
2023-06-19 18:41     ` Köry Maincent
2023-06-20 12:07       ` Serge Semin
2023-06-20 13:35         ` Köry Maincent
2023-06-09  8:16 ` [PATCH 6/9] dmaengine: dw-edma: HDMA: Fix possible race condition in local setup Köry Maincent
2023-06-09  8:16 ` [PATCH 7/9] dmaengine: dw-edma: eDMA: Add memory barrier before starting the DMA transfer in remote setup Köry Maincent
2023-06-09  8:16 ` [PATCH 8/9] dmaengine: dw-edma: eDMA: Fix possible race condition " Köry Maincent
2023-06-09  8:16 ` [PATCH 9/9] dmaengine: dw-edma: eDMA: Fix possible race condition in local setup Köry Maincent
2023-06-12  8:59 ` [PATCH 0/9] Fix support of dw-edma HDMA NATIVE IP in remote setup Köry Maincent
2023-06-12 16:48   ` Serge Semin

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=20230622171203.6857b918@kmaincent-XPS-13-7390 \
    --to=kory.maincent@bootlin.com \
    --cc=Gustavo.Pimentel@synopsys.com \
    --cc=cai.huoqing@linux.dev \
    --cc=dmaengine@vger.kernel.org \
    --cc=fancer.lancer@gmail.com \
    --cc=herve.codina@bootlin.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mani@kernel.org \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vkoul@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox