early_smp_init和process_init的顺序问题

我在实现#1035时遇到如题的问题

我尝试在ProcessSchedulerInfo.inner_locked中加入cpu_mask,并设置初始值为smp_cpu_manager().possible_cpus()

但这里遇到了个问题:
在early_smp_init中,需要调用ProcessManager::idle_pcb()
在process_init中,需要调用ProcessSchedulerInfo::new(None)
由于我修改的代码,这两项操作互相依赖,我已有了一些改法,但想听听别人的意见

或许先默认为None,SmpCpuManager::new()之后再初始化?

现在的做法是
ProcessSchedulerInfo::new的参数on_cpu为None时,将cpu_mask设为空CpuMask

这里的意思应该就是说需要把smp初始化提前
我去研究研究