Re: [PATCH] drm/i915/selftests: Use preemption timeout on cleanup

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

 



Hi Janusz,

> > > > > > +
> > > > > >  		cond_resched();
> > > > > >  
> > > > > > -		if (intel_gt_wait_for_idle(gt, HZ * 3) == -ETIME) {
> > > > > > +		if (intel_gt_wait_for_idle(gt, HZ * timeout_ms / 500) == -ETIME) {
> > > > > 
> > > > > where is this 500 coming from?
> > > > 
> > > > / 1000 would convert it to seconds as needed, and / 500 used instead was 
> > > > supposed to to mean that we are willing to wait for preempt_timeout_ms * 
> > 2.  
> > > > Sorry for that shortcut.  Would you like me to provide a clarifying comment, 
> > > > or maybe better use explicit 2 * preempt_timeout / 1000 ?
> > > 
> > > It was clear that you were doubling it, but what's more
> > > interesting to know (perhaps in a comment) is why you are
> > > choosing to use the double of the timeout_ms instead of other
> > > values.
> > > 
> > > Makes sense?
> > 
> > Yes, good question.
> > 
> > Is it possible for more than one bb to hang?  If yes then should we wait 
> > longer than the longest preemption timeout?  Before I assumed that maybe we 
> > should, just in case, but now, having that revisited and reconsidered, I tend 
> > to agree that the longest preempt timeout, perhaps with a small margin (let's 
> > say +100ms) should be enough to recover from a single failing test case.  Let 
> > me verify if that works for the linked case.
> 
> I've done some testing and got a confirmation that the issue I'm trying to 
> address in the first place requires a timeout almost twice as long as the 
> longest preemption timeout.
> 
> I propose the following correction:
> 
> -	if (intel_gt_wait_for_idle(gt, HZ * 3) == -ETIME) {
> +	/* 2 x longest preempt timeout, experimentally determined */
> +	if (intel_gt_wait_for_idle(gt, 2 * timeout_ms * HZ / 1000) == -ETIME) {

with this change, I merge your patch to drm-intel-next.

Thanks,
Andi



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux