Xen从启动到运行的调度相关代码分析

本文深入分析了Xen从启动到运行状态的调度过程,包括__start_xen、scheduler_init、csched_init等关键步骤,涉及idle_domain初始化、软中断处理、调度算法如credit调度器的工作原理,以及性能计数器的使用。通过理解这些内容,可以更好地了解Xen的内核调度机制。
摘要由CSDN通过智能技术生成

xen/arch/x86/boot/x86_64.S 从启动到到进入运行状态
__call    __start_xen
  |
  |__ __start_xen
       |
       |__init_idle_domain
  | |
  | |__scheduler_init()
  |  |
  |  |__SCHED_OP(init)
  |   |
  |   |__ops.init() -> csched_init()
  |
  |
  |__reset_stack_and_jump(init_done)
    |
    |__init_done
     |
     |__startup_cpu_idle_loop()
      |
      |__startup_cpu_idle_loop() 进入无限循环,至此 xen从启动状态进入运行状态

 

__startup_cpu_idle_loop()
 |
 |__continue_cpu_idle_loop 无限循环执行以下的部分
  |
  |
  |__raise_softirq(SCHEDULE_SOFTIRQ)
  |
  |__do_softirq(0) 处理上面引发的中断号,并调用处理函数schedule。

 

 

________schedule
 |
 |_______perfc_incr 可能是关于CPU的一个perfcounters结构的定义相关的
 |
 |_______stop_timer
 |
 |_______ops.do_schedule  使用调度器的这个回调函数,默认使用credit这个调度器,调用函数为csched_schedule。
 |
 |__

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值