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

Reply via email to