浏览代码

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>
Arjan van de Ven 16 年之前
父节点
当前提交
4ce105d30e
共有 2 个文件被更改,包括 3 次插入4 次删除
  1. 2 3
      fs/select.c
  2. 1 1
      include/linux/hrtimer.h

+ 2 - 3
fs/select.c

@@ -46,7 +46,7 @@ static unsigned long __estimate_accuracy(struct timespec *tv)
 	unsigned long slack;
 	int divfactor = 1000;
 
-	if (task_nice(current))
+	if (task_nice(current) > 0)
 		divfactor = divfactor / 5;
 
 	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.
 	 */
 
-	if (current->policy == SCHED_FIFO ||
-		current->policy == SCHED_RR)
+	if (rt_task(current))
 		return 0;
 
 	ktime_get_ts(&now);

+ 1 - 1
include/linux/hrtimer.h

@@ -363,7 +363,7 @@ static inline int hrtimer_start_expires(struct hrtimer *timer,
 	soft = hrtimer_get_softexpires(timer);
 	hard = hrtimer_get_expires(timer);
 	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)