Re: a potential dead loop in intel_lrc_irq_handler

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

 



> -----Original Message-----
> From: Chris Wilson [mailto:chris@xxxxxxxxxxxxxxxxxx]
> Sent: Monday, August 7, 2017 7:13 PM
> To: Dong, Chuanxiao <chuanxiao.dong@xxxxxxxxx>; intel-
> gfx@xxxxxxxxxxxxxxxxxxxxx; Joonas Lahtinen
> <joonas.lahtinen@xxxxxxxxxxxxxxx>
> Subject: RE: a potential dead loop in intel_lrc_irq_handler
> 
> Quoting Dong, Chuanxiao (2017-08-07 11:31:57)
> > > -----Original Message-----
> > > From: Chris Wilson [mailto:chris@xxxxxxxxxxxxxxxxxx] GPU reset ->
> > > clears CSB head/tail
> > But the GPU reset will make CSB_head = 0 and CSB_tail = 7.
> 
> Experience says otherwise, but the issue of the delayed interrupt is still a
> concern.
> 
> On the per-engine reset path, interrupts are not disabled, so once we disable
> the tasklet and cancel the pending execution across the reset, we should be
> fine.
> 
> It's the full reset path, where we disable the interrupt first, we need to be
> careful about the hw keeping the interrupt around. Certainly we have no
> fundamental reason to disable_irq there, the supposition is that we are safer
> without spurious interrupts we aren't ready to handle. But afaics to put your
> mind at rest all we need is an
> 
> 	I915_WRITE(GEN8_GT_IIR[engine->irq_idx],
> 		   GT_CONTEXT_SWITCH_INTERRUPT << engine->irq_shift);
> 	I915_WRITE(GEN8_GT_IIR[engine->irq_idx],
> 		   GT_CONTEXT_SWITCH_INTERRUPT << engine->irq_shift);
> 
> as we process the reset.
> -Chris

Yes, if we cleared the pending context switch interrupt in IIR, it should be fine. Is there a patch which is trying to do so?

Thanks
Chuanxiao
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux