Re: [PATCH v2 0/6] LoongArch: KVM: Set max VM supported FPU type with FPU exception
From: Bibo Mao
Date: Tue Apr 07 2026 - 21:04:21 EST
On 2026/4/7 下午8:41, Huacai Chen wrote:
On Mon, Mar 30, 2026 at 6:00 PM Huacai Chen <chenhuacai@xxxxxxxxxx> wrote:Hi Huacai,
And could you please test the power consumption where there are many
Hi, Bibo,
On Mon, Mar 30, 2026 at 11:58 AM Bibo Mao <maobibo@xxxxxxxxxxx> wrote:
Patch-1 add KVM_REQ_LBT_LOAD, then KVM_REQ_AUX_LOAD is only for FPU,
With FPU save and restore flow, the cost is the same with different
FPU width 8/16/32 bytes, whatever from CPU cycle and cache line impaction.
Here is to enable FPU with max VM supported type, for example if
VM supports LASX instrction, enable FPU with LASX type even with FPU
exeception. So it can avoid possible LSX/LASX exception in future.
With context switch microbench which may touch FPU and LASX, there is 9%
improvement when halt_poll_ns is disabled. The command is
"./context --test=pipe" and source code located at:
https://github.com/bibo-mao/context_switch/blob/main/context.c
Original Wih patch improvement
75232 82440 9%
Signed-off-by: Bibo Mao <maobibo@xxxxxxxxxxx>
---
v1 ... v2:
1. Enable FPU with max VM supported FPU type, rather than max used type.
2. Add new request bit KVM_REQ_LBT_LOAD for LBT restore
3. Rename KVM_REQ_AUX_LOAD with KVM_REQ_FPU_LOAD
3. Remove aux_ldtype and KVM_LARCH_LSX/KVM_LARCH_LSX
4. Remove middle FPU state handling in kvm_own_lsx() and kvm_own_lasx(),
directly enable LSX or LASX from FPU none state.
---
Bibo Mao (6):
LoongArch: KVM: Add separate KVM_REQ_LBT_LOAD request bit
LoongArch: KVM: Enable FPU with max VM supported FPU type
LoongArch: KVM: Rename KVM_REQ_AUX_LOAD with KVM_REQ_FPU_LOAD
so I think Patch-3 should be squashed into Patch-1.
LoongArch: KVM: Remove some middle FPU statesPatch-5 remove the consumer side of KVM_LARCH_LASX / KVM_LARCH_LSX and
LoongArch: KVM: Use vm_guest_has_fpu API in kvm_lose_fpu()
LoongArch: KVM: Remove KVM_LARCH_LASX and KVM_LARCH_LSX
Patch-6 remove the provider side of KVM_LARCH_LASX / KVM_LARCH_LSX, so
I think Patch-6 should be squashed into Patch-5, too.
VMs that only use FPU rather than LSX/LASX? As far as I know, the
Thanks for reviewing this patch
Could you help me to test the power consumption with this patch?
power consumption of LASX is significantly more than FPU, which is aCould the describe the detail scenery wheree LASX instruction is frequently used by application or LASX EUEN enabled?
Regards
Bibo Mao
little similar to AVX512 (Linus said it is a power virus).
Huacai
Huacai
arch/loongarch/include/asm/kvm_host.h | 6 +--
arch/loongarch/kvm/exit.c | 21 +++-----
arch/loongarch/kvm/vcpu.c | 78 ++++++++-------------------
3 files changed, 30 insertions(+), 75 deletions(-)
base-commit: 7aaa8047eafd0bd628065b15757d9b48c5f9c07d
--
2.39.3