
Date: Tue, 24 Nov 2009 10:33:48 +0000 From: berrange@redhat.com To: x_k_123@hotmail.com CC: crobinso@redhat.com; libvirt-list@redhat.com; virt-tools-list@redhat.com Subject: Re: [virt-tools-list] Questions about virt-manager running on Arch of Itanium 64
On Tue, Nov 24, 2009 at 10:05:08AM +0800, Dustin Xiong wrote:
Date: Mon, 23 Nov 2009 16:16:05 +0000 From: berrange@redhat.com To: crobinso@redhat.com CC: x_k_123@hotmail.com; libvirt-list@redhat.com; virt-tools-list@redhat.com Subject: Re: [virt-tools-list] Questions about virt-manager running on Arch of Itanium 64
On Mon, Nov 23, 2009 at 11:09:28AM -0500, Cole Robinson wrote:
On 11/23/2009 01:43 AM, Dustin Xiong wrote:
yes, my libvirt rpm and other related rpms all came from the RHEL 5.4 iso. And they all build for itanium 64 # rpm -qa | grep libvirt libvirt-python-0.6.3-20.el5 libvirt-devel-0.6.3-20.el5 libvirt-0.6.3-20.el5
And i try to make a link, it still doesn't work. ln -s /usr/local/bin/qemu-system-ia64 /usr/libexec/qemu-system-ia64
Actually I think that destination needs to be /usr/libexec/qemu-kvm, not qemu-system-ia64. And looking at the rhel5 code, this can also be /usr/bin/qemu-kvm
That's not going to help. 'ia64' is not listed as a valid architecture in qemu_conf.c, so it'll never be pulled into the capabilities, and thus libvirt will never even look for a KVM binary
The libvirt and virt-manager rpm all come from the iso of Red Hat Enterprise Linux 5.4 Server (Itanium)Does the redhat have the plans to implement the architecture ia64 in libvirt ?
libvirt as an open source project is happy to support any architecture.
In RHEL, Red Hat only support a sub-set of the functionality / platforms. RHEL-5 Xen supports i386, x86_64 and ia64. RHEL-5 KVM only supports x86_64
Someone needs to update qemu_conf.c to handle ia64 correctly.
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. Merry Christmas ! -dustin. _________________________________________________________________ Windows Live: Keep your friends up to date with what you do online. http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/soc...