[Libvir] Re: support for hvm guests

Jim Fehlig jfehlig at novell.com
Thu May 4 05:13:41 UTC 2006


>>>> Anthony Liguori <aliguori at us.ibm.com> 05/03/06 6:47 PM >>>
>
>>>> Currently I can get info on hvm domains but unable to create them. 

>>>> The create request is sent to xend but then blocks reading from
xend 
>>>> in xend_req().  No problem creating the domain using xm.  I have 
>>>> looked at the config coming into xend and it is identical between
xm 
>>>> and virsh/libvirt.  Need to poke around xend and see why there is
no 
>>>> response to the virsh/libvirt create request for hvm domains.
>>>>   
>>>
>>>  Hum, basically to debug this kind of things I spend my time in
>>> /var/log/xend.log especially since it prints what it received at 
>>> creation
>>> time, you can at least check the informations coming from libvirt
and
>>> from xm look alike.
>>>  Unfortunately I won't be able to help you, first because I'm about
to
>>> take vacations for 3 weeks :-), second because I don't have one of
those
>>> new Intel CPUs, but I am sure others will give an hand if needed.
>>>  
>>>
>>
>> Well, I have found the problem but not a fix :-).  When posting the 
>> create op to xend, the libvirt code currently waits for a response 
>> from xend (xend_req() is called after posting in xend_post()).  For 
>> hvm guests, xend does not respond and libvirt blocks indefinitely on 
>> read.  If I skip over the call to xend_req() for the create
operation, 
>> wait_for_devices() and subsequently unpause() are called and the hvm 
>> guest is launched.
>
>What do you mean by Xend does not respond?

I post a request such as:

op=create&config=(vm%20(name%20'j_sles10b9_full')(memory%20512)(vcpus%201)(on_poweroff%20'destroy')(on_reboot%20'destroy')(on_crash%20'destroy')(image%20(hvm%20(kernel%20'/usr/lib/xen/boot/hvmloader')(device_model%20'/usr/lib/xen/bin/qemu-dm')(boot%20c)(sdl%201)(stdvga%201)(vcpus%201)))(device%20(vbd%20(dev%20'ioemu:hda')(uname%20'file:/var/lib/xen/images/j_sles10b9_full/hda')(mode%20'w')))(device%20(vif%20(mac%20'00:16:3e:b2:68:1d')(bridge%20'xenbr0')(script%20'vif-bridge')(type%20'ioemu'))))

to xend from xend_post() in libvirt's xend_internal.c, which then
expects to read a response from xend but it never arrives and blocks the
read in libvirt.

>Can you give me a very concrete test case for this?  The exact 
>parameters being passed to domain_create() (it should just be an 
>S-Expression config).

The sexpr is:

(vm (name 'j_sles10b9_full')(memory 512)(vcpus 1)(on_poweroff
'destroy')(on_reboot 'destroy')(on_crash 'destroy')(image (hvm (kernel
'/usr/lib/xen/boot/hvmloader')(device_model
'/usr/lib/xen/bin/qemu-dm')(boot c)(sdl 1)(stdvga 1)(vcpus 1)))(device
(vbd (dev 'ioemu:hda')(uname
'file:/var/lib/xen/images/j_sles10b9_full/hda')(mode 'w')))(device (vif
(mac '00:16:3e:b2:68:1d')(bridge 'xenbr0')(script 'vif-bridge')(type
'ioemu'))))

The url-encoded request sent from libvirt is also provided above.  Below
is the relevent content in xend.log.

Thanks,
Jim


[2006-05-02 10:58:13 xend.XendDomainInfo] DEBUG (XendDomainInfo:180)
XendDomainInfo.create(['vm', ['name', 'j_sles10b9_full'], ['memory',
'512'], ['maxmem', '512'], ['vcpus', '1'], ['on_poweroff', 'destroy'],
['on_reboot', 'destroy'], ['on_crash', 'destroy'], ['image', ['hvm',
['kernel', '/usr/lib/xen/boot/hvmloader'], ['device_model',
'/usr/lib/xen/bin/qemu-dm'], ['boot', 'c'], ['cdrom',
'/tests/iso/SLES-10-i386-Beta9.iso'], ['sdl', '1'], ['stdvga', '1'],
['vcpus', '1']]], ['device', ['vbd', ['dev', 'ioemu:hda'], ['uname',
'file:/var/lib/xen/images/j_sles10b9_full/hda'], ['mode', 'w']]],
['device', ['vif', ['mac', '00:16:3e:b2:68:1d'], ['bridge', 'xenbr0'],
['script', 'vif-bridge'], ['type', 'ioemu']]]])
[2006-05-02 10:58:13 xend.XendDomainInfo] DEBUG (XendDomainInfo:286)
parseConfig: config is ['vm', ['name', 'j_sles10b9_full'], ['memory',
'512'], ['maxmem', '512'], ['vcpus', '1'], ['on_poweroff', 'destroy'],
['on_reboot', 'destroy'], ['on_crash', 'destroy'], ['image', ['hvm',
['kernel', '/usr/lib/xen/boot/hvmloader'], ['device_model',
'/usr/lib/xen/bin/qemu-dm'], ['boot', 'c'], ['cdrom',
'/tests/iso/SLES-10-i386-Beta9.iso'], ['sdl', '1'], ['stdvga', '1'],
['vcpus', '1']]], ['device', ['vbd', ['dev', 'ioemu:hda'], ['uname',
'file:/var/lib/xen/images/j_sles10b9_full/hda'], ['mode', 'w']]],
['device', ['vif', ['mac', '00:16:3e:b2:68:1d'], ['bridge', 'xenbr0'],
['script', 'vif-bridge'], ['type', 'ioemu']]]]
[2006-05-02 10:58:13 xend.XendDomainInfo] DEBUG (XendDomainInfo:382)
parseConfig: result is {'ssidref': None, 'uuid': None, 'on_crash':
'destroy', 'on_reboot': 'destroy', 'localtime': None, 'image': ['hvm',
['kernel', '/usr/lib/xen/boot/hvmloader'], ['device_model',
'/usr/lib/xen/bin/qemu-dm'], ['boot', 'c'], ['cdrom',
'/tests/iso/SLES-10-i386-Beta9.iso'], ['sdl', '1'], ['stdvga', '1'],
['vcpus', '1']], 'on_poweroff': 'destroy', 'cpus': None, 'name':
'j_sles10b9_full', 'backend': [], 'cpu': None, 'vcpus': 1, 'cpu_weight':
None, 'vcpu_avail': None, 'memory': 512, 'device': [('vbd', ['vbd',
['dev', 'ioemu:hda'], ['uname',
'file:/var/lib/xen/images/j_sles10b9_full/hda'], ['mode', 'w']]),
('vif', ['vif', ['mac', '00:16:3e:b2:68:1d'], ['bridge', 'xenbr0'],
['script', 'vif-bridge'], ['type', 'ioemu']])], 'bootloader': None,
'root': None, 'bootentry': None, 'maxmem': 512}
[2006-05-02 10:58:13 xend.XendDomainInfo] DEBUG (XendDomainInfo:1189)
XendDomainInfo.construct: None 0
[2006-05-02 10:58:13 xend.XendDomainInfo] DEBUG (XendDomainInfo:1221)
XendDomainInfo.initDomain: 29 1.0
[2006-05-02 10:58:13 xend] DEBUG (image:266) args: cdrom, val:
/tests/iso/SLES-10-i386-Beta9.iso
[2006-05-02 10:58:13 xend] DEBUG (image:266) args: boot, val: c
[2006-05-02 10:58:13 xend] DEBUG (image:266) args: fda, val: None
[2006-05-02 10:58:13 xend] DEBUG (image:266) args: fdb, val: None
[2006-05-02 10:58:13 xend] DEBUG (image:266) args: nic-ne2000, val: None
[2006-05-02 10:58:13 xend] DEBUG (image:266) args: enable-audio, val:
None
[2006-05-02 10:58:13 xend] DEBUG (image:266) args: localtime, val: None
[2006-05-02 10:58:13 xend] DEBUG (image:266) args: serial, val: None
[2006-05-02 10:58:13 xend] DEBUG (image:266) args: std-vga, val: 1
[2006-05-02 10:58:13 xend] DEBUG (image:266) args: isa, val: None
[2006-05-02 10:58:13 xend] DEBUG (image:266) args: vcpus, val: 1
[2006-05-02 10:58:13 xend] DEBUG (balloon:177) Balloon: free 2267; need
518; done.
[2006-05-02 10:58:13 xend] INFO (image:135) buildDomain os=hvm dom=29
vcpus=1
[2006-05-02 10:58:13 xend] DEBUG (image:224) dom            = 29
[2006-05-02 10:58:13 xend] DEBUG (image:225) image          =
/usr/lib/xen/boot/hvmloader
[2006-05-02 10:58:13 xend] DEBUG (image:226) store_evtchn   = 1
[2006-05-02 10:58:13 xend] DEBUG (image:227) memsize        = 512
[2006-05-02 10:58:13 xend] DEBUG (image:228) vcpus          = 1
[2006-05-02 10:58:13 xend] DEBUG (image:229) pae            = 0
[2006-05-02 10:58:13 xend] DEBUG (image:230) acpi           = 0
[2006-05-02 10:58:13 xend] DEBUG (image:231) apic           = 0
[2006-05-02 10:58:13 xend] DEBUG (image:409) hvm shutdown watch
registered
[2006-05-02 10:58:13 xend] DEBUG (blkif:24) exception looking up device
number for hda: [Errno 2] No such file or directory: '/dev/hda'
[2006-05-02 10:58:13 xend] DEBUG (DevController:103) DevController:
writing {'state': '1', 'backend-id': '0', 'backend':
'/local/domain/0/backend/vbd/29/768'} to
/local/domain/29/device/vbd/768.
[2006-05-02 10:58:13 xend] DEBUG (DevController:105) DevController:
writing {'domain': 'j_sles10b9_full', 'frontend':
'/local/domain/29/device/vbd/768', 'dev': 'ioemu:hda', 'state': '1',
'params': '/var/lib/xen/images/j_sles10b9_full/hda', 'mode': 'w',
'frontend-id': '29', 'type': 'file'} to
/local/domain/0/backend/vbd/29/768.
[2006-05-02 10:58:13 xend] DEBUG (DevController:103) DevController:
writing {'state': '1', 'backend-id': '0', 'backend':
'/local/domain/0/backend/vif/29/0'} to /local/domain/29/device/vif/0.
[2006-05-02 10:58:13 xend] DEBUG (DevController:105) DevController:
writing {'bridge': 'xenbr0', 'domain': 'j_sles10b9_full', 'handle': '0',
'script': '/etc/xen/scripts/vif-bridge', 'state': '1', 'frontend':
'/local/domain/29/device/vif/0', 'mac': '00:16:3e:b2:68:1d',
'frontend-id': '29', 'type': 'ioemu'} to
/local/domain/0/backend/vif/29/0.
[2006-05-02 10:58:13 xend] INFO (image:355) spawning device models:
/usr/lib/xen/bin/qemu-dm ['/usr/lib/xen/bin/qemu-dm', '-d', '29', '-m',
'512', '-cdrom', '/tests/iso/SLES-10-i386-Beta9.iso', '-boot', 'c',
'-std-vga', '-vcpus', '1', '-domain-name', 'j_sles10b9_full', '-hda',
'/var/lib/xen/images/j_sles10b9_full/hda', '-macaddr',
'00:16:3e:b2:68:1d', '-bridge', 'xenbr0', '-nics', '1']
[2006-05-02 10:58:13 xend] INFO (image:357) device model pid: 3496
[2006-05-02 10:58:13 xend.XendDomainInfo] DEBUG (XendDomainInfo:675)
Storing VM details: {'ssidref': '0', 'uuid':
'a3fc6694-3959-b4bf-85b3-0364c231c504', 'on_reboot': 'destroy',
'start_time': '1146589093.41', 'on_poweroff': 'destroy', 'name':
'j_sles10b9_full', 'vcpus': '1', 'vcpu_avail': '1', 'memory': '512',
'on_crash': 'destroy', 'image': '(hvm (kernel
/usr/lib/xen/boot/hvmloader) (device_model /usr/lib/xen/bin/qemu-dm)
(boot c) (cdrom /tests/iso/SLES-10-i386-Beta9.iso) (sdl 1) (stdvga 1)
(vcpus 1))', 'maxmem': '512'}
[2006-05-02 10:58:13 xend.XendDomainInfo] DEBUG (XendDomainInfo:700)
Storing domain details: {'console/port': '2', 'name': 'j_sles10b9_full',
'console/limit': '1048576', 'vm':
'/vm/a3fc6694-3959-b4bf-85b3-0364c231c504', 'domid': '29',
'cpu/0/availability': 'online', 'memory/target': '524288',
'store/ring-ref': '682307', 'store/port': '1'}
[2006-05-02 10:58:13 xend] DEBUG (image:432) hvm_shutdown fired,
shutdown reason=None
[2006-05-02 10:58:13 xend.XendDomainInfo] DEBUG (XendDomainInfo:881)
XendDomainInfo.handleShutdownWatch





More information about the libvir-list mailing list