PHP
首页 | 下载 | 博客 | 链接

区域

工具

查看代码的工具推荐用cscope,配合vim查找原型/函数/结构相当方便,如果怕麻烦,lxr也是个不错的选择,比如lxr.linux.no


xen 3.4 代码分析

xen的启动(schedule)
xen的运行(schedule)
schedule && credit
Event Channel
per cpu
上下文切换过程
数据结构
hypercall


xen 3.0 代码分析

xen启动/运行过程简介


资源链接

to be continue...


说明

文章中引用的版本是xen-3.0.4,分析的是x86_64平台. 为了保证行号的一致性,中文的注释没有插入回车/换行符.可能会显得有些紧巴巴的.
由于个人能力有限,网站内容存在许多错误和不足,希望读者批评指正. 本人联系方式:yubo@yubo.org

调度是什么

由于每个任务的资源消耗情况在任务建立的时候是不可预知的,所以虚拟机中每个vcpu的负载不大可能做到均衡,从而导致pcpu也不大可能是负载均衡的 这样就需要在运行的时候进行适当的处理,使得每个物理cpu能负载均衡,这样更加节能,性能更稳定,更好,这个方法就是---'调度/schedule'


有那些调度类型




pcpu-vcpu之间的调度

先来分析下总的调度方法schedule,此函数直接由softirq调用,中断号为0x1.
schedule可以支持很多种调度的算法,这里分析默认的credit算法

schedule()
csched_schedule()
csched_load_balance()
csched_runq_steal()
__runq_remove()
context_switch()
 
Done in 0.0361530780792 seconds