[PATCH v2 00/14] XIVE2 changes to support Group and Crowd operations

Michael Kowal posted 14 patches 3 months, 4 weeks ago
include/hw/ppc/xive.h              |  41 +-
include/hw/ppc/xive2.h             |  25 +-
include/hw/ppc/xive2_regs.h        |  30 +-
include/hw/ppc/xive_regs.h         |  25 +-
tests/qtest/pnv-xive2-common.h     |   1 +
hw/intc/pnv_xive.c                 |  10 +-
hw/intc/pnv_xive2.c                | 166 +++++--
hw/intc/spapr_xive.c               |   8 +-
hw/intc/xive.c                     | 200 +++++---
hw/intc/xive2.c                    | 750 +++++++++++++++++++++++++----
hw/ppc/pnv.c                       |  35 +-
hw/ppc/spapr.c                     |   7 +-
tests/qtest/pnv-xive2-flush-sync.c |   6 +-
tests/qtest/pnv-xive2-nvpg_bar.c   | 153 ++++++
tests/qtest/pnv-xive2-test.c       | 249 +++++++++-
hw/intc/trace-events               |   6 +-
tests/qtest/meson.build            |   3 +-
17 files changed, 1475 insertions(+), 240 deletions(-)
create mode 100644 tests/qtest/pnv-xive2-nvpg_bar.c
[PATCH v2 00/14] XIVE2 changes to support Group and Crowd operations
Posted by Michael Kowal 3 months, 4 weeks ago
XIVE2 has the concepts of a Group of interrupts and a Crowd of interrupts
(where a crowd is a group of Groups). These patch sets are associated with:
 - NVGC tables
 - Group/Crowd level notification
 - Incrementing backlog countets
 - Backlog processing
 - NVPG and NVC Bar MMIO operations
 - Group/Crowd testing
 - ESB Escalation
 - Pool interrupt testing

version 2:
 - Removed printfs from test models and replaced with g_test_message()
 - Updated XIVE copyrights to use: 
   SPDX-License-Identifier: GPL-2.0-or-later
 - Set entire NSR to 0, not just fields
 - Moved rename of xive_ipb_to_pipr() into its own patch set 0002
 - Rename xive2_presenter_backlog_check() to 
   xive2_presenter_backlog_scan()
 - Squash patch set 11 (crowd size restrictions) into 
   patch set 9 (support crowd-matching)
 - Made xive2_notify() a static rou

Frederic Barrat (10):
  ppc/xive2: Update NVP save/restore for group attributes
  ppc/xive2: Add grouping level to notification
  ppc/xive2: Support group-matching when looking for target
  ppc/xive2: Add undelivered group interrupt to backlog
  ppc/xive2: Process group backlog when pushing an OS  context
  ppc/xive2: Process group backlog when updating the CPPR
  qtest/xive: Add group-interrupt test
  ppc/xive2: Add support for MMIO operations on the NVPG/NVC BAR
  ppc/xive2: Support crowd-matching when looking for target
  ppc/xive2: Check crowd backlog when scanning group backlog

Glenn Miles (3):
  pnv/xive: Support ESB Escalation
  pnv/xive: Fix problem with treating NVGC as a NVP
  qtest/xive: Add test of pool interrupts

Michael Kowal (1):
  ppc/xive: Rename ipb_to_pipr() to xive_ipb_to_pipr()

 include/hw/ppc/xive.h              |  41 +-
 include/hw/ppc/xive2.h             |  25 +-
 include/hw/ppc/xive2_regs.h        |  30 +-
 include/hw/ppc/xive_regs.h         |  25 +-
 tests/qtest/pnv-xive2-common.h     |   1 +
 hw/intc/pnv_xive.c                 |  10 +-
 hw/intc/pnv_xive2.c                | 166 +++++--
 hw/intc/spapr_xive.c               |   8 +-
 hw/intc/xive.c                     | 200 +++++---
 hw/intc/xive2.c                    | 750 +++++++++++++++++++++++++----
 hw/ppc/pnv.c                       |  35 +-
 hw/ppc/spapr.c                     |   7 +-
 tests/qtest/pnv-xive2-flush-sync.c |   6 +-
 tests/qtest/pnv-xive2-nvpg_bar.c   | 153 ++++++
 tests/qtest/pnv-xive2-test.c       | 249 +++++++++-
 hw/intc/trace-events               |   6 +-
 tests/qtest/meson.build            |   3 +-
 17 files changed, 1475 insertions(+), 240 deletions(-)
 create mode 100644 tests/qtest/pnv-xive2-nvpg_bar.c

-- 
2.43.0
Re: [PATCH v2 00/14] XIVE2 changes to support Group and Crowd operations
Posted by Nicholas Piggin 4 weeks ago
Thanks, I merged this series with some tweaks, except
for patch 12 Support ESB Escalation because it has some
outstanding problems as commented.

Thanks,
Nick

On Tue Dec 10, 2024 at 10:05 AM AEST, Michael Kowal wrote:
> XIVE2 has the concepts of a Group of interrupts and a Crowd of interrupts
> (where a crowd is a group of Groups). These patch sets are associated with:
>  - NVGC tables
>  - Group/Crowd level notification
>  - Incrementing backlog countets
>  - Backlog processing
>  - NVPG and NVC Bar MMIO operations
>  - Group/Crowd testing
>  - ESB Escalation
>  - Pool interrupt testing
>
> version 2:
>  - Removed printfs from test models and replaced with g_test_message()
>  - Updated XIVE copyrights to use: 
>    SPDX-License-Identifier: GPL-2.0-or-later
>  - Set entire NSR to 0, not just fields
>  - Moved rename of xive_ipb_to_pipr() into its own patch set 0002
>  - Rename xive2_presenter_backlog_check() to 
>    xive2_presenter_backlog_scan()
>  - Squash patch set 11 (crowd size restrictions) into 
>    patch set 9 (support crowd-matching)
>  - Made xive2_notify() a static rou
>
> Frederic Barrat (10):
>   ppc/xive2: Update NVP save/restore for group attributes
>   ppc/xive2: Add grouping level to notification
>   ppc/xive2: Support group-matching when looking for target
>   ppc/xive2: Add undelivered group interrupt to backlog
>   ppc/xive2: Process group backlog when pushing an OS  context
>   ppc/xive2: Process group backlog when updating the CPPR
>   qtest/xive: Add group-interrupt test
>   ppc/xive2: Add support for MMIO operations on the NVPG/NVC BAR
>   ppc/xive2: Support crowd-matching when looking for target
>   ppc/xive2: Check crowd backlog when scanning group backlog
>
> Glenn Miles (3):
>   pnv/xive: Support ESB Escalation
>   pnv/xive: Fix problem with treating NVGC as a NVP
>   qtest/xive: Add test of pool interrupts
>
> Michael Kowal (1):
>   ppc/xive: Rename ipb_to_pipr() to xive_ipb_to_pipr()
>
>  include/hw/ppc/xive.h              |  41 +-
>  include/hw/ppc/xive2.h             |  25 +-
>  include/hw/ppc/xive2_regs.h        |  30 +-
>  include/hw/ppc/xive_regs.h         |  25 +-
>  tests/qtest/pnv-xive2-common.h     |   1 +
>  hw/intc/pnv_xive.c                 |  10 +-
>  hw/intc/pnv_xive2.c                | 166 +++++--
>  hw/intc/spapr_xive.c               |   8 +-
>  hw/intc/xive.c                     | 200 +++++---
>  hw/intc/xive2.c                    | 750 +++++++++++++++++++++++++----
>  hw/ppc/pnv.c                       |  35 +-
>  hw/ppc/spapr.c                     |   7 +-
>  tests/qtest/pnv-xive2-flush-sync.c |   6 +-
>  tests/qtest/pnv-xive2-nvpg_bar.c   | 153 ++++++
>  tests/qtest/pnv-xive2-test.c       | 249 +++++++++-
>  hw/intc/trace-events               |   6 +-
>  tests/qtest/meson.build            |   3 +-
>  17 files changed, 1475 insertions(+), 240 deletions(-)
>  create mode 100644 tests/qtest/pnv-xive2-nvpg_bar.c