[libvirt] [virt-tools-list] Questions about virt-manager running on Arch of Itanium 64

Cole Robinson crobinso at redhat.com
Wed Jan 6 15:09:55 UTC 2010


On 01/04/2010 08:27 PM, Dustin Xiong wrote:
> 
> 
>  
> 
>> Date: Mon, 4 Jan 2010 11:46:06 -0500
>> From: crobinso at redhat.com
>> To: x_k_123 at hotmail.com
>> CC: berrange at redhat.com; libvirt-list at redhat.com
>> Subject: Re: [libvirt] [virt-tools-list] Questions about virt-manager running on Arch of Itanium 64
>>
>> On 12/25/2009 03:48 AM, Dustin Xiong wrote:
>>
>>>>> If i want to update qemu_conf.c to handle ia64 , which files or 
>>>>> datastruct needs to update ? Only the qemu_conf.c ?
>>>>
>>>> If you search for the table 
>>>>
>>>> static const struct qemu_arch_info const arch_info_hvm[] = {
>>>>
>>>> It is probably (hopefully?) sufficient to just add 
>>>>
>>>> { "ia64", 64, NULL, "/usr/bin/qemu-system-ia64", NULL, NULL, 0 },
>>>>
>>>> The key test is that when you later run
>>>>
>>>> virsh capabilities
>>>>
>>>> it should show the /usr/bin/qemu-system-ia64 binary, and also report that
>>>> KVM is present. 
>>>>
>>>> I have a feeling you might also need to add code to the src/nodeinfo.c
>>>> file, since I think that /proc/cpuinfo on ia64 is in a different format
>>>> to that on x86_64. ie, change the linuxNodeInfoCPUPopulate() method so
>>>> it can also parse the ia64 format. This is used by the command
>>>>
>>>> virsh nodeinfo
>>>>
>>>>
>>>> So once 'capabilities' and 'nodeinfo' are working on ia64, then it should
>>>> be possible to use virt-manager properly
>>>>
>>> I modify the src, and build it to rpm. The libvirt could work.
>>>
>>> And as you said, i add ia64 info into the qemu_conf.c. The result as below:
>>>
>>>
>>>
>>> [root at kvm bin]# virsh capabilities
>>> <capabilities>
>>>
>>> <host>
>>> <cpu>
>>> <arch>ia64</arch>
>>> </cpu>
>>> <topology>
>>> <cells num='1'>
>>> <cell id='0'>
>>> <cpus num='16'>
>>> <cpu id='0'/>
>>> <cpu id='1'/>
>>> <cpu id='2'/>
>>> <cpu id='3'/>
>>> <cpu id='4'/>
>>> <cpu id='5'/>
>>> <cpu id='6'/>
>>> <cpu id='7'/>
>>> <cpu id='8'/>
>>> <cpu id='9'/>
>>> <cpu id='10'/>
>>> <cpu id='11'/>
>>> <cpu id='12'/>
>>> <cpu id='13'/>
>>> <cpu id='14'/>
>>> <cpu id='15'/>
>>> </cpus>
>>> </cell>
>>> </cells>
>>> </topology>
>>> </host>
>>>
>>> <guest>
>>> <os_type>hvm</os_type>
>>> <arch name='ia64'>
>>> <wordsize>64</wordsize>
>>> <emulator>/usr/bin/qemu-system-ia64</emulator>
>>> <machine>ia64</machine>
>>> <machine>xenner</machine>
>>> <domain type='qemu'>
>>> </domain>
>>> <domain type='kvm'>
>>> <emulator>/usr/bin/kvm</emulator>
>>> </domain>
>>> </arch>
>>> <features>
>>> <acpi default='on' toggle='yes'/>
>>> <apic default='on' toggle='no'/>
>>> </features>
>>> </guest>
>>>
>>> </capabilities>
>>>
>>>
>>>
>>> [root at kvm bin]# virsh nodeinfo
>>> CPU model: ia64
>>> CPU(s): 16
>>> CPU frequency: 1330 MHz
>>> CPU socket(s): 16
>>> Core(s) per socket: 1
>>> Thread(s) per core: 1
>>> NUMA cell(s): 1
>>> Memory size: 8252480 kB
>>>
>>>
>>>
>>> But the virt-manager still can't work. When i create a new vm. 
>>>
>>> The error as below:
>>>
>>>
>>>
>>> Unable to complete install 'libvirt.libvirtError internal error Domain ad didn't show up
>>>
>>> Traceback (most recent call last):
>>> File "/usr/share/virt-manager/virtManager/create.py", line 718, in do_install
>>> dom = guest.start_install(False, meter = meter)
>>> File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 660, in start_install
>>> return self._do_install(consolecb, meter, removeOld, wait)
>>> File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 758, in _do_install
>>> self.domain = self.conn.createLinux(install_xml, 0)
>>> File "/usr/lib/python2.4/site-packages/libvirt.py", line 974, in createLinux
>>> if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)
>>> libvirtError: internal error Domain ad didn't show up
>>>
>>>
>>> I don't know how to resolve this error.
>>>
>>> Thank you for your advice.
>>>
>>
>> What is the output in /var/log/libvirt/qemu/$vmname.log ?
> 
> 
> The output in /var/log/libvirt/qemu/vm10.log is :
> 
> LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin HOME=/ /usr/bin/kvm -S -M ia64 -m 512 -smp 1 -name vm10 -uuid 8adb1d1d-147f-710a-6d13-c71ba185f811 -monitor pty -pidfile /var/run/libvirt/qemu//vm10.pid -no-reboot -boot d -drive file=/var/lib/libvirt/images/vm10.img,if=ide,index=0,format=raw -drive file=/var/lib/libvirt/images/rhel-server-5.4-ia64-disc1.iso,if=ide,media=cdrom,index=2,format=raw -net nic,macaddr=52:54:00:59:bb:26,vlan=0 -net tap,fd=16,script=,vlan=0,ifname=vnet0 -serial pty -parallel none -usb -vnc 127.0.0.1:0 -k en-us 
> Supported machines are:
> itanium    Itanium Platform (default)
> 
>  
> 
> -dustin
> 

Hmm, not sure why libvirt is passing '-M ia64' when the kvm binary only
expects '-M itanium'. Can you attach the diff you applied to the code?
Make sure you are building the latest code (either from tar.gz or git
checkout).

What's the output of 'kvm -M ?' and 'qemu-system-ia64 -M ?'

- Cole




More information about the libvir-list mailing list