[PATCH v2 0/2] RISC-V: KVM: Optimize hfence request handling for SMP guests

Anup Patel anup at brainfault.org
Thu Jul 30 22:56:53 PDT 2026


On Tue, Jul 7, 2026 at 6:22 PM Wang Yechao <wang.yechao255 at zte.com.cn> wrote:
>
> This series improves the hfence request handling in RISC-V KVM,
> targeting scenarios where multiple VCPUs are running an SMP guest.
>
> The first patch Introduce make_xfence_request_nodata for FENCE.I
> requests and moves the hfence data/type validation out of the
> VCPU loop to avoid redundant checks on every iteration.
>
> The second patch fixes a more subtle performance issue: when one
> VCPU's hfence queue becomes full and triggers a fallback, the
> current code applies the fallback to all VCPUs indiscriminately.
> This unnecessarily degrades healthy VCPUs and can cause their
> queues to fill up prematurely due to lack of processing it.
>
> With these changes, fallback is applied only to the VCPUs that
> actually need it, preserving the efficiency of the normal path
> for others.
>
> Changes in v2:
>  - Fix the patch01 broken the KVM_REQ_FENCE_I request(Sashiko AI review).
>
>  - Link to v1:
>  https://lore.kernel.org/linux-riscv/20260707113715.413265-1-wang.yechao255@zte.com.cn/
>
> Wang Yechao (2):
>   RISC-V: KVM: Introduce make_xfence_request_nodata for FENCE.I requests
>   RISC-V: KVM: Separate req and fallback_req masks in
>     make_xfence_request
>
>  arch/riscv/kvm/tlb.c | 46 +++++++++++++++++++++++++++++++++-----------
>  1 file changed, 35 insertions(+), 11 deletions(-)
>
> --
> 2.43.5
>

The PATCH2 is a fix independent of PATCH1 so re-order
and make PATCH2 as first patch which can be applied
independent of PATCH1

Regards,
Anup



More information about the kvm-riscv mailing list