On Mon, Feb 24, 2025 at 04:24:14PM +0800, Yong-Xuan Wang wrote: > Add the description about "-accel kvm,kernel-irqchip=off" into > docs/specs/riscv-aia.rst and docs/system/riscv/virt.rst. > > Signed-off-by: Yong-Xuan Wang <yongxuan.w...@sifive.com> > --- > docs/specs/riscv-aia.rst | 24 ++++++++++++++++++------ > docs/system/riscv/virt.rst | 10 ++++++---- > 2 files changed, 24 insertions(+), 10 deletions(-) > > diff --git a/docs/specs/riscv-aia.rst b/docs/specs/riscv-aia.rst > index 8097e2f89744..38797cca4998 100644 > --- a/docs/specs/riscv-aia.rst > +++ b/docs/specs/riscv-aia.rst > @@ -25,11 +25,16 @@ When running KVM: > - no m-mode is provided, so there is no m-mode APLIC or IMSIC emulation > regardless of > the AIA mode chosen > - with "aia=aplic", s-mode APLIC will be emulated by userspace > -- with "aia=aplic-imsic" there are two possibilities. If no additional KVM > option > - is provided there will be no APLIC or IMSIC emulation in userspace, and > the virtual > - machine will use the provided in-kernel APLIC and IMSIC controllers. If > the user > - chooses to use the irqchip in split mode via "-accel > kvm,kernel-irqchip=split", > - s-mode APLIC will be emulated while using the s-mode IMSIC from the irqchip > +- with "aia=aplic-imsic" there are three possibilities. > + - If no additional KVM option is provided there will be no APLIC or > IMSIC emulation > + in userspace, and the virtual machine will use the provided in-kernel > APLIC and > + IMSIC controllers. > + - If the user chooses to use the irqchip in split mode via > + "-accel kvm,kernel-irqchip=split", s-mode APLIC will be emulated while > using > + the s-mode IMSIC from the irqchip. > + - If the user disables the in-kernel irqchip via "-accel > kvm,kernel-irqchip=off", > + both s-mode APLIC and IMSIC controller will be emulated. > + > > The following table summarizes how the AIA and accelerator options defines > what > we will emulate in userspace: > @@ -75,9 +80,16 @@ we will emulate in userspace: > - in-kernel > - in-kernel > * - kvm > - - irqchip=split > + - kernel-irqchip=split > - aplic-imsic > - n/a > - n/a > - emul > - in-kernel > + * - kvm > + - kernel-irqchip=off > + - aplic-imsic > + - n/a > + - n/a > + - emul > + - emul > diff --git a/docs/system/riscv/virt.rst b/docs/system/riscv/virt.rst > index 60850970ce83..96d7ee1ebc64 100644 > --- a/docs/system/riscv/virt.rst > +++ b/docs/system/riscv/virt.rst > @@ -129,12 +129,14 @@ The following machine-specific options are supported: > MSIs. When not specified, this option is assumed to be "none" which selects > SiFive PLIC to handle wired interrupts. > > - This option also interacts with '-accel kvm'. When using "aia=aplic-imsic" > - with KVM, it is possible to set the use of the kernel irqchip in split mode > + This option also interacts with '-accel kvm', when using "aia=aplic-imsic" > + with KVM. It is possible to set the use of the kernel irqchip in split > mode > by using "-accel kvm,kernel-irqchip=split". In this case the ``virt`` > machine > will emulate the APLIC controller instead of using the APLIC controller > from > - the irqchip. See :ref:`riscv-aia` for more details on all available AIA > - modes. > + the in-kernel irqchip. Or the kernel irqchip can be disabled by using > + "-accel kvm,kernel-irqchip=off". In this case the ``virt`` machine will > + emulate the APLIC and IMSIC controller in user-space instead of using > in-kernel > + irqchip. See :ref:`riscv-aia` for more details on all available AIA modes. > > - aia-guests=nnn > > -- > 2.17.1 > >
Reviewed-by: Andrew Jones <ajo...@ventanamicro.com>