GnoCiYeH f0c87a897f
重写调度模块 (#679)
## PR:重写调度模块
--- 
### 完成的部分
- 实现cfs调度策略
- 搭建框架,后续功能可以迭代开发
- 目前能跑,未测试性能

### 需要后续接力的部分
- 实现组内调度(task_group)
- 实现跨核负载均衡(pelt算法)
- 接入sysfs,实现参数动态调节(sched_stat等)
- nice值以及priority等参数的设置及调优
2024-04-05 17:54:48 +08:00

34 lines
750 B
Rust

pub const MAX_NICE: i32 = 20;
pub const MIN_NICE: i32 = -20;
pub const NICE_WIDTH: i32 = MAX_NICE - MIN_NICE + 1;
pub const MAX_RT_PRIO: i32 = 100;
pub const MAX_PRIO: i32 = MAX_RT_PRIO + NICE_WIDTH;
#[allow(dead_code)]
pub const DEFAULT_PRIO: i32 = MAX_RT_PRIO + NICE_WIDTH / 2;
pub const MAX_DL_PRIO: i32 = 0;
pub struct PrioUtil;
#[allow(dead_code)]
impl PrioUtil {
#[inline]
pub fn nice_to_prio(nice: i32) -> i32 {
nice + DEFAULT_PRIO
}
#[inline]
pub fn prio_to_nice(prio: i32) -> i32 {
prio - DEFAULT_PRIO
}
#[inline]
pub fn dl_prio(prio: i32) -> bool {
return prio < MAX_DL_PRIO;
}
#[inline]
pub fn rt_prio(prio: i32) -> bool {
return prio < MAX_RT_PRIO;
}
}