[libvirt] [PATCH] cpu_ppc64: Error out when model tag missing in virsh cpu-compare xml

John Ferlan jferlan at redhat.com
Tue Sep 26 15:57:12 UTC 2017



On 09/18/2017 12:57 PM, Nitesh Konkar wrote:
> libvirtd throws unhandled signal 11 on ppc while running
> virsh cpu-compare with missing model tag in the xml. This
> patch errors out in such situation.


You could provide the example XML snippet ...  and as noted below what
the "expectations" are...

> 
> Signed-off-by: Nitesh Konkar <nitkon12 at linux.vnet.ibm.com>
> ---
>  src/cpu/cpu_ppc64.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 

I assume since you didn't provide a stack trace, the caller is either
has "cpu->type == VIR_CPU_TYPE_GUEST && cpu->mode ==
VIR_CPU_MODE_CUSTOM" or "cpu->type != VIR_CPU_TYPE_GUEST", right? It's
not the host_model failure.

If so, then the commit message should indicate that "it's expected" that
for specific comparison types that the model was filled in

In the end - just want to make sure that the symptom being fixed isn't
masking a problem of insufficient checking on XML parse for specific types

> diff --git a/src/cpu/cpu_ppc64.c b/src/cpu/cpu_ppc64.c
> index b58e80a..c11ac9f 100644
> --- a/src/cpu/cpu_ppc64.c
> +++ b/src/cpu/cpu_ppc64.c
> @@ -247,6 +247,12 @@ ppc64ModelFromCPU(const virCPUDef *cpu,
>  {
>      struct ppc64_model *model;
>  
> +    if (!cpu->model) {
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
> +                       _("no guest CPU model specified"));

or "CPU model not specified"...

The "concern" being that this code is used for multiple purposes
(host_model, cpu->type == GUEST && cpu->model == CUSTOM, and cpu->type
!= GUEST) - so using "guest" could be a misnomer.

John

> +        return NULL;
> +    }
> +
>      if (!(model = ppc64ModelFind(map, cpu->model))) {
>          virReportError(VIR_ERR_INTERNAL_ERROR,
>                         _("Unknown CPU model %s"), cpu->model);
> 




More information about the libvir-list mailing list