aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched_rt.c
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2008-01-25 15:08:32 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-25 15:08:32 -0500
commit5a52dd50091b6a6e710a1293db741028f8cc5aac (patch)
treeea2b361909e431c458c26208e501ea3cf10edd85 /kernel/sched_rt.c
parent1020387f5f3b52929b387103cf976321981f8e26 (diff)
sched: rt-watchdog: fix .rlim_max = RLIM_INFINITY
Remove the curious logic to set it_sched_expires in the future. It useless because rt.timeout wouldn't be incremented anyway. Explicity check for RLIM_INFINITY as a test programm that had a 1s soft limit and a inf hard limit would SIGKILL at 1s. This is because RLIM_INFINITY+d-1 is d-2. Signed-off-by: Peter Zijlsta <a.p.zijlstra@chello.nl> CC: Michal Schmidt <mschmidt@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_rt.c')
-rw-r--r--kernel/sched_rt.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
index f1f215db3bd0..2dac5ebb8bcb 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -1125,13 +1125,7 @@ static void watchdog(struct rq *rq, struct task_struct *p)
1125 1125
1126 p->rt.timeout++; 1126 p->rt.timeout++;
1127 next = DIV_ROUND_UP(min(soft, hard), USEC_PER_SEC/HZ); 1127 next = DIV_ROUND_UP(min(soft, hard), USEC_PER_SEC/HZ);
1128 if (next > p->rt.timeout) { 1128 if (p->rt.timeout > next)
1129 u64 next_time = p->se.sum_exec_runtime;
1130
1131 next_time += next * (NSEC_PER_SEC/HZ);
1132 if (p->it_sched_expires > next_time)
1133 p->it_sched_expires = next_time;
1134 } else
1135 p->it_sched_expires = p->se.sum_exec_runtime; 1129 p->it_sched_expires = p->se.sum_exec_runtime;
1136 } 1130 }
1137} 1131}