summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'vserver-sources/old/2.1.1_rc16-r2/4412_vs2.1.1-rc16-sched-clean01.patch')
-rw-r--r--vserver-sources/old/2.1.1_rc16-r2/4412_vs2.1.1-rc16-sched-clean01.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/vserver-sources/old/2.1.1_rc16-r2/4412_vs2.1.1-rc16-sched-clean01.patch b/vserver-sources/old/2.1.1_rc16-r2/4412_vs2.1.1-rc16-sched-clean01.patch
new file mode 100644
index 0000000..00e7972
--- /dev/null
+++ b/vserver-sources/old/2.1.1_rc16-r2/4412_vs2.1.1-rc16-sched-clean01.patch
@@ -0,0 +1,29 @@
+Index: vserver-sources-2.1.1_2.6.16/kernel/sched_hard.h
+===================================================================
+--- vserver-sources-2.1.1_2.6.16.orig/kernel/sched_hard.h
++++ vserver-sources-2.1.1_2.6.16/kernel/sched_hard.h
+@@ -7,6 +7,7 @@
+ static inline
+ void vx_idle_resched(runqueue_t *rq)
+ {
++ /* maybe have a better criterion for paused */
+ if (!--rq->idle_tokens && !list_empty(&rq->hold_queue))
+ set_need_resched();
+ }
+@@ -177,7 +178,7 @@ void vx_try_unhold(runqueue_t *rq, int c
+ int maxidle = HZ;
+ int minskip = 0;
+
+- /* nothing to do? */
++ /* nothing to do? what about pause? */
+ if (list_empty(&rq->hold_queue))
+ return;
+
+@@ -187,6 +188,7 @@ void vx_try_unhold(runqueue_t *rq, int c
+ struct task_struct *p;
+
+ p = list_entry(l, task_t, run_list);
++ /* don't bother with same context */
+ if (vxi == p->vx_info)
+ continue;
+