[PATCH v2 08/21] arm64: KVM: Implement debug save/restore
Alex Bennée
alex.bennee at linaro.org
Tue Dec 1 05:19:24 PST 2015
Marc Zyngier <marc.zyngier at arm.com> 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 at arm.com>
>>> ---
>>> 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
More information about the linux-arm-kernel
mailing list