姚益祁

需要改动的数据结构

cpumask

	if (!cpumask_equal(housekeeping_cpumask(HK_TYPE_DOMAIN),
			   cpu_possible_mask)) {
		pr_err("sched_ext: Not compatible with \"isolcpus=\" domain isolation");
		return -EINVAL;
	}

需要变为该调度器的cgroup对应的cpumask

sched_ext_ops添加一个cgroup字段

可以参考scx_layered

有一种更简单的方法:将编译好的调度器的.o文件直接放置在cgroup的cpu控制器的一个文件中

例如:

cpu.scheduler

全局变量

__scx_ops_enabled仍然应该只有一个(所有调度器都退出后才为disable)

__scx_switched_all仍只有一个,且多个调度器时swtiched_all仍然成立

根据调度器有多少个要动态增删的变量

global_dsqs 不应该变为多份,因为虽然有多个调度器, 但是要尽量不修改core调度器的代码,则一个scx调度队列对接一个CPU

struct kobject *scx_root_kobj需要创建树形层级关系