Re: [PATCH] drm/i915: use hrtimer in wait for vblank

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

 



>> diff --git a/drivers/gpu/drm/i915/intel_drv.h 
>> b/drivers/gpu/drm/i915/intel_drv.h
>> index 44067bc..079280a 100644
>> --- a/drivers/gpu/drm/i915/intel_drv.h
>> +++ b/drivers/gpu/drm/i915/intel_drv.h
>> @@ -52,7 +52,7 @@
>>  			break;						\
>>  		}							\
>>  		if (W && drm_can_sleep())  {				\
>> -			msleep(W);					\
>> +			usleep_range(W * 1000, W * 2 * 1000);		\
>>  		} else {						\
>>  			cpu_relax();					\
>>  		}							\
>
> Ok. But W is still just a random value we picked for being the mininum 
> legal value for msleep(). So just usleep_range(500, 2000) or somesuch 
> will be fine. We can rename W to CAN_SLEEP it that helps.

We do use _wait_for directly from intel_dp.c with W == 10 to not retry so many times on what's expected to be a long wait.

Its not expected to be too long, we tend to get vblank every 16ms.  With using usleep_range
with min and max as 1-2ms, we have observed that this function consuming 4ms to 17ms.
Having 10ms sleep timer, we might tend to be blocking for 6ms in some cases.(from the above data)
Moreover 10ms usleep doesn't guarantee that we get a chance to execute after 10ms, it might
get increased due to scheduling. So ideal solution would be to use useep_range which uses hrtimers.

Thanks and Regards,
Arun R Murthy
------------------ 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://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