hrtimer: incorporate feedback from Peter Zijlstra
(based on lkml review) * use rt_task() * task_nice() has a sign Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
This commit is contained in:
Родитель
da8f2e170e
Коммит
4ce105d30e
|
@ -46,7 +46,7 @@ static unsigned long __estimate_accuracy(struct timespec *tv)
|
||||||
unsigned long slack;
|
unsigned long slack;
|
||||||
int divfactor = 1000;
|
int divfactor = 1000;
|
||||||
|
|
||||||
if (task_nice(current))
|
if (task_nice(current) > 0)
|
||||||
divfactor = divfactor / 5;
|
divfactor = divfactor / 5;
|
||||||
|
|
||||||
slack = tv->tv_nsec / divfactor;
|
slack = tv->tv_nsec / divfactor;
|
||||||
|
@ -66,8 +66,7 @@ static unsigned long estimate_accuracy(struct timespec *tv)
|
||||||
* Realtime tasks get a slack of 0 for obvious reasons.
|
* Realtime tasks get a slack of 0 for obvious reasons.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (current->policy == SCHED_FIFO ||
|
if (rt_task(current))
|
||||||
current->policy == SCHED_RR)
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ktime_get_ts(&now);
|
ktime_get_ts(&now);
|
||||||
|
|
|
@ -363,7 +363,7 @@ static inline int hrtimer_start_expires(struct hrtimer *timer,
|
||||||
soft = hrtimer_get_softexpires(timer);
|
soft = hrtimer_get_softexpires(timer);
|
||||||
hard = hrtimer_get_expires(timer);
|
hard = hrtimer_get_expires(timer);
|
||||||
delta = ktime_to_ns(ktime_sub(hard, soft));
|
delta = ktime_to_ns(ktime_sub(hard, soft));
|
||||||
return hrtimer_start_range_ns(timer, hrtimer_get_expires(timer), delta, mode);
|
return hrtimer_start_range_ns(timer, soft, delta, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int hrtimer_restart(struct hrtimer *timer)
|
static inline int hrtimer_restart(struct hrtimer *timer)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче