diff -NurpP --minimal linux-2.6.22.2-vs2.3.0.17.7/kernel/vserver/context.c linux-2.6.22.2-vs2.3.0.17.8/kernel/vserver/context.c --- linux-2.6.22.2-vs2.3.0.17.7/kernel/vserver/context.c 2007-08-19 00:08:15 +0200 +++ linux-2.6.22.2-vs2.3.0.17.8/kernel/vserver/context.c 2007-08-19 06:09:06 +0200 @@ -933,6 +933,29 @@ int vc_set_bcaps(struct vx_info *vxi, vo return do_set_caps(vxi, vc_data.bcaps, vc_data.bmask, 0, 0); } + +int vc_get_badness(struct vx_info *vxi, void __user *data) +{ + struct vcmd_badness_v0 vc_data; + + vc_data.bias = vxi->vx_badness_bias; + + if (copy_to_user(data, &vc_data, sizeof(vc_data))) + return -EFAULT; + return 0; +} + +int vc_set_badness(struct vx_info *vxi, void __user *data) +{ + struct vcmd_badness_v0 vc_data; + + if (copy_from_user(&vc_data, data, sizeof(vc_data))) + return -EFAULT; + + vxi->vx_badness_bias = vc_data.bias; + return 0; +} + #include EXPORT_SYMBOL_GPL(free_vx_info); diff -NurpP --minimal linux-2.6.22.2-vs2.3.0.17.7/kernel/vserver/switch.c linux-2.6.22.2-vs2.3.0.17.8/kernel/vserver/switch.c --- linux-2.6.22.2-vs2.3.0.17.7/kernel/vserver/switch.c 2007-08-16 03:31:45 +0200 +++ linux-2.6.22.2-vs2.3.0.17.8/kernel/vserver/switch.c 2007-08-19 06:11:43 +0200 @@ -14,6 +14,7 @@ * V0.07 vcmd args and perms * V0.08 added status commands * V0.09 added tag commands + * V0.10 added oom bias * */ @@ -144,6 +145,11 @@ long do_vcmd(uint32_t cmd, uint32_t id, case VCMD_get_bcaps: return vc_get_bcaps(vxi, data); + case VCMD_set_badness: + return vc_set_badness(vxi, data); + case VCMD_get_badness: + return vc_get_badness(vxi, data); + case VCMD_set_nflags: return vc_set_nflags(nxi, data); case VCMD_get_nflags: @@ -298,6 +304,7 @@ long do_vserver(uint32_t cmd, uint32_t i __VCMD(get_bcaps, 3, VCA_VXI, VCF_INFO); __VCMD(get_ccaps, 3, VCA_VXI, VCF_INFO); __VCMD(get_cflags, 3, VCA_VXI, VCF_INFO); + __VCMD(get_badness, 3, VCA_VXI, VCF_INFO); __VCMD(get_vhi_name, 3, VCA_VXI, VCF_INFO); __VCMD(get_rlimit, 3, VCA_VXI, VCF_INFO); @@ -341,6 +348,7 @@ long do_vserver(uint32_t cmd, uint32_t i __VCMD(set_ccaps, 7, VCA_VXI, VCF_ARES | VCF_SETUP); __VCMD(set_bcaps, 7, VCA_VXI, VCF_ARES | VCF_SETUP); __VCMD(set_cflags, 7, VCA_VXI, VCF_ARES | VCF_SETUP); + __VCMD(set_badness, 7, VCA_VXI, VCF_ARES | VCF_SETUP); __VCMD(set_vhi_name, 7, VCA_VXI, VCF_ARES | VCF_SETUP); __VCMD(set_rlimit, 7, VCA_VXI, VCF_ARES | VCF_SETUP);