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

Anup Patel anup at brainfault.org
Sat Aug 1 01:35:52 PDT 2026


On Fri, Jul 31, 2026 at 3:11 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 v3:
>  - Re-order the PATCH1 and PATCH2, let the fix PATCH as first patch.
>  - Link to v2:
>  https://lore.kernel.org/kvm-riscv/20260707125034.416521-1-wang.yechao255@zte.com.cn/
>
> 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: Separate req and fallback_req masks in
>     make_xfence_request
>   RISC-V: KVM: Introduce make_xfence_request_nodata for FENCE.I requests
>
>  arch/riscv/kvm/tlb.c | 46 +++++++++++++++++++++++++++++++++-----------
>  1 file changed, 35 insertions(+), 11 deletions(-)
>
> --
> 2.39.3
>

Queued this series for Linux-7.3

Thanks,
Anup



More information about the kvm-riscv mailing list