[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [BUG] Xen x86_64 needs PAE?



Hello,

I tried to install "Microsoft Windows 2008 Server R2" on an Amd64 host using 
Xen-3.4.3. The installation aborted with the following error message:
> Windows Boot Mager
...
> File: \windows\system32\boot\winload.exe
> Status: 0xc000035a
> Info: Attempting to load a 64-bit application, however this CPU is not 
compatible with 64-bit mode.

For testing I converted the libvirt-XML file to an Xen-Xm file using "virsh 
domxml-to-native" and started that file with "xm create", which worked.
Comparing the output of "xm list -a" of the broken libvirt- and the working 
xm-configuration I found several differences, especially with "pae": 
Using "xm create" pae is set to 1, while with libvirt pae is set to 0. After 
adding the /domain/featues/pae node to libvirts XML domain file, Windows 
installed fine.

Looking at "virsh capabilities" I get the following (abbreviated) output:
> <capabilities>
>   <guest>
>     <os_type>hvm</os_type>
>     <arch name='i686'>
>       <wordsize>32</wordsize>
...
>     </arch>
>     <features>
>       <pae/>
>       <nonpae/>
>       <acpi default='on' toggle='yes'/>
>       <apic default='on' toggle='yes'/>
>     </features>
>   </guest>
>   <guest>
>     <os_type>hvm</os_type>
>     <arch name='x86_64'>
>       <wordsize>64</wordsize>
...
>     </arch>
>     <features>
>       <acpi default='on' toggle='yes'/>
>       <apic default='on' toggle='yes'/>
>     </features>
>   </guest>
> </capabilities>

As you can see, neither "<pae/>" nor "<nopae/>" is listed for for the 64 bit 
Xen-Fv domain type, which makes it hard to automatically create a correct 
_and_ _working_ XML file for Xen-Fv-64 bit domains

Looking at "/sys/hypervisor/properties/capabilities" I find the following 
capabilities reported by Xen
> xen-3.0-x86_64
> xen-3.0-x86_32p
> hvm-3.0-x86_32
> hvm-3.0-x86_32p
> hvm-3.0-x86_64    

There's also no "hvm-3.0-x86_64p" which makes me wonder, if "<pae/>" is the 
default for Xen-64 bit domains.

If that is true, should libvirt add "<pae/"> by default to the capabilities 
report, or should libvirt silently pass "(pae 1)" when pushing the XML domain 
description to Xend? Lookign at 
<file:xen-3.4.3/tools/python/xen/xm/create.py>:210 I see that "pae" is 
enabled by default there, and thus gets enabled for each domain using "xm 
create":
> gopts.var('pae', val='PAE',
>           fn=set_int, default=1,
>           use="Disable or enable PAE of HVM domain.")

Any feedback is appreciated.

BYtE
Philipp
-- 
Philipp Hahn           Open Source Software Engineer      hahn univention de   
Univention GmbH        Linux for Your Business        fon: +49 421 22 232- 0
Mary-Somerville-Str.1  28359 Bremen                   fax: +49 421 22 232-99
                                                    http://www.univention.de
<domain type='xen'>
  <name>Windows2008r2_64</name>
  <memory>524288</memory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='xenfv'>hvm</type>
    <loader>/usr/lib/xen/boot/hvmloader</loader>
    <boot dev='cdrom'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <!--pae/-->
  </features>
  <clock offset='utc'/>
  <on_poweroff>preserve</on_poweroff>
  <on_reboot>preserve</on_reboot>
  <on_crash>preserve</on_crash>
  <devices>
    <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
    <disk type='file' device='disk'>
      <driver name='file'/>
      <source file='/var/lib/libvirt/images/w2k8r2_64.img'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='file'/>
      <source file='/var/lib/libvirt/images/windows2008-server-R2_x64.iso'/>
      <readonly/>
    </disk>
    <interface type='bridge'>
      <mac address='00:00:00:00:00:00'/>
      <source bridge='eth0'/>
    </interface>
    <input type='tablet' bus='usb'/>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='de'/>
  </devices>
</domain>

Attachment: signature.asc
Description: This is a digitally signed message part.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]