qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC 0/8] Add Counter delegation ISA extension support
@ 2024-02-17  0:01 Atish Patra
  2024-02-17  0:01 ` [PATCH RFC 1/8] target/riscv: Add properties for Indirect CSR Access extension Atish Patra
                   ` (9 more replies)
  0 siblings, 10 replies; 19+ messages in thread
From: Atish Patra @ 2024-02-17  0:01 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alistair Francis, Bin Meng, Daniel Henrique Barboza, Liu Zhiwei,
	Palmer Dabbelt, qemu-riscv, Weiwei Li, kaiwenxue1

This series adds the counter delegation extension support. The counter
delegation ISA extension(Smcdeleg/Ssccfg) actually depends on multiple ISA
extensions.

1. S[m|s]csrind : The indirect CSR extension[1] which defines additional
   5 ([M|S|VS]IREG2-[M|S|VS]IREG6) register to address size limitation of
   RISC-V CSR address space.
2. Smstateen: The stateen bit[60] controls the access to the registers
   indirectly via the above indirect registers.
3. Smcdeleg/Ssccfg: The counter delegation extensions[2]

The counter delegation extension allows Supervisor mode to program the
hpmevent and hpmcounters directly without needing the assistance from the
M-mode via SBI calls. This results in a faster perf profiling and very
few traps. This extension also introduces a scountinhibit CSR which allows
to stop/start any counter directly from the S-mode. As the counter
delegation extension potentially can have more than 100 CSRs, the specificaiton
leverages the indirect CSR extension to save the precious CSR address range.

Due to the dependancy of these extensions, the following extensions must be
enabled to use the counter delegation feature in S-mode.

"smstateen=true,sscofpmf=true,ssccfg=true,smcdeleg=true,smcsrind=true,sscsrind=true"

This makes the qemu command line quite tedious. In stead of that, I think we
can enable these features by default if there is no objection.

The first 2 patches decouple the indirect CSR usage from AIA implementation
while patch3 adds stateen bits validation for AIA.
The PATCH4 implements indirect CSR extensions while remaining patches
implement the counter delegation extensions.

The Qemu patches can be found here:
https://github.com/atishp04/qemu/tree/counter_delegation_rfc

The opensbi patch can be found here:
https://github.com/atishp04/opensbi/tree/counter_delegation_v1

The Linux kernel patches can be found here:
https://github.com/atishp04/linux/tree/counter_delegation_rfc

[1] https://github.com/riscv/riscv-indirect-csr-access
[2] https://github.com/riscv/riscv-smcdeleg-ssccfg

Atish Patra (1):
target/riscv: Enable S*stateen bits for AIA

Kaiwen Xue (7):
target/riscv: Add properties for Indirect CSR Access extension
target/riscv: Decouple AIA processing from xiselect and xireg
target/riscv: Support generic CSR indirect access
target/riscv: Add smcdeleg/ssccfg properties
target/riscv: Add counter delegation definitions
target/riscv: Add select value range check for counter delegation
target/riscv: Add counter delegation/configuration support

target/riscv/cpu.c      |   8 +
target/riscv/cpu.h      |   1 +
target/riscv/cpu_bits.h |  34 +-
target/riscv/cpu_cfg.h  |   4 +
target/riscv/csr.c      | 713 +++++++++++++++++++++++++++++++++++++---
target/riscv/machine.c  |   1 +
6 files changed, 722 insertions(+), 39 deletions(-)

--
2.34.1



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2024-07-23 23:31 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-17  0:01 [PATCH RFC 0/8] Add Counter delegation ISA extension support Atish Patra
2024-02-17  0:01 ` [PATCH RFC 1/8] target/riscv: Add properties for Indirect CSR Access extension Atish Patra
2024-02-17  0:01 ` [PATCH RFC 2/8] target/riscv: Decouple AIA processing from xiselect and xireg Atish Patra
2024-06-05  8:17   ` Jason Chien
2024-02-17  0:01 ` [PATCH RFC 3/8] target/riscv: Enable S*stateen bits for AIA Atish Patra
2024-02-17  0:01 ` [PATCH RFC 4/8] target/riscv: Support generic CSR indirect access Atish Patra
2024-06-05 11:49   ` Jason Chien
2024-07-23 23:31     ` Atish Kumar Patra
2024-02-17  0:01 ` [PATCH RFC 5/8] target/riscv: Add smcdeleg/ssccfg properties Atish Patra
2024-02-17  0:01 ` [PATCH RFC 6/8] target/riscv: Add counter delegation definitions Atish Patra
2024-02-17  0:01 ` [PATCH RFC 7/8] target/riscv: Add select value range check for counter delegation Atish Patra
2024-02-17  0:01 ` [PATCH RFC 8/8] target/riscv: Add counter delegation/configuration support Atish Patra
2024-02-21 14:58 ` [PATCH RFC 0/8] Add Counter delegation ISA extension support Daniel Henrique Barboza
2024-02-21 17:06   ` Atish Kumar Patra
2024-02-21 18:26     ` Daniel Henrique Barboza
2024-02-21 20:17       ` Atish Patra
2024-02-21 21:10         ` Daniel Henrique Barboza
2024-06-01  9:52 ` Daniel Henrique Barboza
2024-06-02  6:39   ` Atish Kumar Patra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).