[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v11 0/4] PMU-EBB support for PPC64 TCG
From: |
Daniel Henrique Barboza |
Subject: |
[PATCH v11 0/4] PMU-EBB support for PPC64 TCG |
Date: |
Fri, 11 Feb 2022 15:33:50 -0300 |
Hi,
This new version makes a few modifications to make the EBB support more
generic.
A new patch (3) was added to implement PPC_INTERRUPT_EBB and its two
internal exceptions described by ISA v3.1: POWERPC_EXCP_PERFM_EBB and
POWERPC_EXCP_EXTERNAL_EBB. When receiving an EBB interrupt we check
BESCR bits to fire the appropriate exception. They are doing the same
thing ATM (clear GE and enter the branch with env->nip = SPR_EBBHR).
PPC_INTERRUPT_EBB will be used for the future XIVE IC EBB lane as well.
Patch 4 (previous 3) contains the helpers used by the PMU to fire the
PERFM_EBB exception, but now we're checking msr_pr and either throwing
the exception immediately or queueing it up for later via
PPC_INTERRUPT_EBB. This change covers all the race conditions that the
kernel EBB selftests seems to trigger, and without using ppc_set_irq()
to handle BQL.
Changes from v10:
- patch 1:
* added David's r-b
- patch 3 (new):
* add PPC_INTERRUPT_EBB, POWERPC_EXCP_PERFM_EBB and
POWERPC_EXCP_EXTERNAL_EBB
- patch 4:
* all EBB bits are now being checked in the helper
* a new static do_ebb() helper was created to handle the common
EBB logic
* we're now checking msr_pr and either throwing the exception immediately
or queueing it for later using PPC_INTERRUPT_EBB
* ppc_set_irq() call was removed
- v10 link: https://lists.gnu.org/archive/html/qemu-devel/2022-02/msg01856.html
Daniel Henrique Barboza (4):
target/ppc: fix indent of function parameters
target/ppc: finalize pre-EBB PMU logic
target/ppc: add PPC_INTERRUPT_EBB and EBB exceptions
target/ppc: trigger PERFM EBBs from power8-pmu.c
target/ppc/cpu.h | 5 ++-
target/ppc/cpu_init.c | 4 ++
target/ppc/excp_helper.c | 89 ++++++++++++++++++++++++++++++++++++++--
target/ppc/helper.h | 1 +
target/ppc/power8-pmu.c | 39 ++++++++++++++++--
5 files changed, 129 insertions(+), 9 deletions(-)
--
2.34.1