Xen的P状态

Xen是将管理程序和特权客户端Dom0作为主机操作系统的管理程序。Xen准备了管理程序控制P状态的方法和Dom0控制P状态的方法。RHEL5等Linux发布版采用的是Dom0控制P状态的方式。使用Dom0控制P状态的方式时,通过下列命令添加Xen的启动选项cpufreq=dom0-kernel。在RHEL5等中,这个选项是默认的。这个方式的优点是可以在Dom0上使用cpuspeed等工具,因此可以设置与不使用Xen时的Linux相同的策略。


title Xen

root(hd0,0)

kernel/boot/xen.gz cpufreq=dom0-kernel

module/boot/vmlinuz-2.6.18.8-xen ro root=/dev/sda1

module/boot/initrd-2.6-xen.img


但是cpufreq=dom0-kernel的情形必须由dom0的虚拟CPU直接控制物理CPU的P状态,因此所有的虚拟CPU必须与所有物理CPU一对一固定,如图6-6所示。指定cpufreq=dom0-kernel时,会自动执行将虚拟CPU与物理CPU固定的处理,但如果通过dom0_max_vcpus启动选项将虚拟CPU的数量指定为少于物理CPU,或者无法将虚拟CPU固定分配给物理CPU时,cpufreq=dom0-kernel选项可以忽略。

Xen的P状态 - 图1

图 6-6 cpufreq=dom0-kernel时虚拟CPU和物理CPU的关系图

Xen3. 4以后可以通过在启动选项中指定cpufreq=xen来使用管理程序控制P状态的方式(也有RHEL5等无法使用的发布版)。策略等的设置必须由管理程序来进行,因此不使用cpuspeed服务,而是使用自身特有的工具xenpm。这种方式的优点是能够立即改变P状态。在cpufreq=dom0-kernel情形下,到Dom0的虚拟CPU被调度为止都不能改变P状态,但对于cpufreq=xen情形(如图6-7所示),是通过管理程序改变P状态的,因此必要时能够立即改变P状态。


title Xen

root(hd0,0)

kernel/boot/xen.gz cpufreq=xen

module/boot/vmlinuz-2.6.18.8-xen ro root=/dev/sda1

module/boot/initrd-2.6-xen.img


Xen的P状态 - 图2

图 6-7 cpufreq=xen时的虚拟CPU和物理CPU的关系图

表6-18是xenpm的使用方法。设置为xenpm start,就可以像powertop实用程序(utility)一样观测CPU的C/P状态使用情况。

Xen的P状态 - 图3

Xen的P状态 - 图4