From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoffer Dall Subject: Re: [PATCH v2 9/9] arm64: KVM: enable trapping of all debug registers Date: Sun, 25 May 2014 16:36:29 +0100 Message-ID: <20140525153629.GJ3866@lvm> References: <1400604945-25247-1-git-send-email-marc.zyngier@arm.com> <1400604945-25247-10-git-send-email-marc.zyngier@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, Will Deacon , Catalin Marinas , Ian Campbell , Anup Patel , Peter Maydell To: Marc Zyngier Return-path: Received: from mail-lb0-f169.google.com ([209.85.217.169]:60268 "EHLO mail-lb0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751387AbaEYPge (ORCPT ); Sun, 25 May 2014 11:36:34 -0400 Received: by mail-lb0-f169.google.com with SMTP id s7so3741083lbd.14 for ; Sun, 25 May 2014 08:36:33 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1400604945-25247-10-git-send-email-marc.zyngier@arm.com> Sender: kvm-owner@vger.kernel.org List-ID: On Tue, May 20, 2014 at 05:55:45PM +0100, Marc Zyngier wrote: > Enable trapping of the debug registers, preventing the guests to > mess with the host state (and allowing guests to use the debug > infrastructure as well). > > Reviewed-by: Anup Patel > Signed-off-by: Marc Zyngier > --- > arch/arm64/kvm/hyp.S | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/arch/arm64/kvm/hyp.S b/arch/arm64/kvm/hyp.S > index 73ec5c4..72ed0bf8 100644 > --- a/arch/arm64/kvm/hyp.S > +++ b/arch/arm64/kvm/hyp.S > @@ -777,6 +777,14 @@ __kvm_hyp_code_start: > mrs x2, mdcr_el2 > and x2, x2, #MDCR_EL2_HPMN_MASK > orr x2, x2, #(MDCR_EL2_TPM | MDCR_EL2_TPMCR) > + orr x2, x2, #(MDCR_EL2_TDRA | MDCR_EL2_TDOSA) so we unconditionally trap on the OS register access, but we don't properly emulate these do we? What's the rationale? (atmittedly, again, I'm not 100% clear on how the OS lock thingy is supposed to work/be used). > + > + // Check for KVM_ARM64_DEBUG_DIRTY, and set to debug to trap > + // if not dirty. s/set to debug to trap/set debug to trap/ ?? > + ldr x3, [x0, #VCPU_DEBUG_FLAGS] > + tbnz x3, #KVM_ARM64_DEBUG_DIRTY_SHIFT, 1f > + orr x2, x2, #MDCR_EL2_TDA > +1: > msr mdcr_el2, x2 > .endm > > -- > 1.8.3.4 > as per the functionality in this patch otherwise: Reviewed-by: Christoffer Dall