Messages in this thread | | | Subject | Re: [PATCH v6 2/6] arm64/kvm: preserve host MDCR_EL2 value | From | Amit Daniel Kachhap <> | Date | Fri, 1 Mar 2019 11:40:25 +0530 |
| |
Hi,
On 2/21/19 9:21 PM, Dave Martin wrote: > On Tue, Feb 19, 2019 at 02:54:27PM +0530, Amit Daniel Kachhap wrote: >> Save host MDCR_EL2 value during kvm HYP initialisation and restore >> after every switch from host to guest. There should not be any >> change in functionality due to this. >> >> The value of mdcr_el2 is now stored in struct kvm_cpu_context as >> both host and guest can now use this field in a common way. > > Is MDCR_EL2 somehow relevant to pointer auth? > > It's not entirely clear why this patch is here. > > If this is a cleanup to align the handling of this register with > how HCR_EL2 is handled, it would be good to explain that in the commit > message. Agreed I will more information in commit message. > >> Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com> >> Cc: Marc Zyngier <marc.zyngier@arm.com> >> Cc: Mark Rutland <mark.rutland@arm.com> >> Cc: Christoffer Dall <christoffer.dall@arm.com> >> Cc: kvmarm@lists.cs.columbia.edu >> --- >> arch/arm/include/asm/kvm_host.h | 1 - >> arch/arm64/include/asm/kvm_host.h | 6 ++---- >> arch/arm64/kvm/debug.c | 28 ++++++---------------------- >> arch/arm64/kvm/hyp/switch.c | 17 ++++------------- >> arch/arm64/kvm/hyp/sysreg-sr.c | 6 ++++++ >> virt/kvm/arm/arm.c | 1 - >> 6 files changed, 18 insertions(+), 41 deletions(-) >> >> diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h >> index 05706b4..704667e 100644 >> --- a/arch/arm/include/asm/kvm_host.h >> +++ b/arch/arm/include/asm/kvm_host.h >> @@ -294,7 +294,6 @@ static inline void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu) {} >> static inline void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu) {} >> static inline void kvm_arch_vcpu_block_finish(struct kvm_vcpu *vcpu) {} >> >> -static inline void kvm_arm_init_debug(void) {} >> static inline void kvm_arm_setup_debug(struct kvm_vcpu *vcpu) {} >> static inline void kvm_arm_clear_debug(struct kvm_vcpu *vcpu) {} >> static inline void kvm_arm_reset_debug_ptr(struct kvm_vcpu *vcpu) {} >> diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h >> index 1b2e05b..2f1bb86 100644 >> --- a/arch/arm64/include/asm/kvm_host.h >> +++ b/arch/arm64/include/asm/kvm_host.h >> @@ -205,6 +205,8 @@ struct kvm_cpu_context { >> >> /* HYP host/guest configuration */ >> u64 hcr_el2; >> + u32 mdcr_el2; >> + > > ARMv8-A says MDCR_EL2 is a 64-bit register. > > Bits [63:20] are currently RES0, so this is probably not a big deal. > But it would be better to make this 64-bit to prevent future accidents. > It may be better to make that change in a separate patch. Yes this a potential issue. I will fix it in a separate patch.
Thanks, Amit D > > This is probably non-urgent, since this is clearly not causing problems > for anyone today. > > [...] > > Cheers > ---Dave >
| |