X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fvserver%2Fsched_cmd.h;h=503e22ed45e4603f313ed46d2d570138d302badd;hb=refs%2Fheads%2Fvserver;hp=b9e8ac1773567620d00e80282c1706bcdd5ee5ff;hpb=76828883507a47dae78837ab5dec5a5b4513c667;p=linux-2.6.git diff --git a/include/linux/vserver/sched_cmd.h b/include/linux/vserver/sched_cmd.h index b9e8ac177..503e22ed4 100644 --- a/include/linux/vserver/sched_cmd.h +++ b/include/linux/vserver/sched_cmd.h @@ -5,7 +5,8 @@ /* sched vserver commands */ #define VCMD_set_sched_v2 VC_CMD(SCHED, 1, 2) -#define VCMD_set_sched VC_CMD(SCHED, 1, 3) +#define VCMD_set_sched_v3 VC_CMD(SCHED, 1, 3) +#define VCMD_set_sched_v4 VC_CMD(SCHED, 1, 4) struct vcmd_set_sched_v2 { int32_t fill_rate; @@ -26,23 +27,82 @@ struct vcmd_set_sched_v3 { int32_t priority_bias; }; +struct vcmd_set_sched_v4 { + uint32_t set_mask; + int32_t fill_rate; + int32_t interval; + int32_t tokens; + int32_t tokens_min; + int32_t tokens_max; + int32_t prio_bias; + int32_t cpu_id; + int32_t bucket_id; +}; + +#define VCMD_set_sched VC_CMD(SCHED, 1, 5) +#define VCMD_get_sched VC_CMD(SCHED, 2, 5) + +struct vcmd_sched_v5 { + uint32_t mask; + int32_t cpu_id; + int32_t bucket_id; + int32_t fill_rate[2]; + int32_t interval[2]; + int32_t tokens; + int32_t tokens_min; + int32_t tokens_max; + int32_t prio_bias; +}; #define VXSM_FILL_RATE 0x0001 #define VXSM_INTERVAL 0x0002 +#define VXSM_FILL_RATE2 0x0004 +#define VXSM_INTERVAL2 0x0008 #define VXSM_TOKENS 0x0010 #define VXSM_TOKENS_MIN 0x0020 #define VXSM_TOKENS_MAX 0x0040 #define VXSM_PRIO_BIAS 0x0100 -#define SCHED_KEEP (-2) +#define VXSM_IDLE_TIME 0x0200 +#define VXSM_FORCE 0x0400 + +#define VXSM_V3_MASK 0x0173 +#define VXSM_SET_MASK 0x01FF + +#define VXSM_CPU_ID 0x1000 +#define VXSM_BUCKET_ID 0x2000 + +#define VXSM_MSEC 0x4000 + +#define SCHED_KEEP (-2) /* only for v2 */ #ifdef __KERNEL__ #include -extern int vc_set_sched_v1(uint32_t, void __user *); -extern int vc_set_sched_v2(uint32_t, void __user *); -extern int vc_set_sched(uint32_t, void __user *); +extern int vc_set_sched_v2(struct vx_info *, void __user *); +extern int vc_set_sched_v3(struct vx_info *, void __user *); +extern int vc_set_sched_v4(struct vx_info *, void __user *); +extern int vc_set_sched(struct vx_info *, void __user *); +extern int vc_get_sched(struct vx_info *, void __user *); + +#endif /* __KERNEL__ */ + +#define VCMD_sched_info VC_CMD(SCHED, 3, 0) + +struct vcmd_sched_info { + int32_t cpu_id; + int32_t bucket_id; + uint64_t user_msec; + uint64_t sys_msec; + uint64_t hold_msec; + uint32_t token_usec; + int32_t vavavoom; +}; + +#ifdef __KERNEL__ + +extern int vc_sched_info(struct vx_info *, void __user *); #endif /* __KERNEL__ */ #endif /* _VX_SCHED_CMD_H */