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,
|