On 04/07/2023 15:49, Cédric Le Goater wrote:
Hello, Here are changes improving multisocket support of the XIVE models (POWER9 only). When a source has an END target on another chip, the XIVE IC will use an MMIO store to forward the notification to the remote chip. The long term plan is to get rid of pnv_xive_get_remote() whic is a modeling shortcut. I have had them for while, they compile, they seem to still work but this is not for merge yet. If someone could take over, that would be nice. The best way to test is to start a 2 sockets * 1 cpu system with devices attached to the PCI buses of chip 0 and to offline CPU 0. All sources should be configured to be served by CPU 1 on socket 1 and trigger notifications on chip 0 should be forwarded to chip 1. Last patch adds support for degenerative interrupts. This is used by the lowest level FW of POWER systems. Difficult to test.
Thanks for the series! My crystal ball tells me the PC MMIO patch will come handy soon (to be adapted for P10 and groups). And the remote routing looks pretty interesting too.
The last patch (LSI) may rot a bit longer though :) Fred
Thanks, C. Cédric Le Goater (4): ppc/xive: introduce a new XiveRouter end_notify() handler ppc/pnv: handle END triggers between chips with MMIOs ppc/pnv: add support for the PC MMIOs ppc/pnv: Add support for degenerative interrupts (POWER LSI) hw/intc/pnv_xive_regs.h | 1 + include/hw/ppc/pnv_xive.h | 15 +++ include/hw/ppc/xive.h | 3 + hw/intc/pnv_xive.c | 262 +++++++++++++++++++++++++++++++------- hw/intc/xive.c | 50 ++++++-- 5 files changed, 278 insertions(+), 53 deletions(-)