启动中的xen(schedule方面)
当计算机启动以后,xen会被引导器加载.加载的那一刻开始,很多东西就运动起来了.对于xen来说,最开始运行的是一段汇编代码x86_64.S,在这段代码的最后,调用了__start_xen(),这个函数很长,跟schedule相关的在,那就从这个函数开始吧,重点分析schedule部分
- 这样看上去,这个函数运行完成以后,工作就结束了,接下来看看__start_xen()具体做了些什么,以及我所关注的schedule部分在哪里
- to be continue...
- init_idle_domain() domain初始化
- init_idle_domain() -> scheduler_init() -> SCHED_OP(init) -> ops.init() -> csched_init()
- reset_stack_and_jump(init_done) -> startup_cpu_idle_loop()重置rsp后,跳转到startup_cpu_idle_loop(),进入无限循环运行态,xen从启动状态进入运行状态
