2009年8月30日日曜日

hpetオプション

 High Precision Event Timer (HPET)をエミュレートします。 (HVMドメイン)





 HPETは、これまでのPC/AT互換機で標準搭載されていたPITと比較し、高精度・高機能を実現したタイマーデバイスです。HPETを利用するにはHPETに対応したOS(Windows Vista、Windows Server 2008、Linux 2.6など)が必要です。


■ 書式

hpet=<n>

■ <n>の値


  • 1 …… 有効

  • 0 …… 無効





■ 実行例

hpet=0の場合

hvm-domain$ sudo cat /sys/devices/system/clocksource/clocksource0/available_clocksource
hpet acpi_pm jiffies tsc
hvm-domain$ sudo cat /sys/devices/system/clocksource/clocksource0/current_clocksource
hpet

hpet=0の場合

hvm-domain$ sudo cat /sys/devices/system/clocksource/clocksource0/available_clocksource
acpi_pm jiffies tsc
hvm-domain$ sudo cat /sys/devices/system/clocksource/clocksource0/current_clocksource
acpi_pm

■ 注意点


  • HPETエミュレーションを利用した場合でも、タイマのエミュレーション精度が向上するとは限りません。

  • Xen 3.3以降

softtsc(TSCのエミュレーション)

最近のXenでは、Xen起動時にsofttscオプションを指定することで、HVMドメインにおいてTSCをエミュレーションできるようになります。この機能を使うことにより、HVMドメインの時刻のずれをある程度抑制できます。




■設定例

/boot/grub/menu.lst抜粋

title Xen-unstable + 2.6.18.8-xen, iommu=0
        root (hd0,0)
        kernel /xen-3.5.gz iommu=0 com1=9600,8n1 console=com1,vga softtsc
        module /vmlinuz-2.6.18.8-xen ro root=LABEL=/
        module /initrd-2.6.18.8-xen.img

■実行例

softtscオプションが有効な場合、HVMドメインがRDTSCインストラクションを発行すると、Xenが管理するドメインの実行時間を基にTSCカウンタの値が決定されます。また、HVMドメインは(CPUの実働クロックに関わらず)仮想CPUのクロックを1000MHzと報告します。

softtscオプションありの場合

root@vm245:~# cat /proc/cpuinfo
 processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Quad CPU    Q8400  @ 2.66GHz
stepping        : 10
cpu MHz         : 1000.005
……

デフォルト(softtscオプションなし)の場合は、HVMドメインがRDTSCインストラクションを発行すると、CPUが持つTSCカウンタの値をそのまま受け取ります。

softtscオプションなしの場合

hasegaw@vm245:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Quad CPU    Q8400  @ 2.66GHz
stepping        : 10
cpu MHz         : 2666.414
……

■注意点


  • softtscオプションを指定した場合、そのXenハイパーバイザ上で実行されるすべてのHVMドメインに機能します。

  • 将来的には仮想CPUのクロック速度、ドメイン単位での有効化/無効化が可能になると思われます。

  • マージ時期 2008年7月(xen-unstable)