[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 5/5] spapr: Work around spurious warnings from vfio INTx init
From: |
Cédric Le Goater |
Subject: |
Re: [PATCH 5/5] spapr: Work around spurious warnings from vfio INTx initialization |
Date: |
Thu, 21 Nov 2019 17:35:03 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1 |
On 21/11/2019 01:56, David Gibson wrote:
> Traditional PCI INTx for vfio devices can only perform well if using
> an in-kernel irqchip. Therefore, vfio_intx_update() issues a warning
> if an in kernel irqchip is not available.
>
> We usually do have an in-kernel irqchip available for pseries machines
> on POWER hosts. However, because the platform allows feature
> negotiation of what interrupt controller model to use, we don't
> currently initialize it until machine reset. vfio_intx_update() is
> called (first) from vfio_realize() before that, so it can issue a
> spurious warning, even if we will have an in kernel irqchip by the
> time we need it.
>
> To workaround this, make a call to spapr_irq_update_active_intc() from
> spapr_irq_init() which is called at machine realize time, before the
> vfio realize. This call will be pretty much obsoleted by the later
> call at reset time, but it serves to suppress the spurious warning
> from VFIO.
>
> Cc: Alex Williamson <address@hidden>
> Cc: Alexey Kardashevskiy <address@hidden>
>
> Signed-off-by: David Gibson <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
> ---
> hw/ppc/spapr_irq.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c
> index 1d27034962..d6bb7fd2d6 100644
> --- a/hw/ppc/spapr_irq.c
> +++ b/hw/ppc/spapr_irq.c
> @@ -373,6 +373,14 @@ void spapr_irq_init(SpaprMachineState *spapr, Error
> **errp)
>
> spapr->qirqs = qemu_allocate_irqs(spapr_set_irq, spapr,
> smc->nr_xirqs + SPAPR_XIRQ_BASE);
> +
> + /*
> + * Mostly we don't actually need this until reset, except that not
> + * having this set up can cause VFIO devices to issue a
> + * false-positive warning during realize(), because they don't yet
> + * have an in-kernel irq chip.
> + */
> + spapr_irq_update_active_intc(spapr);
> }
>
> int spapr_irq_claim(SpaprMachineState *spapr, int irq, bool lsi, Error
> **errp)
> @@ -528,7 +536,8 @@ void spapr_irq_update_active_intc(SpaprMachineState
> *spapr)
> * this.
> */
> new_intc = SPAPR_INTC(spapr->xive);
> - } else if (spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) {
> + } else if (spapr->ov5_cas
> + && spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) {
> new_intc = SPAPR_INTC(spapr->xive);
> } else {
> new_intc = SPAPR_INTC(spapr->ics);
>
- [PATCH 0/5] vfio/spapr: Handle changes of master irq chip for VFIO devices, David Gibson, 2019/11/20
- [PATCH 3/5] vfio/pci: Respond to KVM irqchip change notifier, David Gibson, 2019/11/20
- [PATCH 5/5] spapr: Work around spurious warnings from vfio INTx initialization, David Gibson, 2019/11/20
- Re: [PATCH 5/5] spapr: Work around spurious warnings from vfio INTx initialization,
Cédric Le Goater <=
- [PATCH 1/5] kvm: Introduce KVM irqchip change notifier, David Gibson, 2019/11/20
- [PATCH 4/5] spapr: Handle irq backend changes with VFIO PCI devices, David Gibson, 2019/11/20
- [PATCH 2/5] vfio/pci: Split vfio_intx_update(), David Gibson, 2019/11/20
- Re: [PATCH 0/5] vfio/spapr: Handle changes of master irq chip for VFIO devices, Alex Williamson, 2019/11/21
- Re: [PATCH 0/5] vfio/spapr: Handle changes of master irq chip for VFIO devices, Greg Kurz, 2019/11/22