On Wed, Feb 13, 2019 at 10:07:54PM +0100, Cédric Le Goater wrote: > Hello, > > When using the 'dual' interrupt mode, the source numbers of both sPAPR > IRQ backends are aligned to share a common IRQ number space and to use > a similar mapping of the machine qemu_irq array which is indexed by > the source number. > > The XICS IRQ number range initially being [ 0x1000 - 0x2000 ], this > requires to change the XICS ICSState offset to 0 and to provision for > an extra 4K of source numbers and qemu_irqs which will never be used > by the machine when running under the XICS interrupt mode. This is not > an optimal solution. > > Moreover, the KVM support for the 'dual' interrupt mode will require > some adjustments. The XICS KVM device considers that the IRQ numbers > start at XICS_IRQ_BASE (0x1000) and we have no way to inform KVM of > the offset change. We will need to ignore the lower 4K numbers when > capturing or restoring the source states from the XICS KVM device. > > The first patch allocates an IRQ number space of the expected size for > the XICS sPAPR IRQ backend. The overall IRQ number space size and the > qemu_irq array size is still the one required by the 'dual' sPAPR IRQ > backend, that is, in sync with XIVE. The second patch removes the > ICSState offset adjustment. This last change adds some benefits as it > simplifies greatly the qirq() method of the 'dual' sPAPR IRQ > backend.
Ah, much nicer. Applied to ppc-for-4.0, thanks.
>
> C.
>
> Cédric Le Goater (2):
> spapr/irq: add an 'nr_irq' parameter to initialize the backend.
> spapr/irq: remove the XICS offset adjustment
>
> include/hw/ppc/spapr_irq.h | 2 +-
> hw/ppc/spapr_irq.c | 45 ++++++++++----------------------------
> 2 files changed, 12 insertions(+), 35 deletions(-)
>
--
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
signature.asc
Description: PGP signature
