Messages in this thread | | | Subject | Re: [PATCH v2 3/3] dmaengine: ioat: adding missed issue_pending to timeout handler | From | Dave Jiang <> | Date | Wed, 22 Apr 2020 12:58:21 -0700 |
| |
On 4/22/2020 12:25 PM, leonid.ravich@dell.com wrote: > From: Leonid Ravich <Leonid.Ravich@emc.com> > > completion timeout might trigger unnesesery DMA engine hw reboot > in case of missed issue_pending() . > > Acked-by: Dave Jiang <dave.jiang@intel.com> > Signed-off-by: Leonid Ravich <Leonid.Ravich@emc.com> > --- > Changing in v2 > - add log in case of such scenario > drivers/dma/ioat/dma.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/dma/ioat/dma.c b/drivers/dma/ioat/dma.c > index 55a8cf1..a958aaf 100644 > --- a/drivers/dma/ioat/dma.c > +++ b/drivers/dma/ioat/dma.c > @@ -955,6 +955,14 @@ void ioat_timer_event(struct timer_list *t) > goto unlock_out; > } > > + /* handle missed issue pending case */ > + if (ioat_ring_pending(ioat_chan)) { > + dev_dbg(to_dev(ioat_chan), "Complition timeout while pending\n") Completion timeout with pending descriptors.
Also, maybe dev_warn() you think?
> + spin_lock_bh(&ioat_chan->prep_lock); > + __ioat_issue_pending(ioat_chan); > + spin_unlock_bh(&ioat_chan->prep_lock); > + } > + > set_bit(IOAT_COMPLETION_ACK, &ioat_chan->state); > mod_timer(&ioat_chan->timer, jiffies + COMPLETION_TIMEOUT); > unlock_out: >
| |