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: Tue, 12 Sep 2023 10:52:10 +0200 [thread overview]
Message-ID: <20230912105152.42cf1454@kmaincent-XPS-13-7390> (raw)
In-Reply-To: <phrpjn5dtqfo2fwjlkrsepjl4mgmjc24skpvcjo43g3p5sjv3g@mfzvfz7ygdad>
Hello Serge,
I am back with an hardware design answer:
> "Even though the PCIe itself respects the transactions ordering, the
> AXI bus does not have an end-to-end completion acknowledgement (it
> terminates at the PCIe EP boundary with bus), and does not guaranteed
> ordering if accessing different destinations on the Bus. So, an access to LL
> could be declared complete even though the transactions is still being
> pipelined in the AXI Bus. (a dozen or so clocks, I can give an accurate
> number if needed)
>
> The access to DMA registers is done through BAR0 “rolling”
> so the transaction does not actually go out on the AXI bus and
> looped-back to PCIe DMA, rather it stays inside the PCIe EP.
>
> For the above reasons, hypothetically, there’s a chance that even if the DMA
> LL is accessed before the DM DB from PCIe RC side, the DB could be updated
> before the LL in local memory."
On Thu, 22 Jun 2023 19:22:20 +0300
Serge Semin <fancer.lancer@gmail.com> wrote:
> If we get assured that hardware with such problem exists (if you'll get
> confirmation about the supposition 3. above) then we'll need to
> activate your trick for that hardware only. Adding dummy reads for all
> the remote eDMA setups doesn't look correct since it adds additional
> delay to the execution path and especially seeing nobody has noticed
> and reported such problem so far (for instance Gustavo didn't see the
> problem on his device otherwise he would have fixed it).
>
> So if assumption 3. is correct then I'd suggest the next
> implementation: add a new dw_edma_chip_flags flag defined (a.k.a
> DW_EDMA_SLOW_MEM), have it specified via the dw_edma_chip.flags field
> in the Akida device probe() method and activate your trick only if
> that flag is set.
The flag you suggested is about slow memory write but as said above the issue
comes from the AXI bus and not the memory. I am wondering why you don't see
this issue. If I understand well it should be present on all IP as the DMA
register is internal to the IP and the LL memory is external through AXI bus.
Did you stress your IP? On my side it appears with lots of operation using
several (at least 3) thread through 2 DMA channels.
Köry
next prev parent reply other threads:[~2023-09-12 8:55 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
2023-06-22 16:22 ` Serge Semin
2023-09-12 8:52 ` Köry Maincent [this message]
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=20230912105152.42cf1454@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