On Fri May 16, 2025 at 1:36 AM AEST, Cédric Le Goater wrote: > On 5/12/25 05:10, Nicholas Piggin wrote: >> These changes gets the powernv xive2 to the point it is able to run >> PowerVM with good stability. >> >> * Various bug fixes around lost interrupts particularly. >> * Major group interrupt work, in particular around redistributing >> interrupts. Upstream group support is not in a complete or usable >> state as it is. >> * Significant context push/pull improvements, particularly pool and >> phys context handling was quite incomplete beyond trivial OPAL >> case that pushes at boot. >> * Improved tracing and checking for unimp and guest error situations. >> * Various other missing feature support. >> >> The ordering and grouping of patches in the series is not perfect, >> because it had been an ongoing development, and PowerVM only started >> to become stable toward the end. I did try to rearrange and improve >> things, but some were not worth rebasing cost (e.g., some of the >> pool/phys pull redistribution patches should have ideally been squashed >> or moved together), so please bear that in mind. Suggestions for >> further rearranging the series are fine, but I might just find they are >> too much effort to be worthwhile. >> >> Thanks, >> Nick >> >> Glenn Miles (12): >> ppc/xive2: Fix calculation of END queue sizes >> ppc/xive2: Use fair irq target search algorithm >> ppc/xive2: Fix irq preempted by lower priority group irq >> ppc/xive2: Fix treatment of PIPR in CPPR update >> pnv/xive2: Support ESB Escalation >> ppc/xive2: add interrupt priority configuration flags >> ppc/xive2: Support redistribution of group interrupts >> ppc/xive: Add more interrupt notification tracing >> ppc/xive2: Improve pool regs variable name >> ppc/xive2: Implement "Ack OS IRQ to even report line" TIMA op >> ppc/xive2: Redistribute group interrupt precluded by CPPR update >> ppc/xive2: redistribute irqs for pool and phys ctx pull >> >> Michael Kowal (4): >> ppc/xive2: Remote VSDs need to match on forwarding address >> ppc/xive2: Reset Generation Flipped bit on END Cache Watch >> pnv/xive2: Print value in invalid register write logging >> pnv/xive2: Permit valid writes to VC/PC Flush Control registers >> >> Nicholas Piggin (34): >> ppc/xive: Fix xive trace event output >> ppc/xive: Report access size in XIVE TM operation error logs >> ppc/xive2: fix context push calculation of IPB priority >> ppc/xive: Fix PHYS NSR ring matching >> ppc/xive2: Do not present group interrupt on OS-push if precluded by >> CPPR >> ppc/xive2: Set CPPR delivery should account for group priority >> ppc/xive: tctx_notify should clear the precluded interrupt >> ppc/xive: Explicitly zero NSR after accepting >> ppc/xive: Move NSR decoding into helper functions >> ppc/xive: Fix pulling pool and phys contexts >> pnv/xive2: VC_ENDC_WATCH_SPEC regs should read back WATCH_FULL >> ppc/xive: Change presenter .match_nvt to match not present >> ppc/xive2: Redistribute group interrupt preempted by higher priority >> interrupt >> ppc/xive: Add xive_tctx_pipr_present() to present new interrupt >> ppc/xive: Fix high prio group interrupt being preempted by low prio VP >> ppc/xive: Split xive recompute from IPB function >> ppc/xive: tctx signaling registers rework >> ppc/xive: tctx_accept only lower irq line if an interrupt was >> presented >> ppc/xive: Add xive_tctx_pipr_set() helper function >> ppc/xive2: split tctx presentation processing from set CPPR >> ppc/xive2: Consolidate presentation processing in context push >> ppc/xive2: Avoid needless interrupt re-check on CPPR set >> ppc/xive: Assert group interrupts were redistributed >> ppc/xive2: implement NVP context save restore for POOL ring >> ppc/xive2: Prevent pulling of pool context losing phys interrupt >> ppc/xive: Redistribute phys after pulling of pool context >> ppc/xive: Check TIMA operations validity >> ppc/xive2: Implement pool context push TIMA op >> ppc/xive2: redistribute group interrupts on context push >> ppc/xive2: Implement set_os_pending TIMA op >> ppc/xive2: Implement POOL LGS push TIMA op >> ppc/xive2: Implement PHYS ring VP push TIMA op >> ppc/xive: Split need_resend into restore_nvp >> ppc/xive2: Enable lower level contexts on VP push >> >> hw/intc/pnv_xive.c | 16 +- >> hw/intc/pnv_xive2.c | 139 +++++-- >> hw/intc/pnv_xive2_regs.h | 1 + >> hw/intc/spapr_xive.c | 18 +- >> hw/intc/trace-events | 12 +- >> hw/intc/xive.c | 555 ++++++++++++++++++---------- >> hw/intc/xive2.c | 717 +++++++++++++++++++++++++++--------- >> hw/ppc/pnv.c | 48 +-- >> hw/ppc/spapr.c | 21 +- >> include/hw/ppc/xive.h | 66 +++- >> include/hw/ppc/xive2.h | 22 +- >> include/hw/ppc/xive2_regs.h | 22 +- >> 12 files changed, 1145 insertions(+), 492 deletions(-) >> > > I am impressed :) and glad that you are still taking care of XIVE. > > I suggest adding new names under the XIVE entry in the MAINTAINERS file.
Yeah it's good to see. They are building a lot more cool stuff with powernv at the moment, hopefully almost all should get upstreamed eventually. I will try to convince them to add MAINTAINER entries :) Thanks, Nick