| 1 |
#ifndef _VX_SCHED_CMD_H |
|---|
| 2 |
#define _VX_SCHED_CMD_H |
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
#define VCMD_set_sched_v2 VC_CMD(SCHED, 1, 2) |
|---|
| 8 |
#define VCMD_set_sched_v3 VC_CMD(SCHED, 1, 3) |
|---|
| 9 |
#define VCMD_set_sched_v4 VC_CMD(SCHED, 1, 4) |
|---|
| 10 |
|
|---|
| 11 |
struct vcmd_set_sched_v2 { |
|---|
| 12 |
int32_t fill_rate; |
|---|
| 13 |
int32_t interval; |
|---|
| 14 |
int32_t tokens; |
|---|
| 15 |
int32_t tokens_min; |
|---|
| 16 |
int32_t tokens_max; |
|---|
| 17 |
uint64_t cpu_mask; |
|---|
| 18 |
}; |
|---|
| 19 |
|
|---|
| 20 |
struct vcmd_set_sched_v3 { |
|---|
| 21 |
uint32_t set_mask; |
|---|
| 22 |
int32_t fill_rate; |
|---|
| 23 |
int32_t interval; |
|---|
| 24 |
int32_t tokens; |
|---|
| 25 |
int32_t tokens_min; |
|---|
| 26 |
int32_t tokens_max; |
|---|
| 27 |
int32_t priority_bias; |
|---|
| 28 |
}; |
|---|
| 29 |
|
|---|
| 30 |
struct vcmd_set_sched_v4 { |
|---|
| 31 |
uint32_t set_mask; |
|---|
| 32 |
int32_t fill_rate; |
|---|
| 33 |
int32_t interval; |
|---|
| 34 |
int32_t tokens; |
|---|
| 35 |
int32_t tokens_min; |
|---|
| 36 |
int32_t tokens_max; |
|---|
| 37 |
int32_t prio_bias; |
|---|
| 38 |
int32_t cpu_id; |
|---|
| 39 |
int32_t bucket_id; |
|---|
| 40 |
}; |
|---|
| 41 |
|
|---|
| 42 |
#define VCMD_set_sched VC_CMD(SCHED, 1, 5) |
|---|
| 43 |
#define VCMD_get_sched VC_CMD(SCHED, 2, 5) |
|---|
| 44 |
|
|---|
| 45 |
struct vcmd_sched_v5 { |
|---|
| 46 |
uint32_t mask; |
|---|
| 47 |
int32_t cpu_id; |
|---|
| 48 |
int32_t bucket_id; |
|---|
| 49 |
int32_t fill_rate[2]; |
|---|
| 50 |
int32_t interval[2]; |
|---|
| 51 |
int32_t tokens; |
|---|
| 52 |
int32_t tokens_min; |
|---|
| 53 |
int32_t tokens_max; |
|---|
| 54 |
int32_t prio_bias; |
|---|
| 55 |
}; |
|---|
| 56 |
|
|---|
| 57 |
#define VXSM_FILL_RATE 0x0001 |
|---|
| 58 |
#define VXSM_INTERVAL 0x0002 |
|---|
| 59 |
#define VXSM_FILL_RATE2 0x0004 |
|---|
| 60 |
#define VXSM_INTERVAL2 0x0008 |
|---|
| 61 |
#define VXSM_TOKENS 0x0010 |
|---|
| 62 |
#define VXSM_TOKENS_MIN 0x0020 |
|---|
| 63 |
#define VXSM_TOKENS_MAX 0x0040 |
|---|
| 64 |
#define VXSM_PRIO_BIAS 0x0100 |
|---|
| 65 |
|
|---|
| 66 |
#define VXSM_IDLE_TIME 0x0200 |
|---|
| 67 |
#define VXSM_FORCE 0x0400 |
|---|
| 68 |
|
|---|
| 69 |
#define VXSM_V3_MASK 0x0173 |
|---|
| 70 |
#define VXSM_SET_MASK 0x01FF |
|---|
| 71 |
|
|---|
| 72 |
#define VXSM_CPU_ID 0x1000 |
|---|
| 73 |
#define VXSM_BUCKET_ID 0x2000 |
|---|
| 74 |
|
|---|
| 75 |
#define VXSM_MSEC 0x4000 |
|---|
| 76 |
|
|---|
| 77 |
#define SCHED_KEEP (-2) |
|---|
| 78 |
|
|---|
| 79 |
|
|---|
| 80 |
#define VCMD_sched_info VC_CMD(SCHED, 3, 0) |
|---|
| 81 |
|
|---|
| 82 |
struct vcmd_sched_info { |
|---|
| 83 |
int32_t cpu_id; |
|---|
| 84 |
int32_t bucket_id; |
|---|
| 85 |
uint64_t user_msec; |
|---|
| 86 |
uint64_t sys_msec; |
|---|
| 87 |
uint64_t hold_msec; |
|---|
| 88 |
uint32_t token_usec; |
|---|
| 89 |
int32_t vavavoom; |
|---|
| 90 |
}; |
|---|
| 91 |
|
|---|
| 92 |
#endif |
|---|