qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] spapr: Disallow unsupported kernel-irqchip sett


From: David Gibson
Subject: Re: [Qemu-devel] [PATCH] spapr: Disallow unsupported kernel-irqchip settings
Date: Mon, 11 Feb 2019 10:23:55 +1100
User-agent: Mutt/1.10.1 (2018-07-13)

On Fri, Feb 08, 2019 at 07:17:47PM +0100, Greg Kurz wrote:
> Split mode doesn't make sense on pseries, neither with XICS nor XIVE. But
> passing kernel-irqchip=split silently behaves like kernel-irqchip=on.
> Other architectures that support kernel-irqchip do terminate QEMU when
> split mode is requested but not available though. Do the same with pseries
> for consistency.
> 
> Similarly, passing kernel-irqchip=on,accel=tcg starts the machine with the
> emulated interrupt controller, ie, behaves like kernel-irqchip=off. However,
> when passing  kernel-irqchip=on,accel=kvm, if we can't initialize the KVM
> XICS for some reason, ie, xics_kvm_init() fails, then QEMU is terminated.
> This is inconsistent. Terminate QEMU all the same when requesting the
> in-kernel interrupt controller without KVM.
> 
> Signed-off-by: Greg Kurz <address@hidden>
> ---
> 
> The odds for someone to have an existing pseries setup with split mode are
> very low since this is really an x86 thingy. And I guess we don't really
> care to break the silly kernel-irqchip=on,accel=tcg case. But if we really
> need to stay bug compatible, the errors can be turned into warnings.

Applied, thanks.

> ---
>  hw/ppc/spapr_irq.c |   13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c
> index 2d7a7c163876..80b0083b8e38 100644
> --- a/hw/ppc/spapr_irq.c
> +++ b/hw/ppc/spapr_irq.c
> @@ -600,6 +600,19 @@ sPAPRIrq spapr_irq_dual = {
>   */
>  void spapr_irq_init(sPAPRMachineState *spapr, Error **errp)
>  {
> +    MachineState *machine = MACHINE(spapr);
> +
> +    if (machine_kernel_irqchip_split(machine)) {
> +        error_setg(errp, "kernel_irqchip split mode not supported on 
> pseries");
> +        return;
> +    }
> +
> +    if (!kvm_enabled() && machine_kernel_irqchip_required(machine)) {
> +        error_setg(errp,
> +                   "kernel_irqchip requested but only available with KVM");
> +        return;
> +    }
> +
>      /* Initialize the MSI IRQ allocator. */
>      if (!SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) {
>          spapr_irq_msi_init(spapr, spapr->irq->nr_msis);
> 

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]