[PATCH v3 0/8] guest exploitation of the XIVE interrupt controller
Cédric Le Goater
clg at kaod.org
Thu Aug 31 05:46:09 AEST 2017
Hello,
On a POWER9 sPAPR machine, the Client Architecture Support (CAS)
negotiation process determines whether the guest operates with an
interrupt controller using the legacy model, as found on POWER8, or in
XIVE exploitation mode, the newer POWER9 interrupt model. This
patchset is the latest proposal to add XIVE support in the sPAPR
machine.
Tested with a QEMU XIVE model for sPAPR machine and with the Power
hypervisor.
Code is here:
https://github.com/legoater/linux/commits/xive
https://github.com/legoater/qemu/commits/xive
Thanks,
C.
Changes since v2 :
- changed H_INT_SYNC hcall to reflect new api from the specs
- added some Reviewed-by's
Changes since v1 :
- introduced a common subroutine xive_queue_page_alloc()
- introduced a xive_teardown_cpu() routine
- removed P9 doorbell support when xive is enabled.
- fixed xive_esb_read() naming
- fixed XIVE mode parsing in CAS (just got the final specs)
Changes since RFC :
- renamed backend to 'spapr'
- fixed hotplug support
- fixed kexec support
- fixed src_chip value (XIVE_INVALID_CHIP_ID)
- added doorbell support
- added some debug logs
- added H_INT_ESB hcall
- took into account '/ibm,plat-res-int-priorities'
- fixed WARNING in xive_find_target_in_mask()
Cédric Le Goater (8):
powerpc/xive: introduce a common routine xive_queue_page_alloc()
powerpc/xive: guest exploitation of the XIVE interrupt controller
powerpc/xive: rename xive_poke_esb() in xive_esb_read()
powerpc/xive: introduce xive_esb_write()
powerpc/xive: add the HW IRQ number under xive_irq_data
powerpc/xive: introduce H_INT_ESB hcall
powerpc/xive: add XIVE Exploitation Mode to CAS
powerpc/xive: improve debugging macros
arch/powerpc/include/asm/hvcall.h | 13 +-
arch/powerpc/include/asm/prom.h | 5 +-
arch/powerpc/include/asm/xive.h | 5 +
arch/powerpc/kernel/prom_init.c | 34 +-
arch/powerpc/platforms/pseries/Kconfig | 1 +
arch/powerpc/platforms/pseries/hotplug-cpu.c | 11 +-
arch/powerpc/platforms/pseries/kexec.c | 6 +-
arch/powerpc/platforms/pseries/setup.c | 8 +-
arch/powerpc/platforms/pseries/smp.c | 27 +-
arch/powerpc/sysdev/xive/Kconfig | 5 +
arch/powerpc/sysdev/xive/Makefile | 1 +
arch/powerpc/sysdev/xive/common.c | 76 ++-
arch/powerpc/sysdev/xive/native.c | 18 +-
arch/powerpc/sysdev/xive/spapr.c | 662 +++++++++++++++++++++++++++
arch/powerpc/sysdev/xive/xive-internal.h | 7 +
15 files changed, 844 insertions(+), 35 deletions(-)
create mode 100644 arch/powerpc/sysdev/xive/spapr.c
--
2.13.5
More information about the Linuxppc-dev
mailing list