Re: [RFC PATCH v2 08/19] RISC-V: KVM: Implement VCPU world-switch

From: Paolo Bonzini
Date: Fri Aug 02 2019 - 04:30:15 EST


On 02/08/19 09:47, Anup Patel wrote:
> + /* Save Host SSTATUS, HSTATUS, SCRATCH and STVEC */
> + csrr t0, CSR_SSTATUS
> + REG_S t0, (KVM_ARCH_HOST_SSTATUS)(a0)
> + csrr t1, CSR_HSTATUS
> + REG_S t1, (KVM_ARCH_HOST_HSTATUS)(a0)
> + csrr t2, CSR_SSCRATCH
> + REG_S t2, (KVM_ARCH_HOST_SSCRATCH)(a0)
> + csrr t3, CSR_STVEC
> + REG_S t3, (KVM_ARCH_HOST_STVEC)(a0)
> +

A possible optimization: if these cannot change while Linux runs (I am
thinking especially of STVEC and HSTATUS, but perhaps SSCRATCH can be
saved on kvm_arch_vcpu_load too) you can avoid the csrr and store.

Paolo