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 5/9] dmaengine: dw-edma: HDMA: Fix possible race condition in remote setup
Date: Tue, 20 Jun 2023 15:35:49 +0200 [thread overview]
Message-ID: <20230620153549.0677da97@kmaincent-XPS-13-7390> (raw)
In-Reply-To: <wqixf5z7yjbcubjhpkormriptrcihcjezjujmwxihdcagzpzom@igfkbjwuwy7e>
On Tue, 20 Jun 2023 15:07:37 +0300
Serge Semin <fancer.lancer@gmail.com> wrote:
> > This one is only hypothetical. It appears to me that writing the control
> > after the configuration of sar and dar is more relevant to prevent race
> > issues and should be the usual coding choice. Also you are right saying
> > that it will be relevant only for the LL tree entries recycling.
> > Simple question from non DMA expert: isn't cyclic DMA mode recycle the LL
> > tree entries?
>
> Ideally the driver should have been designed in the way you say:
> define a ring of the Linked List entries and recycle the already used
> entries while the already enabled entries are being handled by the
> DMA-engine (a similar approach is described in the DW PCIe/eDMA hw
> manual). DW eDMA engine CSRs and LLI descriptor provide enough
> functionality for that. Alas the driver implementation is more
> straightforward:
> 1. Each DMA-engine config: SG-list, cyclic, interleaved is split up
> into the "burst" entries. SG-list entries are directly mapped to the
> eDMA "burst" entries. Cyclic iterations are unrolled into the
> respective number of eDMA "burst" entries. A similar story with the
> interleaved transactions.
> 2. If there is no enough entries in the Linked-List memory to fully
> execute the requested DMA-transfers, then another so called DW eDMA
> "chunk" is allocated.
> 3. DW eDMA engine executes the "chunks" one after another stopping at
> the end of each one and recharging the engine with the next "chunk" until
> the last one is finished.
>
> It isn't the most effective architecture, but that's how it was
> originally developed by Gustavo. Anyway discussing it is a good food
> for thoughts for the driver refactoring though.)
thanks for enlightening me, then indeed we will never face the issue solved by
this patches as we won't recycle LL tree entries.
next prev parent reply other threads:[~2023-06-20 13:35 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
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 [this message]
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=20230620153549.0677da97@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