xenpaging流程详解(2)

来源:互联网 发布:image lab软件下载 编辑:程序博客网 时间:2024/05/21 10:36

xenpaging_init

1) 为xenpaging_t类型的变量paging分配内存。
2) 连接xenstore。
3) 初始化shutdown watch。
 该shutdown watch是用于监控xenstore的@releaseDomain值,在虚拟机关机时,触发xenpaging的关闭动作。
4) 初始化policy_mru_size。
 policy_mru_size默认为1024 * 16,即对应64M内存。policy_mru_size的作用就是防止最近64M被page in的内存页被选中page out出来。该机制的优点是,防止近期频繁使用到的页被page out出来,进而降低交换频率,提高性能。
5) 连接xen。
6) 设置domain id。
7) 初始化shared page。
8) 初始化ring page。
9) 初始化ring。
10) 初始化xen。
11) 开启事件通道。
12) 绑定事件通道。
13) 获取domaininfo。
14) 为page out的位图分配内存。
 page out的位图是用来记录哪些页被page out出来的数据结构。在选页page out和还页的过程中都起到关键作用。
15) 调节num_pages。
 当num_pages小于0,或者大于虚拟机最大页数。那么将num_pages置为虚拟机的最大页数。
16) 选页策略初始化。
 目前的选页策略是从中间开始,用以避免BIOS启动过程中执行paging。

原创粉丝点击