On 01/04/2010 08:27 PM, Dustin Xiong wrote:
> Date: Mon, 4 Jan 2010 11:46:06 -0500
> From: crobinso(a)redhat.com
> To: x_k_123(a)hotmail.com
> CC: berrange(a)redhat.com; libvirt-list(a)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@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@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