]> xenbits.xensource.com Git - libvirt.git/commitdiff
xen: parse and generate hpet item in sxpr
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 10 May 2011 11:24:14 +0000 (13:24 +0200)
committerEric Blake <eblake@redhat.com>
Tue, 10 May 2011 22:16:55 +0000 (16:16 -0600)
Recent versions of Xen disable the virtual HPET by default.  This is
usually more precise because tick policies are not implemented for
the HPET in Xen.  However, there may be several reasons to control
the HPET manually: 1) to test the emulation; 2) because distros may
provide the knob while leaving the default to "enabled" for compatibility
reasons.

This patch provides support for the hpet item in both sexpr and xm
formats, and translates it to a <timer> element.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
17 files changed:
src/xenxs/xen_sxpr.c
src/xenxs/xen_xm.c
tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.sexpr [new file with mode: 0644]
tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml [new file with mode: 0644]
tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.sexpr [new file with mode: 0644]
tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml [new file with mode: 0644]
tests/sexpr2xmltest.c
tests/xmconfigdata/test-fullvirt-force-hpet.cfg [new file with mode: 0644]
tests/xmconfigdata/test-fullvirt-force-hpet.xml [new file with mode: 0644]
tests/xmconfigdata/test-fullvirt-force-nohpet.cfg [new file with mode: 0644]
tests/xmconfigdata/test-fullvirt-force-nohpet.xml [new file with mode: 0644]
tests/xmconfigtest.c
tests/xml2sexprdata/xml2sexpr-fv-force-hpet.sexpr [new file with mode: 0644]
tests/xml2sexprdata/xml2sexpr-fv-force-hpet.xml [new file with mode: 0644]
tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.sexpr [new file with mode: 0644]
tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.xml [new file with mode: 0644]
tests/xml2sexprtest.c

index 86902865d68fc8d7615e53b214b74eff3cd092b6..72fb81aeed49bc8fbda759bf52bb685d8ef5ab80 100644 (file)
@@ -1175,6 +1175,23 @@ xenParseSxpr(const struct sexpr *root,
         /* Old XenD only allows localtime here for HVM */
         if (sexpr_int(root, "domain/image/hvm/localtime"))
             def->clock.offset = VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME;
+
+        if (sexpr_lookup(root, "domain/image/hvm/hpet")) {
+            virDomainTimerDefPtr timer;
+
+            if (VIR_ALLOC_N(def->clock.timers, 1) < 0 ||
+                VIR_ALLOC(timer) < 0) {
+                virReportOOMError();
+                goto error;
+            }
+
+            timer->name = VIR_DOMAIN_TIMER_NAME_HPET;
+            timer->present = sexpr_int(root, "domain/image/hvm/hpet");
+            timer->tickpolicy = -1;
+
+            def->clock.ntimers = 1;
+            def->clock.timers[0] = timer;
+        }
     }
 
     /* Current XenD allows localtime here, for PV and HVM */
@@ -2220,6 +2237,15 @@ xenFormatSxpr(virConnectPtr conn,
         if (def->emulator && (hvm || xendConfigVersion >= 3))
             virBufferEscapeSexpr(&buf, "(device_model '%s')", def->emulator);
 
+        /* look for HPET in order to override the hypervisor/xend default */
+        for (i = 0; i < def->clock.ntimers; i++) {
+            if (def->clock.timers[i]->name == VIR_DOMAIN_TIMER_NAME_HPET &&
+                def->clock.timers[i]->present != -1) {
+                virBufferAsprintf(&buf, "(hpet %d)",
+                                  def->clock.timers[i]->present);
+                break;
+            }
+        }
 
         /* PV graphics for xen <= 3.0.4, or HVM graphics for xen <= 3.1.0 */
         if ((!hvm && xendConfigVersion < XEND_CONFIG_MIN_VERS_PVFB_NEWCONF) ||
index 7f67ae289e5e1539f843ea3bfaae01d1bf7b09c7..accf5f4c448dc7e4434e257e7cd5c887c9288e35 100644 (file)
@@ -369,6 +369,25 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
             goto cleanup;
         else if (val)
             def->features |= (1 << VIR_DOMAIN_FEATURE_HAP);
+
+        if (xenXMConfigGetBool(conf, "hpet", &val, -1) < 0)
+            goto cleanup;
+        else if (val != -1) {
+            virDomainTimerDefPtr timer;
+
+            if (VIR_ALLOC_N(def->clock.timers, 1) < 0 ||
+                VIR_ALLOC(timer) < 0) {
+                virReportOOMError();
+                goto cleanup;
+            }
+
+            timer->name = VIR_DOMAIN_TIMER_NAME_HPET;
+            timer->present = val;
+            timer->tickpolicy = -1;
+
+            def->clock.ntimers = 1;
+            def->clock.timers[0] = timer;
+        }
     }
     if (xenXMConfigGetBool(conf, "localtime", &vmlocaltime, 0) < 0)
         goto cleanup;
@@ -1514,6 +1533,13 @@ virConfPtr xenFormatXM(virConnectPtr conn,
             goto cleanup;
         }
 
+        for (i = 0; i < def->clock.ntimers; i++) {
+            if (def->clock.timers[i]->name == VIR_DOMAIN_TIMER_NAME_HPET &&
+                def->clock.timers[i]->present != -1 &&
+                xenXMConfigSetInt(conf, "hpet", def->clock.timers[i]->present) < 0)
+                    break;
+        }
+
         if (xendConfigVersion == 1) {
             for (i = 0 ; i < def->ndisks ; i++) {
                 if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_CDROM &&
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.sexpr b/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.sexpr
new file mode 100644 (file)
index 0000000..d52214f
--- /dev/null
@@ -0,0 +1,9 @@
+(domain (domid 1)(name 'fvtest')(memory 400)(maxmem 400)(vcpus 1)\
+(uuid 'b5d70dd275cdaca517769660b059d8bc')(on_poweroff 'destroy')\
+(on_reboot 'restart')(on_crash 'restart')\
+(image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
+(cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial none)\
+(device_model '/usr/lib64/xen/bin/qemu-dm')(hpet 1)(vnc 1)))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
+(model 'e1000')(type ioemu))))\
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml
new file mode 100644 (file)
index 0000000..d0ead27
--- /dev/null
@@ -0,0 +1,44 @@
+<domain type='xen' id='1'>
+  <name>fvtest</name>
+  <uuid>b5d70dd2-75cd-aca5-1776-9660b059d8bc</uuid>
+  <memory>409600</memory>
+  <currentMemory>409600</currentMemory>
+  <vcpu>1</vcpu>
+  <os>
+    <type>hvm</type>
+    <loader>/usr/lib/xen/boot/hvmloader</loader>
+    <boot dev='hd'/>
+  </os>
+  <features>
+    <acpi/>
+  </features>
+  <clock offset='utc'>
+    <timer name='hpet' present='yes'/>
+  </clock>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <devices>
+    <emulator>/usr/lib64/xen/bin/qemu-dm</emulator>
+    <disk type='file' device='disk'>
+      <driver name='file'/>
+      <source file='/root/foo.img'/>
+      <target dev='hda' bus='ide'/>
+    </disk>
+    <disk type='file' device='cdrom'>
+      <driver name='file'/>
+      <source file='/root/boot.iso'/>
+      <target dev='hdc' bus='ide'/>
+      <readonly/>
+    </disk>
+    <interface type='bridge'>
+      <mac address='00:16:3e:1b:b1:47'/>
+      <source bridge='xenbr0'/>
+      <script path='vif-bridge'/>
+      <target dev='vif1.0'/>
+      <model type='e1000'/>
+    </interface>
+    <input type='mouse' bus='ps2'/>
+    <graphics type='vnc' port='5901' autoport='no'/>
+  </devices>
+</domain>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.sexpr b/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.sexpr
new file mode 100644 (file)
index 0000000..75bc8b1
--- /dev/null
@@ -0,0 +1,9 @@
+(domain (domid 1)(name 'fvtest')(memory 400)(maxmem 400)(vcpus 1)\
+(uuid 'b5d70dd275cdaca517769660b059d8bc')(on_poweroff 'destroy')\
+(on_reboot 'restart')(on_crash 'restart')\
+(image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
+(cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial none)\
+(device_model '/usr/lib64/xen/bin/qemu-dm')(hpet 0)(vnc 1)))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
+(model 'e1000')(type ioemu))))\
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml
new file mode 100644 (file)
index 0000000..9e6deae
--- /dev/null
@@ -0,0 +1,44 @@
+<domain type='xen' id='1'>
+  <name>fvtest</name>
+  <uuid>b5d70dd2-75cd-aca5-1776-9660b059d8bc</uuid>
+  <memory>409600</memory>
+  <currentMemory>409600</currentMemory>
+  <vcpu>1</vcpu>
+  <os>
+    <type>hvm</type>
+    <loader>/usr/lib/xen/boot/hvmloader</loader>
+    <boot dev='hd'/>
+  </os>
+  <features>
+    <acpi/>
+  </features>
+  <clock offset='utc'>
+    <timer name='hpet' present='no'/>
+  </clock>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <devices>
+    <emulator>/usr/lib64/xen/bin/qemu-dm</emulator>
+    <disk type='file' device='disk'>
+      <driver name='file'/>
+      <source file='/root/foo.img'/>
+      <target dev='hda' bus='ide'/>
+    </disk>
+    <disk type='file' device='cdrom'>
+      <driver name='file'/>
+      <source file='/root/boot.iso'/>
+      <target dev='hdc' bus='ide'/>
+      <readonly/>
+    </disk>
+    <interface type='bridge'>
+      <mac address='00:16:3e:1b:b1:47'/>
+      <source bridge='xenbr0'/>
+      <script path='vif-bridge'/>
+      <target dev='vif1.0'/>
+      <model type='e1000'/>
+    </interface>
+    <input type='mouse' bus='ps2'/>
+    <graphics type='vnc' port='5901' autoport='no'/>
+  </devices>
+</domain>
index f465105660e6388c0f89311a2a43f5efa8f0d208..f393935a73d1c7fbac70b2f22b589ca2b177aa62 100644 (file)
@@ -157,6 +157,8 @@ mymain(void)
     DO_TEST("fv-usbmouse", "fv-usbmouse", 1);
     DO_TEST("fv-usbtablet", "fv-usbtablet", 1);
     DO_TEST("fv-kernel", "fv-kernel", 1);
+    DO_TEST("fv-force-hpet", "fv-force-hpet", 1);
+    DO_TEST("fv-force-nohpet", "fv-force-nohpet", 1);
 
     DO_TEST("fv-serial-null", "fv-serial-null", 1);
     DO_TEST("fv-serial-file", "fv-serial-file", 1);
diff --git a/tests/xmconfigdata/test-fullvirt-force-hpet.cfg b/tests/xmconfigdata/test-fullvirt-force-hpet.cfg
new file mode 100644 (file)
index 0000000..4dd7585
--- /dev/null
@@ -0,0 +1,26 @@
+name = "XenGuest2"
+uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
+maxmem = 579
+memory = 394
+vcpus = 1
+builder = "hvm"
+kernel = "/usr/lib/xen/boot/hvmloader"
+boot = "d"
+pae = 1
+acpi = 1
+apic = 1
+localtime = 0
+hpet = 1
+on_poweroff = "destroy"
+on_reboot = "restart"
+on_crash = "restart"
+device_model = "/usr/lib/xen/bin/qemu-dm"
+sdl = 0
+vnc = 1
+vncunused = 1
+vnclisten = "127.0.0.1"
+vncpasswd = "123poi"
+disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,model=e1000,type=ioemu" ]
+parallel = "none"
+serial = "none"
diff --git a/tests/xmconfigdata/test-fullvirt-force-hpet.xml b/tests/xmconfigdata/test-fullvirt-force-hpet.xml
new file mode 100644 (file)
index 0000000..a662b97
--- /dev/null
@@ -0,0 +1,45 @@
+<domain type='xen'>
+  <name>XenGuest2</name>
+  <uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
+  <memory>592896</memory>
+  <currentMemory>403456</currentMemory>
+  <vcpu>1</vcpu>
+  <os>
+    <type arch='i686' machine='xenfv'>hvm</type>
+    <loader>/usr/lib/xen/boot/hvmloader</loader>
+    <boot dev='cdrom'/>
+  </os>
+  <features>
+    <acpi/>
+    <apic/>
+    <pae/>
+  </features>
+  <clock offset='utc'>
+    <timer name='hpet' present='yes'/>
+  </clock>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <devices>
+    <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
+    <disk type='block' device='disk'>
+      <driver name='phy'/>
+      <source dev='/dev/HostVG/XenGuest2'/>
+      <target dev='hda' bus='ide'/>
+    </disk>
+    <disk type='file' device='cdrom'>
+      <driver name='file'/>
+      <source file='/root/boot.iso'/>
+      <target dev='hdc' bus='ide'/>
+      <readonly/>
+    </disk>
+    <interface type='bridge'>
+      <mac address='00:16:3e:66:92:9c'/>
+      <source bridge='xenbr1'/>
+      <script path='vif-bridge'/>
+      <model type='e1000'/>
+    </interface>
+    <input type='mouse' bus='ps2'/>
+    <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'/>
+  </devices>
+</domain>
diff --git a/tests/xmconfigdata/test-fullvirt-force-nohpet.cfg b/tests/xmconfigdata/test-fullvirt-force-nohpet.cfg
new file mode 100644 (file)
index 0000000..d4fb429
--- /dev/null
@@ -0,0 +1,26 @@
+name = "XenGuest2"
+uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
+maxmem = 579
+memory = 394
+vcpus = 1
+builder = "hvm"
+kernel = "/usr/lib/xen/boot/hvmloader"
+boot = "d"
+pae = 1
+acpi = 1
+apic = 1
+localtime = 0
+hpet = 0
+on_poweroff = "destroy"
+on_reboot = "restart"
+on_crash = "restart"
+device_model = "/usr/lib/xen/bin/qemu-dm"
+sdl = 0
+vnc = 1
+vncunused = 1
+vnclisten = "127.0.0.1"
+vncpasswd = "123poi"
+disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,model=e1000,type=ioemu" ]
+parallel = "none"
+serial = "none"
diff --git a/tests/xmconfigdata/test-fullvirt-force-nohpet.xml b/tests/xmconfigdata/test-fullvirt-force-nohpet.xml
new file mode 100644 (file)
index 0000000..bcd9af6
--- /dev/null
@@ -0,0 +1,45 @@
+<domain type='xen'>
+  <name>XenGuest2</name>
+  <uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
+  <memory>592896</memory>
+  <currentMemory>403456</currentMemory>
+  <vcpu>1</vcpu>
+  <os>
+    <type arch='i686' machine='xenfv'>hvm</type>
+    <loader>/usr/lib/xen/boot/hvmloader</loader>
+    <boot dev='cdrom'/>
+  </os>
+  <features>
+    <acpi/>
+    <apic/>
+    <pae/>
+  </features>
+  <clock offset='utc'>
+    <timer name='hpet' present='no'/>
+  </clock>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <devices>
+    <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
+    <disk type='block' device='disk'>
+      <driver name='phy'/>
+      <source dev='/dev/HostVG/XenGuest2'/>
+      <target dev='hda' bus='ide'/>
+    </disk>
+    <disk type='file' device='cdrom'>
+      <driver name='file'/>
+      <source file='/root/boot.iso'/>
+      <target dev='hdc' bus='ide'/>
+      <readonly/>
+    </disk>
+    <interface type='bridge'>
+      <mac address='00:16:3e:66:92:9c'/>
+      <source bridge='xenbr1'/>
+      <script path='vif-bridge'/>
+      <model type='e1000'/>
+    </interface>
+    <input type='mouse' bus='ps2'/>
+    <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'/>
+  </devices>
+</domain>
index 6022621a1fa09b882feedb6a42a1edc7ebc8d24a..a15a7ff193160abf8a44e2b1d4aa93f36069885a 100644 (file)
@@ -231,6 +231,9 @@ mymain(void)
     DO_TEST("fullvirt-serial-udp", 2);
     DO_TEST("fullvirt-serial-unix", 2);
 
+    DO_TEST("fullvirt-force-hpet", 2);
+    DO_TEST("fullvirt-force-nohpet", 2);
+
     DO_TEST("fullvirt-parallel-tcp", 2);
 
     DO_TEST("fullvirt-sound", 2);
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-force-hpet.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-force-hpet.sexpr
new file mode 100644 (file)
index 0000000..400872d
--- /dev/null
@@ -0,0 +1,9 @@
+(vm (name 'fvtest')(memory 400)(maxmem 400)(vcpus 1)\
+(uuid 'b5d70dd2-75cd-aca5-1776-9660b059d8bc')(on_poweroff 'destroy')\
+(on_reboot 'restart')(on_crash 'restart')\
+(image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
+(cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial none)\
+(device_model '/usr/lib64/xen/bin/qemu-dm')(hpet 1)(vnc 1)))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
+(model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-force-hpet.xml b/tests/xml2sexprdata/xml2sexpr-fv-force-hpet.xml
new file mode 100644 (file)
index 0000000..1065f0e
--- /dev/null
@@ -0,0 +1,39 @@
+<domain type='xen'>
+  <name>fvtest</name>
+  <uuid>b5d70dd275cdaca517769660b059d8bc</uuid>
+  <os>
+    <type>hvm</type>
+    <loader>/usr/lib/xen/boot/hvmloader</loader>
+    <boot dev='hd'/>
+  </os>
+  <memory>409600</memory>
+  <vcpu>1</vcpu>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <features>
+    <acpi/>
+  </features>
+  <clock offset='utc'>
+    <timer name='hpet' present='yes'/>
+  </clock>
+  <devices>
+    <emulator>/usr/lib64/xen/bin/qemu-dm</emulator>
+    <interface type='bridge'>
+      <source bridge='xenbr0'/>
+      <mac address='00:16:3e:1b:b1:47'/>
+      <script path='vif-bridge'/>
+      <model type='e1000'/>
+    </interface>
+    <disk type='file' device='cdrom'>
+      <source file='/root/boot.iso'/>
+      <target dev='hdc'/>
+      <readonly/>
+    </disk>
+    <disk type='file'>
+      <source file='/root/foo.img'/>
+      <target dev='ioemu:hda'/>
+    </disk>
+    <graphics type='vnc' port='5917' keymap='ja'/>
+  </devices>
+</domain>
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.sexpr
new file mode 100644 (file)
index 0000000..9577892
--- /dev/null
@@ -0,0 +1,9 @@
+(vm (name 'fvtest')(memory 400)(maxmem 400)(vcpus 1)\
+(uuid 'b5d70dd2-75cd-aca5-1776-9660b059d8bc')(on_poweroff 'destroy')\
+(on_reboot 'restart')(on_crash 'restart')\
+(image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
+(cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial none)\
+(device_model '/usr/lib64/xen/bin/qemu-dm')(hpet 0)(vnc 1)))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
+(model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.xml b/tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.xml
new file mode 100644 (file)
index 0000000..decfd67
--- /dev/null
@@ -0,0 +1,39 @@
+<domain type='xen'>
+  <name>fvtest</name>
+  <uuid>b5d70dd275cdaca517769660b059d8bc</uuid>
+  <os>
+    <type>hvm</type>
+    <loader>/usr/lib/xen/boot/hvmloader</loader>
+    <boot dev='hd'/>
+  </os>
+  <memory>409600</memory>
+  <vcpu>1</vcpu>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <features>
+    <acpi/>
+  </features>
+  <clock offset='utc'>
+    <timer name='hpet' present='no'/>
+  </clock>
+  <devices>
+    <emulator>/usr/lib64/xen/bin/qemu-dm</emulator>
+    <interface type='bridge'>
+      <source bridge='xenbr0'/>
+      <mac address='00:16:3e:1b:b1:47'/>
+      <script path='vif-bridge'/>
+      <model type='e1000'/>
+    </interface>
+    <disk type='file' device='cdrom'>
+      <source file='/root/boot.iso'/>
+      <target dev='hdc'/>
+      <readonly/>
+    </disk>
+    <disk type='file'>
+      <source file='/root/foo.img'/>
+      <target dev='ioemu:hda'/>
+    </disk>
+    <graphics type='vnc' port='5917' keymap='ja'/>
+  </devices>
+</domain>
index dab8c84680f2c68a2c40ef06c5a4d9ccd9051191..d8cdcbbe5b26d547d5e935759fbb219e69de93dc 100644 (file)
@@ -143,6 +143,8 @@ mymain(void)
     DO_TEST("fv-usbmouse", "fv-usbmouse", "fvtest", 1);
     DO_TEST("fv-usbmouse", "fv-usbmouse", "fvtest", 1);
     DO_TEST("fv-kernel", "fv-kernel", "fvtest", 1);
+    DO_TEST("fv-force-hpet", "fv-force-hpet", "fvtest", 1);
+    DO_TEST("fv-force-nohpet", "fv-force-nohpet", "fvtest", 1);
 
     DO_TEST("fv-serial-null", "fv-serial-null", "fvtest", 1);
     DO_TEST("fv-serial-file", "fv-serial-file", "fvtest", 1);