[libvirt] [PATCH] qemu: Fix specifying char devs for PPC

Hong-Hua.Yin at freescale.com Hong-Hua.Yin at freescale.com
Wed May 21 00:53:49 UTC 2014


Hi Cole,

The fact is that we need maintain several patches to make libvirt to
work with qemu-system-ppc on ppce500 platform.
1) enable QEMU_CAPS_PCI_MULTIBUS
2) use legacy -serial option

The first one is not needed any more since libvirt v1.2.4.
This patch is trying to fix the second one.

The test case qemuxml2argv-ppc-dtb.args was used to demonstrate -dtb 
option. Anyway it also used -serial option otherwise the domain could
not work on ppce500 platform.

I mentioned the test case qemuxml2argv-pseries-basic.args just for the 
usage of '-chardev spapr-vty' on pseries. We don't want to do any change
to the use cases on pseries.

Best Regards,
Olivia


> -----Original Message-----
> From: Cole Robinson [mailto:crobinso at redhat.com]
> Sent: Tuesday, May 20, 2014 8:51 PM
> To: Yin Olivia-R63875; libvir-list at redhat.com; zhlcindy at linux.vnet.ibm.com
> Subject: Re: [PATCH] qemu: Fix specifying char devs for PPC
> 
> On 05/20/2014 01:25 AM, Hong-Hua.Yin at freescale.com wrote:
> > Hi Cole,
> >
> > Thanks for the comments.
> > Exactly there were already test cases for both pseries and ppce500
> machines.
> > For example,
> > 1) qemuxml2argv-pseries-basic.args: 	'-chardev spapr-vty' for pseries.
> > 2) qemuxml2argv-ppc-dtb.args: 	 	'-serial pty' for ppce500.
> >
> 
> If there's already test cases, then what does the patch actually change?
> What I'm suggesting is to add a test case that would fail before this patch,
> and succeed afterwards, to demonstrate what is actually changing.
> 
> - Cole
> 
> 
> >
> >
> >> -----Original Message-----
> >> From: Cole Robinson [mailto:crobinso at redhat.com]
> >> Sent: Monday, May 19, 2014 9:40 PM
> >> To: Yin Olivia-R63875; libvir-list at redhat.com;
> >> zhlcindy at linux.vnet.ibm.com
> >> Subject: Re: [PATCH] qemu: Fix specifying char devs for PPC
> >>
> >> On 05/19/2014 03:41 AM, Hong-Hua.Yin at freescale.com wrote:
> >>> Hi Cole,
> >>>
> >>> This is a patch similar with your previous patch to fix for ARM.
> >>> Do you have any comments on it?
> >>>
> >>> Cindy,
> >>> Since you are the main contributor to QEMU driver on PPC, I'll also
> >> appreciate your comments.
> >>>
> >>> Best Regards,
> >>> Olivia
> >>>
> >>
> >> Patch looks fine, but it should add a qemuxml2argv test case to
> >> validate that it actually works. My original patch added test cases
> >> later in the patch series, see
> >> 54a77c6df3c483864463f602c4c6f435d50bd79e
> >>
> >> - Cole
> >>
> >>>> -----Original Message-----
> >>>> From: Yin Olivia-R63875
> >>>> Sent: Friday, May 16, 2014 8:38 AM
> >>>> To: Yin Olivia-R63875; libvir-list at redhat.com
> >>>> Subject: RE: [PATCH] qemu: Fix specifying char devs for PPC
> >>>>
> >>>> Ping.
> >>>>
> >>>> This is a patch similar with ARM platforms.
> >>>> http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=3a2beaee1d50dc
> >>>> 96
> >>>> 8171c5
> >>>> 84ec2edcfdcb8fadde
> >>>>
> >>>> Right now on ppce500, chardev is not supported for the serial
> >>>> console. So it uses the the legacy -serial option.
> >>>>
> >>>> Best Regards,
> >>>> Olivia
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Olivia Yin [mailto:Hong-Hua.Yin at freescale.com]
> >>>>> Sent: Wednesday, May 14, 2014 6:47 PM
> >>>>> To: libvir-list at redhat.com
> >>>>> Cc: Yin Olivia-R63875
> >>>>> Subject: [PATCH] qemu: Fix specifying char devs for PPC
> >>>>>
> >>>>> QEMU ppce500 board uses the old style -serial options.
> >>>>>
> >>>>> Other PPC boards don't give any way to explicitly wire in a
> >>>>> -chardev except pseries which uses -device spapr-vty with -chardev.
> >>>>>
> >>>>> ---
> >>>>>  src/qemu/qemu_capabilities.c | 10 +++++++---
> >>>>>  1 file changed, 7 insertions(+), 3 deletions(-)
> >>>>>
> >>>>> diff --git a/src/qemu/qemu_capabilities.c
> >>>>> b/src/qemu/qemu_capabilities.c index b491f58..fe5dd19 100644
> >>>>> --- a/src/qemu/qemu_capabilities.c
> >>>>> +++ b/src/qemu/qemu_capabilities.c
> >>>>> @@ -3460,13 +3460,17 @@ virQEMUCapsSupportsChardev(virDomainDefPtr
> def,
> >>>>>          !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE))
> >>>>>          return false;
> >>>>>
> >>>>> -    if ((def->os.arch != VIR_ARCH_ARMV7L) && (def->os.arch !=
> >>>>> VIR_ARCH_AARCH64))
> >>>>> +    if ((def->os.arch != VIR_ARCH_ARMV7L) && (def->os.arch !=
> >>>>> VIR_ARCH_AARCH64)
> >>>>> +	 && (def->os.arch != VIR_ARCH_PPC) && (def->os.arch !=
> >>>>> +VIR_ARCH_PPC64))
> >>>>>          return true;
> >>>>>
> >>>>>      /* This may not be true for all ARM machine types, but at least
> >>>>>       * the only supported non-virtio serial devices of vexpress
> >>>>> and versatile
> >>>>> -     * don't have the -chardev property wired up. */
> >>>>> +     * don't have the -chardev property wired up.
> >>>>> +     * For PPC machines, only pserial need -device spapr-vty with
> >>>>> + -chardev */
> >>>>>      return (chr->info.type ==
> >>>>> VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO
> >>>>> ||
> >>>>>              (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE
> &&
> >>>>> -             chr->targetType ==
> >>>>> VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO));
> >>>>> +             chr->targetType ==
> >>>>> + VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO)
> >>>>> ||
> >>>>> +            (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL &&
> >>>>> +             chr->info.type ==
> >>>>> + VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO));
> >>>>>  }
> >>>>> --
> >>>>> 1.8.5
> >>>
> >





More information about the libvir-list mailing list