I also hope that QEMU capabilities depend on the binary by QMP.
But the flags in virQEMUCapsObjectTypes are all set in virQEMUCapsInitQMP.
virQEMUCapsInitQMP -> virQEMUCapsProbeQMPObjects ->
virQEMUCapsProcessStringFlags(qemuCaps,
ARRAY_CARDINALITY(virQEMUCapsObjectTypes),
virQEMUCapsObjectTypes,
nvalues, values);
So, it is not reasonable to set all of these flags for every platform.
This is a problem for other non-x86 platforms.
I saw that capabilities changes a lot since I used 0.10.2 before.
Could you help look into the code to see this problem?
Thanks a lot. :)
-Li
On Wed, Feb 27, 2013 at 9:36 PM, Jiri Denemark <jdenemar(a)redhat.com> wrote:
On Wed, Feb 27, 2013 at 19:52:22 +0800, Li Zhang wrote:
> From: Li Zhang <zhlcindy(a)linux.vnet.ibm.com>
>
> Currently, PIIX3/PIIX4_USB capabilities are enabled for other platforms.
> Actually, it is only supported for X86.
>
> So this patch is to clear the capabilities for non-X86 platforms.
>
...
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 40022c1..ef5c69a 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -1307,8 +1307,11 @@ struct virQEMUCapsStringFlags
virQEMUCapsObjectTypes[] = {
> { "hda-micro", QEMU_CAPS_HDA_MICRO },
> { "ccid-card-emulated", QEMU_CAPS_CCID_EMULATED },
> { "ccid-card-passthru", QEMU_CAPS_CCID_PASSTHRU },
> +#if defined (__x86_64__) || \
> + defined (__i386__)
> { "piix3-usb-uhci", QEMU_CAPS_PIIX3_USB_UHCI },
> { "piix4-usb-uhci", QEMU_CAPS_PIIX4_USB_UHCI },
> +#endif
> { "usb-ehci", QEMU_CAPS_USB_EHCI },
> { "ich9-usb-ehci1", QEMU_CAPS_ICH9_USB_EHCI1 },
> { "vt82c686b-usb-uhci", QEMU_CAPS_VT82C686B_USB_UHCI },
NACK. QEMU capabilities depend on the binary we are going to use
(emulator tag in domain XML), they don't depend on host architecture.
Jirka
--
Best Regards
-Li