Messages in this thread | | | Date | Tue, 15 Dec 2015 00:36:41 +0530 | Subject | Re: Ques: [kernel/time/*] Is there any disadvantage in using sleep_range for more than 20ms delay ? | From | Aniroop Mathur <> |
| |
On Sun, Dec 13, 2015 at 3:17 PM, Clemens Ladisch <clemens@ladisch.de> wrote: > Aniroop Mathur wrote: >>> 1. If we choose usleep_range to acheive accuracy, are cpu and power usage >>> of any concern in real sense ? > > That depends. The effects are worse if the CPU is sleeping, and slow to > wake up. > > But that's _your_ job to decide. (And you know your hardware better.) >
Umm... could you please elaborate it ?
>>> 2. If we use msleep(40), is it possible that process could wake up after >>> 60 ms or 70 ms or 100 ms or more ? > > Yes, if lots of other processes compete for the CPU. > >
You mean to say "yes" for process competing for changing state from "waiting" to "ready" or "ready" to "running" ?
Regarding above, could you please help to confirm below things? 1. Using msleep(40) with HZ=1000 (1ms), process can still be in "waiting" state and will not move to "ready" state even after 42,45 or 50 ms. Right ? 2. Using usleep_range(40000, 41000), it is guaranteed that process will change its state from waiting to ready state before or at 41 ms. Right ?
Regarding usleep_range disadvatage: 1. Usleep_range has a disadvantage that it does not allow the system to do optimal timer batching for power savings. Except that, Is there any other disadvantage ? 2. Is the impact of optimal timer batching in systems like android or ubuntu with moderate cpu speed significant or it can be negligible also? To understand the impact better, it would be really appreciating if you could kindly explain in detail with some case and data input.
Regards, Aniroop Mathur
> Regards, > Clemens
| |