diff -NurpP linux-2.6.16-vs2.1.1-rc16/include/linux/vserver/sched_cmd.h linux-2.6.16-vs2.1.1-rc16.1/include/linux/vserver/sched_cmd.h --- linux-2.6.16-vs2.1.1-rc16/include/linux/vserver/sched_cmd.h 2006-04-12 01:54:42 +0200 +++ linux-2.6.16-vs2.1.1-rc16.1/include/linux/vserver/sched_cmd.h 2006-04-12 19:13:10 +0200 @@ -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 diff -NurpP linux-2.6.16-vs2.1.1-rc16/kernel/vserver/sched.c linux-2.6.16-vs2.1.1-rc16.1/kernel/vserver/sched.c --- linux-2.6.16-vs2.1.1-rc16/kernel/vserver/sched.c 2006-04-12 01:54:01 +0200 +++ linux-2.6.16-vs2.1.1-rc16.1/kernel/vserver/sched.c 2006-04-12 19:50:16 +0200 @@ -234,6 +238,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,