SOURCES (Titanium): linux-2.6-vs2.3.patch - merged delta-sched fixes from h...

hawk hawk at pld-linux.org
Fri May 16 23:01:53 CEST 2008


Author: hawk                         Date: Fri May 16 21:01:53 2008 GMT
Module: SOURCES                       Tag: Titanium
---- Log message:
- merged delta-sched fixes from http://vserver.13thfloor.at/Experimental/

---- Files affected:
SOURCES:
   linux-2.6-vs2.3.patch (1.1.2.17.2.7 -> 1.1.2.17.2.8) 

---- Diffs:

================================================================
Index: SOURCES/linux-2.6-vs2.3.patch
diff -u SOURCES/linux-2.6-vs2.3.patch:1.1.2.17.2.7 SOURCES/linux-2.6-vs2.3.patch:1.1.2.17.2.8
--- SOURCES/linux-2.6-vs2.3.patch:1.1.2.17.2.7	Wed Apr 30 15:43:25 2008
+++ SOURCES/linux-2.6-vs2.3.patch	Fri May 16 23:01:46 2008
@@ -16892,7 +16892,7 @@
 diff -NurpP --minimal linux-2.6.25/kernel/sched_hard.h linux-2.6.25-vs2.3.0.34.9/kernel/sched_hard.h
 --- linux-2.6.25/kernel/sched_hard.h	1969-12-31 19:00:00.000000000 -0500
 +++ linux-2.6.25-vs2.3.0.34.9/kernel/sched_hard.h	2008-04-19 15:14:52.000000000 -0400
-@@ -0,0 +1,324 @@
+@@ -0,0 +1,326 @@
 +
 +#ifdef CONFIG_VSERVER_IDLELIMIT
 +
@@ -16935,10 +16935,12 @@
 +static inline
 +int vx_try_skip(struct rq *rq, int cpu)
 +{
++	/* nothing on hold, no point in skipping */
++	if (list_empty(&rq->hold_queue))
++		return 0;
++
 +	/* artificially advance time */
 +	if (rq->idle_skip > 0) {
-+		vxdprintk(list_empty(&rq->hold_queue),
-+			"hold queue empty on cpu %d", cpu);
 +		rq->idle_time += rq->idle_skip;
 +		vxm_idle_skip(rq, cpu);
 +		return 1;
@@ -24496,7 +24498,7 @@
 diff -NurpP --minimal linux-2.6.25/kernel/vserver/sched.c linux-2.6.25-vs2.3.0.34.9/kernel/vserver/sched.c
 --- linux-2.6.25/kernel/vserver/sched.c	1969-12-31 19:00:00.000000000 -0500
 +++ linux-2.6.25-vs2.3.0.34.9/kernel/vserver/sched.c	2008-04-29 18:40:09.000000000 -0400
-@@ -0,0 +1,413 @@
+@@ -0,0 +1,415 @@
 +/*
 + *  linux/kernel/vserver/sched.c
 + *
@@ -24590,7 +24592,7 @@
 +		vxd_check_range(delta_min[0], 0, sched_pc->interval[0]);
 +#endif
 +		/* advance time */
-+		sched_pc->norm_time += delta;
++		sched_pc->norm_time += integral;
 +
 +		/* add tokens */
 +		sched_pc->tokens += tokens;
@@ -24660,11 +24662,12 @@
 +	/* next interval? */
 +	if (!sched_pc->fill_rate[0])
 +		delta_min[0] = HZ;
-+	else if (tokens > sched_pc->fill_rate[0])
-+		delta_min[0] += sched_pc->interval[0] *
-+			tokens / sched_pc->fill_rate[0];
-+	else
++	else {
 +		delta_min[0] = sched_pc->interval[0] - delta_min[0];
++		if (tokens > sched_pc->fill_rate[0])
++			delta_min[0] += sched_pc->interval[0] *
++				tokens / sched_pc->fill_rate[0];
++	}
 +	vxd_check_range(delta_min[0], 0, INT_MAX);
 +
 +#ifdef	CONFIG_VSERVER_IDLETIME
@@ -24674,11 +24677,12 @@
 +	/* next interval? */
 +	if (!sched_pc->fill_rate[1])
 +		delta_min[1] = HZ;
-+	else if (tokens > sched_pc->fill_rate[1])
-+		delta_min[1] += sched_pc->interval[1] *
-+			tokens / sched_pc->fill_rate[1];
-+	else
++	else {
 +		delta_min[1] = sched_pc->interval[1] - delta_min[1];
++		if (tokens > sched_pc->fill_rate[1])
++			delta_min[1] += sched_pc->interval[1] *
++				tokens / sched_pc->fill_rate[1];
++	}
 +	vxd_check_range(delta_min[1], 0, INT_MAX);
 +
 +	return -2;
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/linux-2.6-vs2.3.patch?r1=1.1.2.17.2.7&r2=1.1.2.17.2.8&f=u



More information about the pld-cvs-commit mailing list