<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
<BR> <BR>
> Date: Tue, 24 Nov 2009 10:33:48 +0000<BR>> From: berrange@redhat.com<BR>> To: x_k_123@hotmail.com<BR>> CC: crobinso@redhat.com; libvirt-list@redhat.com; virt-tools-list@redhat.com<BR>> Subject: Re: [virt-tools-list] Questions about virt-manager running on Arch of Itanium 64<BR>> <BR>> On Tue, Nov 24, 2009 at 10:05:08AM +0800, Dustin Xiong wrote:<BR>> > > Date: Mon, 23 Nov 2009 16:16:05 +0000<BR>> > > From: berrange@redhat.com<BR>> > > To: crobinso@redhat.com<BR>> > > CC: x_k_123@hotmail.com; libvirt-list@redhat.com; virt-tools-list@redhat.com<BR>> > > Subject: Re: [virt-tools-list] Questions about virt-manager running on Arch of Itanium 64<BR>> > > <BR>> > > On Mon, Nov 23, 2009 at 11:09:28AM -0500, Cole Robinson wrote:<BR>> > > > On 11/23/2009 01:43 AM, Dustin Xiong wrote:<BR>> > > > > <BR>> > > > > yes, my libvirt rpm and other related rpms all ca!
me from the RHEL 5.4<BR>> > > > > iso. And they all build for itanium 64<BR>> > > > > # rpm -qa | grep libvirt<BR>> > > > > libvirt-python-0.6.3-20.el5<BR>> > > > > libvirt-devel-0.6.3-20.el5<BR>> > > > > libvirt-0.6.3-20.el5<BR>> > > > > <BR>> > > > > And i try to make a link, it still doesn't work.<BR>> > > > > ln -s /usr/local/bin/qemu-system-ia64 /usr/libexec/qemu-system-ia64<BR>> > > > > <BR>> > > > <BR>> > > > Actually I think that destination needs to be /usr/libexec/qemu-kvm, not<BR>> > > > qemu-system-ia64. And looking at the rhel5 code, this can also be<BR>> > > > /usr/bin/qemu-kvm<BR>> > > <BR>> > > <BR>> > > That's not going to help. 'ia64' is not listed as a valid architecture<BR>> > > in qemu_conf.c, so it'll never be pulled into the capabilitie!
s, and thus<BR>> > > libvirt will never even look for!
a KVM b
inary<BR>> > > <BR>> > <BR>> > The libvirt and virt-manager rpm all come from the iso of <BR>> > Red Hat Enterprise Linux 5.4 Server (Itanium)Does the redhat have the <BR>> > plans to implement the architecture ia64 in libvirt ?<BR>> <BR>> libvirt as an open source project is happy to support any architecture.<BR>> <BR>> In RHEL, Red Hat only support a sub-set of the functionality / platforms.<BR>> RHEL-5 Xen supports i386, x86_64 and ia64. RHEL-5 KVM only supports x86_64<BR>> <BR>> > > Someone needs to update qemu_conf.c to handle ia64 correctly.<BR>> > > <BR>> > <BR>> > If i want to update qemu_conf.c to handle ia64 , which files or <BR>> > datastruct needs to update ? Only the qemu_conf.c ?<BR>> <BR>> If you search for the table <BR>> <BR>> static const struct qemu_arch_info const arch_info_hvm[] = {<BR>> <BR>> It is probably (hopefully?) sufficient to just add <BR>>!
; <BR>> { "ia64", 64, NULL, "/usr/bin/qemu-system-ia64", NULL, NULL, 0 },<BR>> <BR>> The key test is that when you later run<BR>> <BR>> virsh capabilities<BR>> <BR>> it should show the /usr/bin/qemu-system-ia64 binary, and also report that<BR>> KVM is present. <BR>> <BR>> I have a feeling you might also need to add code to the src/nodeinfo.c<BR>> file, since I think that /proc/cpuinfo on ia64 is in a different format<BR>> to that on x86_64. ie, change the linuxNodeInfoCPUPopulate() method so<BR>> it can also parse the ia64 format. This is used by the command<BR>> <BR>> virsh nodeinfo<BR>> <BR>> <BR>> So once 'capabilities' and 'nodeinfo' are working on ia64, then it should<BR>> be possible to use virt-manager properly<BR>> <BR>I modify the src, and build it to rpm. The libvirt could work.<BR>
And as you said, i add ia64 info into the qemu_conf.c. The result as below:<BR>
<BR>
[root@kvm bin]# virsh capabilities<BR><capabilities><BR>
<host><BR> <cpu><BR> <arch>ia64</arch><BR> </cpu><BR> <topology><BR> <cells num='1'><BR> <cell id='0'><BR> <cpus num='16'><BR> <cpu id='0'/><BR> <cpu id='1'/><BR> <cpu id='2'/><BR> <cpu id='3'/><BR> <cpu id='4'/><BR> <cpu id='5'/><BR> &nbs!
p; <cpu id='6'/><BR> <cpu id='7'/><BR> <cpu id='8'/><BR> <cpu id='9'/><BR> <cpu id='10'/><BR> <cpu id='11'/><BR> <cpu id='12'/><BR> <cpu id='13'/><BR> <cpu id='14'/><BR> <cpu id='15'/><BR> </cpus><BR> </cell><BR>&n!
bsp; </cells><BR> &nb!
sp; <
/topology><BR> </host><BR>
<guest><BR> <os_type>hvm</os_type><BR> <arch name='ia64'><BR> <wordsize>64</wordsize><BR> <emulator>/usr/bin/qemu-system-ia64</emulator><BR> <machine>ia64</machine><BR> <machine>xenner</machine><BR> <domain type='qemu'><BR> </domain><BR> <domain type='kvm'><BR> <emulator>/usr/bin/kvm</emulator><BR> </domain><BR> </arch><BR> <features><BR> <acpi default='on' toggle='yes'/><BR> <apic default='on' toggle='no'/><BR> &l!
t;/features><BR> </guest><BR>
</capabilities><BR>
<BR>
[root@kvm bin]# virsh nodeinfo<BR>CPU model: ia64<BR>CPU(s): 16<BR>CPU frequency: 1330 MHz<BR>CPU socket(s): 16<BR>Core(s) per socket: 1<BR>Thread(s) per core: 1<BR>NUMA cell(s): 1<BR>Memory size: 8252480 kB<BR>
<BR>
But the virt-manager still can't work. When i create a new vm. <BR>
The error as below:<BR>
<BR>
Unable to complete install 'libvirt.libvirtError internal error Domain ad didn't show up<BR>
Traceback (most recent call last):<BR> File "/usr/share/virt-manager/virtManager/create.py", line 718, in do_install<BR> dom = guest.start_install(False, meter = meter)<BR> File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 660, in start_install<BR> return self._do_install(consolecb, meter, removeOld, wait)<BR> File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 758, in _do_install<BR> self.domain = self.conn.createLinux(install_xml, 0)<BR> File "/usr/lib/python2.4/site-packages/libvirt.py", line 974, in createLinux<BR> if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)<BR>libvirtError: internal error Domain ad didn't show up<BR><BR>
I don't know how to resolve this error.<BR>
Thank you for your advice.<BR>
<BR>
Merry Christmas !<BR>
<BR>
-dustin.<BR>
<BR> <br /><hr />Windows Live: Keep your friends up to date <a href='http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_1:092010' target='_new'>with what you do online.</a></body>
</html>