Date: Tue, 24 Nov 2009 10:33:48 +0000
From: berrange(a)redhat.com
To: x_k_123(a)hotmail.com
CC: crobinso(a)redhat.com; libvirt-list(a)redhat.com; virt-tools-list(a)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(a)redhat.com
> > To: crobinso(a)redhat.com
> > CC: x_k_123(a)hotmail.com; libvirt-list(a)redhat.com; virt-tools-list(a)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/...