Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1632103

Re: [PATCH v2 2/2] dmaengine: Add DW AXI DMAC driver

From Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2 2/2] dmaengine: Add DW AXI DMAC driver
Date 2017-04-27 15:40 +0200
Message-ID <tAROh-1eg-9@gated-at.bofh.it> (permalink)
References (6 earlier) <tzPvb-118-15@gated-at.bofh.it> <tAaq0-6oY-87@gated-at.bofh.it> <tAdea-88w-3@gated-at.bofh.it> <tAx3d-46S-43@gated-at.bofh.it> <tAREB-1aB-15@gated-at.bofh.it>
Organization Intel Finland Oy

Show all headers | View raw


On Thu, 2017-04-27 at 13:21 +0000, Eugeniy Paltsev wrote:
> On Wed, 2017-04-26 at 18:04 +0300, Andy Shevchenko wrote:
> > On Tue, 2017-04-25 at 21:12 +0300, Andy Shevchenko wrote:
> > > On Tue, 2017-04-25 at 15:16 +0000, Eugeniy Paltsev wrote:
> > > > On Mon, 2017-04-24 at 19:56 +0300, Andy Shevchenko wrote:
> > > > > On Mon, 2017-04-24 at 15:55 +0000, Eugeniy Paltsev wrote:

> > > > Hmm, this looks OK. (In my example (hsu/hsu.c driver) error
> > > > descriptors
> > > > are not freed even after terminate_all is called)
> > > 
> > > If it's active it will be freed.
> > > Otherwise caller should check somewhere that descriptor fails.
> > > 
> > > But actually this is fragile and we need to monitor failed
> > > descriptors.
> > > Thanks for reporting.
> > > 
> > > > 
> > > > > Of course, if you want to keep by some reason (should be
> > > > > stated
> > > > > what
> > > > > the reason in comment) erred descriptors, you can do that.
> > > > 
> > > > So, I'll create desc_error list and store failed descriptors in
> > > > this
> > > > list until terminate_all() is called.
> > > > Is it OK implementation?
> > > 
> > > Nope, we need to amend virt-chan API for that. I'm on it. Will
> > > send
> > > a series soon.
> > 
> > I have to correct what I wrote before.
> > 
> > We have two options:
> > a) one I proposed above;
> > b) move descriptor to complete list and call complete callback with
> > result.
> > 
> > So, it looks like the b) variant is what is done already in 4 (did I
> > calculate correctly?) drivers and respective users.
> 
> In my opinion we should call error descriptor complete callback.
> But I don't think we should move error descriptor to desc_completed
> list.
> 
> When descriptor following our error descriptor will be completed
> successfully vchan tasklet will be called.
> So all descriptors from desc_completed list will be freed (including
> our error descriptor)
> We'll lost information about error descriptors and we'll not be able
> to
> return correct status from dma_async_is_tx_complete().

While I more agree on the point that we better to have explicit list of
failed descriptors, here is another point that user (which is interested
in error checking) has to provide callback_result instead of callback.

> In my opinion, we should create desc_error list.
> When we get error we'll move descriptor to desc_error list and call
> complete callback.

Vinod, Lars, others, what is(are) your opinion(s)?

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH v2 2/2] dmaengine: Add DW AXI DMAC driver Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> - 2017-04-25 17:20 +0200
  Re: [PATCH v2 2/2] dmaengine: Add DW AXI DMAC driver Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2017-04-25 20:20 +0200
    Re: [PATCH v2 2/2] dmaengine: Add DW AXI DMAC driver Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2017-04-26 17:30 +0200
      Re: [PATCH v2 2/2] dmaengine: Add DW AXI DMAC driver Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> - 2017-04-27 15:30 +0200
        Re: [PATCH v2 2/2] dmaengine: Add DW AXI DMAC driver Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2017-04-27 15:40 +0200
    Re: [PATCH v2 2/2] dmaengine: Add DW AXI DMAC driver Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> - 2017-04-27 17:40 +0200

csiph-web