DMA Engine development
 help / color / mirror / Atom feed
From: Logan Gunthorpe <logang@deltatee.com>
To: Vinod Koul <vkoul@kernel.org>
Cc: Kelvin Cao <kelvin.cao@microchip.com>,
	dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org,
	George.Ge@microchip.com, christophe.jaillet@wanadoo.fr,
	hch@infradead.org
Subject: Re: [PATCH v8 1/1] dmaengine: switchtec-dma: Introduce Switchtec DMA engine PCI driver
Date: Fri, 14 Nov 2025 15:28:29 -0700	[thread overview]
Message-ID: <0970f42e-503b-49e8-9450-cf83c476d580@deltatee.com> (raw)
In-Reply-To: <e759d483-e303-421a-b674-72fd9121750d@deltatee.com>



On 2025-08-12 10:32 a.m., Logan Gunthorpe wro
> On 2025-08-11 11:34, Vinod Koul wrote:
>> On 05-08-25, 13:15, Logan Gunthorpe wrote:
>>
>> Dont you get a notification from hardware on completion, that should
>> trigger this as well as issue_pending calls... 
> 
> I dug into this a bit more this morning.
> 
> For at least PLX and the new Switchtec drivers, the hardware interrupt
> is disabled when DMA_PREP_INTERRUPT is set by the caller. This makes
> sense to me seeing if the caller doesn't care to be interrupted quickly
> then there's not much point in paying the cost of the interrupt and
> tasklet.
> 
> However if, for any reason, the caller never sets DMA_PREP_INTERURPT
> then the tasklet never fires and the descriptors never have an
> opportunity to get cleaned up. Presumably such a caller would be calling
> dmaengine_tx_status() to poll for finished jobs and thus it's a natural
> place to poll and cleanup descriptors on the ring.
> 
> I personally think this is the correct and best way to go about it.
> Cleaning up descriptors is fast and if the descriptors were already
> handled in the tasklet then it doesn't need to do anything anyway and
> there's negligible costs.
> 
> There are two other options I can see each with significant costs:
> 
> 1) Change the DMA driver so that the interrupt and tasklet gets
> triggered on every completion even if DMA_PREP_INTERRUPT is not set.
> This means the interrupt and tasklet will always run even if the
> application says it doesn't want an interrupt. This would increase the
> overhead on applications that might want to submit multiple requests and
> interrupt only on the last one or simply not use interrupts and poll for
> completions. (Though I don't know if any applications like that exist at
> the present time).
> 
> 2) Remove the cleanup in the status() call and keep everything else the
> same. This would keep the performance the same but if any application
> tries to use the DMA engine without periodically setting
> DMA_PREP_INTERRUPT, then the driver will hang as it will never cleanup
> the used up entries in the ring.
> 
> So, again, I really think the way it is now is the best option and I
> personally can not see what the down side is to it.

I've sent the patches for this discussion a couple times now over the
last few months and have not received any response:

https://lore.kernel.org/dmaengine/20251014192239.4770-1-logang@deltatee.com/T/#t

Have the patches been getting through?

Thanks,

LOgan

  reply	other threads:[~2025-11-14 22:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-18 16:33 [PATCH v8 0/1] Switchtec Switch DMA Engine Driver Kelvin Cao
2024-03-18 16:33 ` [PATCH v8 1/1] dmaengine: switchtec-dma: Introduce Switchtec DMA engine PCI driver Kelvin Cao
2024-03-20  0:56   ` Christoph Hellwig
2024-03-21 16:21     ` Grochowski, Maciej
2024-04-07 12:21   ` Vinod Koul
2025-08-05 19:15     ` Logan Gunthorpe
2025-08-11 17:34       ` Vinod Koul
2025-08-12 16:32         ` Logan Gunthorpe
2025-11-14 22:28           ` Logan Gunthorpe [this message]
2025-11-18  6:05             ` Christoph Hellwig

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=0970f42e-503b-49e8-9450-cf83c476d580@deltatee.com \
    --to=logang@deltatee.com \
    --cc=George.Ge@microchip.com \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=dmaengine@vger.kernel.org \
    --cc=hch@infradead.org \
    --cc=kelvin.cao@microchip.com \
    --cc=linux-kernel@vger.kernel.org \
    --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