> 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 ca! me 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 capabilitie! s, and thus
> > > libvirt will never even look for! a KVM b inary
> > >
> >
> > 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'/>
        &nbs! p;   <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>
&n! bsp;     </cells>
  &nb! sp; < /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'/>
    &l! t;/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.