[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 0/6] ppc: reset the interrupt presenter from the CPU reset han
From: |
Cédric Le Goater |
Subject: |
[PATCH v4 0/6] ppc: reset the interrupt presenter from the CPU reset handler |
Date: |
Tue, 22 Oct 2019 15:42:48 +0200 |
Hello,
On the sPAPR machine and PowerNV machine, the interrupt presenters are
created by a machine handler at the core level and are reseted
independently. This is not consistent and it raises issues when it
comes to handle hot-plugged CPUs. In that case, the presenters are not
reseted. This is less of an issue in XICS, although a zero MFFR could
be a concern, but in XIVE, the OS CAM line is not set and this breaks
the presenting algorithm. The current code has workarounds which need
a global cleanup.
Extend the sPAPR IRQ backend and the PowerNV Chip class with a new
cpu_intc_reset() handler called by the CPU reset handler and remove
the XiveTCTX reset handler which is now redundant.
Set the OS CAM line when the interrupt presenter of the sPAPR core is
reseted. This will also cover the case of hot-plugged CPUs.
Thanks,
C.
Changes in v4:
- Introduce a PnvCore reset handler
- Add PnvChip pointer to PnvCore
Changes in v3:
- Introduced a DeviceClass::reset for the CPU (Greg)
- add support for PowerNV
Changes in v2:
- removed property
- simplified reset handlers
Cédric Le Goater (5):
ppc/pnv: Introduce a PnvCore reset handler
ppc/pnv: Add a PnvChip pointer to PnvCore
ppc: Reset the interrupt presenter from the CPU reset handler
ppc/pnv: Fix naming of routines realizing the CPUs
spapr/xive: Set the OS CAM line at reset
Greg Kurz (1):
spapr_cpu_core: Implement DeviceClass::reset
include/hw/ppc/pnv.h | 1 +
include/hw/ppc/pnv_core.h | 3 +++
include/hw/ppc/spapr_irq.h | 2 ++
include/hw/ppc/spapr_xive.h | 1 -
include/hw/ppc/xics.h | 1 +
include/hw/ppc/xive.h | 1 +
hw/intc/spapr_xive.c | 53 +++++++++++++++++--------------------
hw/intc/xics.c | 8 ++----
hw/intc/xics_spapr.c | 7 +++++
hw/intc/xive.c | 12 +--------
hw/ppc/pnv.c | 18 +++++++++++++
hw/ppc/pnv_core.c | 32 ++++++++++++++++------
hw/ppc/spapr_cpu_core.c | 42 ++++++++++++++++++++++-------
hw/ppc/spapr_irq.c | 14 ++++++++++
14 files changed, 130 insertions(+), 65 deletions(-)
--
2.21.0
- [PATCH v4 0/6] ppc: reset the interrupt presenter from the CPU reset handler,
Cédric Le Goater <=
- [PATCH v4 1/6] spapr_cpu_core: Implement DeviceClass::reset, Cédric Le Goater, 2019/10/22
- [PATCH v4 2/6] ppc/pnv: Introduce a PnvCore reset handler, Cédric Le Goater, 2019/10/22
- [PATCH v4 3/6] ppc/pnv: Add a PnvChip pointer to PnvCore, Cédric Le Goater, 2019/10/22
- [PATCH v4 4/6] ppc: Reset the interrupt presenter from the CPU reset handler, Cédric Le Goater, 2019/10/22
- [PATCH v4 5/6] ppc/pnv: Fix naming of routines realizing the CPUs, Cédric Le Goater, 2019/10/22
- [PATCH v4 6/6] spapr/xive: Set the OS CAM line at reset, Cédric Le Goater, 2019/10/22
- Re: [PATCH v4 0/6] ppc: reset the interrupt presenter from the CPU reset handler, Cédric Le Goater, 2019/10/22