Add a small section talking about the 'riscv-aia' KVM setting we
implement and how it affects the provisioning of the IMSIC s-mode
in-kernel controller.
While we're at it, fix the formatting of the AIA bullet list.
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
---
docs/specs/riscv-aia.rst | 43 ++++++++++++++++++++++++++++++++++++----
1 file changed, 39 insertions(+), 4 deletions(-)
diff --git a/docs/specs/riscv-aia.rst b/docs/specs/riscv-aia.rst
index 8097e2f897..f3c6ab7fcb 100644
--- a/docs/specs/riscv-aia.rst
+++ b/docs/specs/riscv-aia.rst
@@ -8,10 +8,8 @@ RISC-V machine for TCG and KVM accelerators.
The support consists of two main modes:
-- "aia=aplic": adds one or more APLIC (Advanced Platform Level Interrupt Controller)
- devices
-- "aia=aplic-imsic": adds one or more APLIC device and an IMSIC (Incoming MSI
- Controller) device for each CPU
+- *aia=aplic*: adds one or more APLIC (Advanced Platform Level Interrupt Controller) devices
+- *aia=aplic-imsic*: adds one or more APLIC device and an IMSIC (Incoming MSI Controller) device for each CPU
From an user standpoint, these modes will behave the same regardless of the accelerator
used. From a developer standpoint the accelerator settings will change what it being
@@ -81,3 +79,40 @@ we will emulate in userspace:
- n/a
- emul
- in-kernel
+
+
+KVM accel option 'riscv-aia'
+----------------------------
+
+The KVM accelerator property 'riscv-aia' interacts with the "aia=aplic-imsic"
+to determine how the host KVM module will provide the in-kernel IMSIC s-mode
+controller. The 'kernel-irqchip' setting has no impact in 'riscv-aia' given
+that any available 'kernel-irqchip' setting will always have an in-kernel
+IMSIC s-mode. 'riscv-aia' has no impact in APLIC m-mode/s-mode and
+IMSIC m-mode settings.
+
+
+.. list-table:: How 'riscv-aia' changes in-kernel IMSIC s-mode provisioning
+ :widths: 25 25 25 25
+ :header-rows: 1
+
+ * - Accel
+ - KVM riscv-aia
+ - AIA type
+ - IMSIC s-mode
+ * - kvm
+ - none
+ - aplic-imsic
+ - in-kernel, default to 'auto'
+ * - kvm
+ - auto
+ - aplic-imsic
+ - in-kernel, hwaccel if available, emul otherwise
+ * - kvm
+ - hwaccel
+ - aplic-imsic
+ - in-kernel, use IMSIC controller from guest hardware
+ * - kvm
+ - emul
+ - aplic-imsic
+ - in-kernel, IMSIC is emulated by KVM
--
2.51.0
On Tue, Oct 28, 2025 at 6:48 PM Daniel Henrique Barboza <dbarboza@ventanamicro.com> wrote: > > Add a small section talking about the 'riscv-aia' KVM setting we > implement and how it affects the provisioning of the IMSIC s-mode > in-kernel controller. > > While we're at it, fix the formatting of the AIA bullet list. > > Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Thanks! Applied to riscv-to-apply.next Alistair > --- > docs/specs/riscv-aia.rst | 43 ++++++++++++++++++++++++++++++++++++---- > 1 file changed, 39 insertions(+), 4 deletions(-) > > diff --git a/docs/specs/riscv-aia.rst b/docs/specs/riscv-aia.rst > index 8097e2f897..f3c6ab7fcb 100644 > --- a/docs/specs/riscv-aia.rst > +++ b/docs/specs/riscv-aia.rst > @@ -8,10 +8,8 @@ RISC-V machine for TCG and KVM accelerators. > > The support consists of two main modes: > > -- "aia=aplic": adds one or more APLIC (Advanced Platform Level Interrupt Controller) > - devices > -- "aia=aplic-imsic": adds one or more APLIC device and an IMSIC (Incoming MSI > - Controller) device for each CPU > +- *aia=aplic*: adds one or more APLIC (Advanced Platform Level Interrupt Controller) devices > +- *aia=aplic-imsic*: adds one or more APLIC device and an IMSIC (Incoming MSI Controller) device for each CPU > > From an user standpoint, these modes will behave the same regardless of the accelerator > used. From a developer standpoint the accelerator settings will change what it being > @@ -81,3 +79,40 @@ we will emulate in userspace: > - n/a > - emul > - in-kernel > + > + > +KVM accel option 'riscv-aia' > +---------------------------- > + > +The KVM accelerator property 'riscv-aia' interacts with the "aia=aplic-imsic" > +to determine how the host KVM module will provide the in-kernel IMSIC s-mode > +controller. The 'kernel-irqchip' setting has no impact in 'riscv-aia' given > +that any available 'kernel-irqchip' setting will always have an in-kernel > +IMSIC s-mode. 'riscv-aia' has no impact in APLIC m-mode/s-mode and > +IMSIC m-mode settings. > + > + > +.. list-table:: How 'riscv-aia' changes in-kernel IMSIC s-mode provisioning > + :widths: 25 25 25 25 > + :header-rows: 1 > + > + * - Accel > + - KVM riscv-aia > + - AIA type > + - IMSIC s-mode > + * - kvm > + - none > + - aplic-imsic > + - in-kernel, default to 'auto' > + * - kvm > + - auto > + - aplic-imsic > + - in-kernel, hwaccel if available, emul otherwise > + * - kvm > + - hwaccel > + - aplic-imsic > + - in-kernel, use IMSIC controller from guest hardware > + * - kvm > + - emul > + - aplic-imsic > + - in-kernel, IMSIC is emulated by KVM > -- > 2.51.0 > >
On Tue, Oct 28, 2025 at 6:48 PM Daniel Henrique Barboza <dbarboza@ventanamicro.com> wrote: > > Add a small section talking about the 'riscv-aia' KVM setting we > implement and how it affects the provisioning of the IMSIC s-mode > in-kernel controller. > > While we're at it, fix the formatting of the AIA bullet list. > > Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > docs/specs/riscv-aia.rst | 43 ++++++++++++++++++++++++++++++++++++---- > 1 file changed, 39 insertions(+), 4 deletions(-) > > diff --git a/docs/specs/riscv-aia.rst b/docs/specs/riscv-aia.rst > index 8097e2f897..f3c6ab7fcb 100644 > --- a/docs/specs/riscv-aia.rst > +++ b/docs/specs/riscv-aia.rst > @@ -8,10 +8,8 @@ RISC-V machine for TCG and KVM accelerators. > > The support consists of two main modes: > > -- "aia=aplic": adds one or more APLIC (Advanced Platform Level Interrupt Controller) > - devices > -- "aia=aplic-imsic": adds one or more APLIC device and an IMSIC (Incoming MSI > - Controller) device for each CPU > +- *aia=aplic*: adds one or more APLIC (Advanced Platform Level Interrupt Controller) devices > +- *aia=aplic-imsic*: adds one or more APLIC device and an IMSIC (Incoming MSI Controller) device for each CPU > > From an user standpoint, these modes will behave the same regardless of the accelerator > used. From a developer standpoint the accelerator settings will change what it being > @@ -81,3 +79,40 @@ we will emulate in userspace: > - n/a > - emul > - in-kernel > + > + > +KVM accel option 'riscv-aia' > +---------------------------- > + > +The KVM accelerator property 'riscv-aia' interacts with the "aia=aplic-imsic" > +to determine how the host KVM module will provide the in-kernel IMSIC s-mode > +controller. The 'kernel-irqchip' setting has no impact in 'riscv-aia' given > +that any available 'kernel-irqchip' setting will always have an in-kernel > +IMSIC s-mode. 'riscv-aia' has no impact in APLIC m-mode/s-mode and > +IMSIC m-mode settings. > + > + > +.. list-table:: How 'riscv-aia' changes in-kernel IMSIC s-mode provisioning > + :widths: 25 25 25 25 > + :header-rows: 1 > + > + * - Accel > + - KVM riscv-aia > + - AIA type > + - IMSIC s-mode > + * - kvm > + - none > + - aplic-imsic > + - in-kernel, default to 'auto' > + * - kvm > + - auto > + - aplic-imsic > + - in-kernel, hwaccel if available, emul otherwise > + * - kvm > + - hwaccel > + - aplic-imsic > + - in-kernel, use IMSIC controller from guest hardware > + * - kvm > + - emul > + - aplic-imsic > + - in-kernel, IMSIC is emulated by KVM > -- > 2.51.0 > >
© 2016 - 2025 Red Hat, Inc.