
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. 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.
What is the output in /var/log/libvirt/qemu/$vmname.log ? - Cole