[PATCH v3 1/2] RISC-V: KVM: add KVM_CAP_RISCV_MP_STATE_RESET
Anup Patel
anup at brainfault.org
Tue May 20 08:43:24 PDT 2025
On Mon, May 19, 2025 at 5:55 PM Radim Krčmář <rkrcmar at ventanamicro.com> wrote:
>
> 2025-05-16T17:55:05+05:30, Anup Patel <anup at brainfault.org>:
> > On Thu, May 15, 2025 at 8:22 PM Radim Krčmář <rkrcmar at ventanamicro.com> wrote:
> >>
> >> Add a toggleable VM capability to reset the VCPU from userspace by
> >> setting MP_STATE_INIT_RECEIVED through IOCTL.
> >>
> >> Reset through a mp_state to avoid adding a new IOCTL.
> >> Do not reset on a transition from STOPPED to RUNNABLE, because it's
> >> better to avoid side effects that would complicate userspace adoption.
> >> The MP_STATE_INIT_RECEIVED is not a permanent mp_state -- IOCTL resets
> >> the VCPU while preserving the original mp_state -- because we wouldn't
> >> gain much from having a new state it in the rest of KVM, but it's a very
> >> non-standard use of the IOCTL.
> >>
> >> Signed-off-by: Radim Krčmář <rkrcmar at ventanamicro.com>
> >> ---
> >> If we want a permanent mp_state, I think that MP_STATE_UNINITIALIZED
> >> would be reasonable. KVM could reset on transition to any other state.
> >
> > Yes, MP_STATE_UNINITIALIZED looks better. I also suggest
> > that VCPU should be reset when set_mpstate() is called with
> > MP_STATE_UNINITIALIZED and the current state is
> > MP_STATE_STOPPED.
>
> That would result in two resets (stopped -> uninitialized -> *), unless
> we changed the logic.
>
> Would you prefer to reset on transition to the new permanent mp_state?
> MP_STATE_INIT_RECEIVED seems a more fitting name for the state, then.
>
Let's not introduce unnecessary state transitions and go ahead with
MP_STATE_INIT_RECEIVED
Reviewed-by: Anup Patel <anup at brainfault.org>
Queued this patch for Linux-6.16
Thanks,
Anup
More information about the kvm-riscv
mailing list