Marc Zyngier <marc.zyngier@xxxxxxx> writes: > On 01/12/15 12:56, Christoffer Dall wrote: >> On Fri, Nov 27, 2015 at 06:50:02PM +0000, Marc Zyngier wrote: >>> Implement the debug save restore as a direct translation of >>> the assembly code version. >>> >>> Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> >>> --- >>> arch/arm64/kvm/hyp/Makefile | 1 + >>> arch/arm64/kvm/hyp/debug-sr.c | 130 ++++++++++++++++++++++++++++++++++++++++++ >>> arch/arm64/kvm/hyp/hyp.h | 9 +++ >>> 3 files changed, 140 insertions(+) >>> create mode 100644 arch/arm64/kvm/hyp/debug-sr.c <snip> >>> +void __hyp_text __debug_cond_save_host_state(struct kvm_vcpu *vcpu) >>> +{ >>> + if ((vcpu->arch.ctxt.sys_regs[MDSCR_EL1] & DBG_MDSCR_KDE) || >>> + (vcpu->arch.ctxt.sys_regs[MDSCR_EL1] & DBG_MDSCR_KDE)) I've just noticed I'm seeing double here. Did a DBG_MDSCR_MDE can transliterated here? >>> + vcpu->arch.debug_flags |= KVM_ARM64_DEBUG_DIRTY; >>> + >>> + __debug_save_state(vcpu, &vcpu->arch.host_debug_state, >>> + kern_hyp_va(vcpu->arch.host_cpu_context)); >> >> doesn't the assmebly code jump across saving this state neither bits are >> set where this always saves the state? > > It doesn't. The save/restore functions are guarded by tests on > KVM_ARM64_DEBUG_DIRTY, just like we have skip_debug_state on all actions > involving the save/restore in the assembly version. > >> in any case, I feel some context is lost when this is moved away from >> assembly and understanding this patch would be easier if the semantics >> of these two _cond functions were documented. > > I can migrate the existing comments if you think that helps. > > Thanks, > > M. -- Alex Bennée -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html