From: Daniel Henrique Barboza <danielhb413@gmail.com>
To: qemu-devel@nongnu.org
Cc: gustavo.romero@linaro.org,
Daniel Henrique Barboza <danielhb413@gmail.com>,
richard.henderson@linaro.org, groug@kaod.org,
qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au
Subject: [PATCH v2 00/16] PMU-EBB support for PPC64 TCG
Date: Tue, 24 Aug 2021 13:30:16 -0300 [thread overview]
Message-ID: <20210824163032.394099-1-danielhb413@gmail.com> (raw)
Hi,
This second version is considerably different than the first one.
All changes were made based on review comments from David and Richard,
along with some design changes I decided to make along the way.
Patches were rebased using current David's ppc-for-6.2 tree.
Changes from v1:
- all patches:
* ppc64-linux-user build tested
- patches 1-3:
* do not expose 'env->spr' to make MMCR0 access control
* PMCC was added in hflags to make MMCR0 access control
* do not use generalist functions with reg switches
- patches 4-8:
* helper file was renamed to 'power8_pmu.c'
* no longer use icount to count instructions and cycles
* cycle counting is now made using time intervals
* instruction counting now uses a helper inside translate.c that
counts instructions during translation block end
* PM_RUN_INST_CMPL (insns completed with run latch) is now implemented
accordingly
* PM_CMPLU_STALL events were dropped
- patches 9-11:
* rfebb was implemented from scratch using decode tree
- patches 12-16:
* cycle overflow now uses 5 independent timers, one for each cycle
capable counter
* instruction overflow is now triggered via the translation.c helper
* new patch (16): add capability to enable/disable cycle counter
overflow when the PMU is running
- documentation patch was dropped for now. I will re-send it when
this work is more ironed out.
v1 link: https://lists.gnu.org/archive/html/qemu-devel/2021-08/msg01477.html
Daniel Henrique Barboza (13):
target/ppc: add user write access control for PMU SPRs
target/ppc: PMU basic cycle count for pseries TCG
target/ppc/power8_pmu.c: enable PMC1-PMC4 events
target/ppc: PMU: add instruction counting
target/ppc/power8_pmu.c: add PM_RUN_INST_CMPL (0xFA) event
target/ppc/power8_pmu.c: add PMC14/PMC56 counter freeze bits
PPC64/TCG: Implement 'rfebb' instruction
target/ppc/excp_helper.c: EBB handling adjustments
target/ppc/power8_pmu.c: enable PMC1 counter negative overflow
target/ppc/power8_pmu.c: cycles overflow with all PMCs
target/ppc: PMU: insns counter negative overflow support
target/ppc/translate: PMU: handle setting of PMCs while running
target/ppc/power8_pmu.c: handle overflow bits when PMU is running
Gustavo Romero (3):
target/ppc: add user read functions for MMCR0 and MMCR2
target/ppc: add exclusive user write function for MMCR0
target/ppc: PMU Event-Based exception support
hw/ppc/spapr_cpu_core.c | 6 +
target/ppc/cpu.h | 55 ++-
target/ppc/cpu_init.c | 36 +-
target/ppc/excp_helper.c | 85 +++++
target/ppc/helper.h | 4 +
target/ppc/helper_regs.c | 3 +
target/ppc/insn32.decode | 5 +
target/ppc/meson.build | 1 +
target/ppc/power8_pmu.c | 467 +++++++++++++++++++++++++
target/ppc/power8_pmu.h | 25 ++
target/ppc/spr_tcg.h | 7 +
target/ppc/translate.c | 218 ++++++++++++
target/ppc/translate/branch-impl.c.inc | 32 ++
13 files changed, 925 insertions(+), 19 deletions(-)
create mode 100644 target/ppc/power8_pmu.c
create mode 100644 target/ppc/power8_pmu.h
create mode 100644 target/ppc/translate/branch-impl.c.inc
--
2.31.1
next reply other threads:[~2021-08-24 16:34 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-24 16:30 Daniel Henrique Barboza [this message]
2021-08-24 16:30 ` [PATCH v2 01/16] target/ppc: add user write access control for PMU SPRs Daniel Henrique Barboza
2021-08-25 4:26 ` David Gibson
2021-08-24 16:30 ` [PATCH v2 02/16] target/ppc: add user read functions for MMCR0 and MMCR2 Daniel Henrique Barboza
2021-08-25 4:30 ` David Gibson
2021-08-25 12:25 ` Paul A. Clarke
2021-08-25 13:35 ` David Gibson
2021-08-24 16:30 ` [PATCH v2 03/16] target/ppc: add exclusive user write function for MMCR0 Daniel Henrique Barboza
2021-08-25 4:37 ` David Gibson
2021-08-25 14:01 ` Daniel Henrique Barboza
2021-08-24 16:30 ` [PATCH v2 04/16] target/ppc: PMU basic cycle count for pseries TCG Daniel Henrique Barboza
2021-08-25 5:19 ` David Gibson
2021-08-25 14:05 ` Daniel Henrique Barboza
2021-08-24 16:30 ` [PATCH v2 05/16] target/ppc/power8_pmu.c: enable PMC1-PMC4 events Daniel Henrique Barboza
2021-08-25 5:23 ` David Gibson
2021-08-24 16:30 ` [PATCH v2 06/16] target/ppc: PMU: add instruction counting Daniel Henrique Barboza
2021-08-25 5:31 ` David Gibson
2021-08-25 14:10 ` Daniel Henrique Barboza
2021-08-24 16:30 ` [PATCH v2 07/16] target/ppc/power8_pmu.c: add PM_RUN_INST_CMPL (0xFA) event Daniel Henrique Barboza
2021-08-25 5:32 ` David Gibson
2021-08-24 16:30 ` [PATCH v2 08/16] target/ppc/power8_pmu.c: add PMC14/PMC56 counter freeze bits Daniel Henrique Barboza
2021-08-24 16:30 ` [PATCH v2 09/16] PPC64/TCG: Implement 'rfebb' instruction Daniel Henrique Barboza
2021-08-30 12:12 ` Matheus K. Ferst
2021-08-30 18:41 ` Daniel Henrique Barboza
2021-08-24 16:30 ` [PATCH v2 10/16] target/ppc: PMU Event-Based exception support Daniel Henrique Barboza
2021-08-25 5:37 ` David Gibson
2021-08-30 19:09 ` Daniel Henrique Barboza
2021-08-24 16:30 ` [PATCH v2 11/16] target/ppc/excp_helper.c: EBB handling adjustments Daniel Henrique Barboza
2021-08-24 16:30 ` [PATCH v2 12/16] target/ppc/power8_pmu.c: enable PMC1 counter negative overflow Daniel Henrique Barboza
2021-08-24 16:30 ` [PATCH v2 13/16] target/ppc/power8_pmu.c: cycles overflow with all PMCs Daniel Henrique Barboza
2021-08-24 16:30 ` [PATCH v2 14/16] target/ppc: PMU: insns counter negative overflow support Daniel Henrique Barboza
2021-08-24 16:30 ` [PATCH v2 15/16] target/ppc/translate: PMU: handle setting of PMCs while running Daniel Henrique Barboza
2021-08-24 16:30 ` [PATCH v2 16/16] target/ppc/power8_pmu.c: handle overflow bits when PMU is running Daniel Henrique Barboza
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210824163032.394099-1-danielhb413@gmail.com \
--to=danielhb413@gmail.com \
--cc=clg@kaod.org \
--cc=david@gibson.dropbear.id.au \
--cc=groug@kaod.org \
--cc=gustavo.romero@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.