Re: [RFD RESEND] dmaengine: add new sleepy alloc descriptor and slave sg APIs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Feb 24, 2017 at 09:37:40PM +0100, Lars-Peter Clausen wrote:
> On 02/24/2017 06:38 PM, Dave Jiang wrote:
> > 
> > 
> > On 02/24/2017 10:27 AM, Lars-Peter Clausen wrote:
> >> On 02/24/2017 06:19 PM, Dave Jiang wrote:
> >>>
> >>>
> >>> On 02/23/2017 05:41 PM, Dan Williams wrote:
> >>>> On Thu, Feb 23, 2017 at 4:13 PM, Vinod Koul <vinod.koul@xxxxxxxxx> wrote:
> >>>>> There have been discussions on need for change of dmaengine API for
> >>>>> a) allow sleepy invocation of the prepare descriptor so that drivers can
> >>>>> do the runtime pm (maybe move into core as well)
> >>>>> b) split the prepare operation to allocate and new prepare methods
> >>>>
> >>>> I'm wondering if you should you go even further and move to a more
> >>>> idiomatic model where a generic request is prepared outside the driver
> >>>> and passed in, rather than the current situation of requiring the
> >>>> driver to wrap a dma_async_tx_descriptor inside it's internal command
> >>>> structure.
> >>>
> >>> I wonder if we should support allowing proper batching of requests
> >>> before submission in the framework. Certain consumers of the DMA driver
> >>> can take advantage of that to improve performance.
> >>
> >> Some drivers already do this and the API allows this. issue_pending() is the
> >> operation that starts the transfer. So when a descriptor is submitted and
> >> there are already other descriptors pending it is OK to batch those
> >> descriptors together into one hardware-linked descriptor chain.
> >>
> > 
> > Right, a lot of the mechanism is in the driver. And the prep call leaves
> > the submission lock held does it not? That prevents more prep calls
> > being invoked.
> 
> That's not an issue, what you do is:
> 
> prep()
> submit()
> prep()
> submit()
> ...
> prep()
> submit()
> issue_pending()
> 
> All the descriptors submitted up to the issue_pending() can be batch into
> one hardware-linked list of descriptors.

Yes but then should this be handled in drivers or moved to framework, I am
thinking latter :)

-- 
~Vinod
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux