> Date: Wed, 6 Jan 2010 10:09:55 -0500
> From: crobinso@redhat.com
> To: x_k_123@hotmail.com
> CC: berrange@redhat.com; libvirt-list@redhat.com
> Subject: Re: [libvirt] [virt-tools-list] Questions about virt-manager running on Arch of Itanium 64
>
> On 01/04/2010 08:27 PM, Dustin Xiong wrote:
> >
> >
> >
> >
> >> Date: Mon, 4 Jan 2010 11:46:06 -0500
> >> From: crobinso@redhat.com
> >> To: x_k_123@hotmail.com
> >> CC: berrange@redhat.com; libvirt-list@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. i! e, 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>
&! gt; >>> <os_type>hvm</os_type>
> &g! t;>&g t; <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/vir! tinst/Guest.py", line 660, in start_install
> >>&g! t; retur n 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
 
I sloved the problem. I modify the libvirt /src/qemu_conf.c. Add the arch ia64 into the
static const struct qemu_arch_info const arch_info_hvm[] = {}
as berrange said. So the libvirt passing -M ia64.
But the kvm binary only experts '-M itanium'.
So i replaced the ia64 by itanium in the file /src/qemu_conf.c.
Then the virt-manager finally could work on the arch of Itanium.
 
Thank you for your help.
Thank you, everyone here.

-Dustin


Keep your friends updated¡ª even when you¡¯re not signed in.