summaryrefslogtreecommitdiff
blob: f4e8d98758897a47d5ca1253149894ce3b4ba28e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Index: vserver-sources-2.1.1_2.6.16/include/linux/vserver/sched_cmd.h
===================================================================
--- vserver-sources-2.1.1_2.6.16.orig/include/linux/vserver/sched_cmd.h
+++ vserver-sources-2.1.1_2.6.16/include/linux/vserver/sched_cmd.h
@@ -48,7 +48,9 @@ struct	vcmd_set_sched_v4 {
 #define VXSM_TOKENS_MIN		0x0020
 #define VXSM_TOKENS_MAX		0x0040
 #define VXSM_PRIO_BIAS		0x0100
+
 #define VXSM_IDLE_TIME		0x0200
+#define VXSM_FORCE		0x0400
 
 #define	VXSM_V3_MASK		0x0173
 #define	VXSM_SET_MASK		0x01FF
Index: vserver-sources-2.1.1_2.6.16/kernel/vserver/sched.c
===================================================================
--- vserver-sources-2.1.1_2.6.16.orig/kernel/vserver/sched.c
+++ vserver-sources-2.1.1_2.6.16/kernel/vserver/sched.c
@@ -234,6 +234,14 @@ int do_set_sched(struct vx_info *vxi, st
 		vxi->sched.update = cpumask_of_cpu(data->cpu_id);
 	else
 		vxi->sched.update = CPU_MASK_ALL;
+	/* forced reload? */
+	if (set_mask & VXSM_FORCE) {
+		int cpu;
+
+		for_each_cpu(cpu)
+			vx_update_sched_param(&vxi->sched,
+				&vx_per_cpu(vxi, sched_pc, cpu));
+	}
 #else
 	/* on UP we update immediately */
 	vx_update_sched_param(&vxi->sched,