arm64: KVM: implement lazy world switch for debug registers
authorMarc Zyngier <marc.zyngier@arm.com>
Wed, 7 May 2014 12:44:49 +0000 (13:44 +0100)
committerChristoffer Dall <christoffer.dall@linaro.org>
Fri, 11 Jul 2014 11:57:46 +0000 (04:57 -0700)
commitb0e626b380872b663918230fafdac128c34fea56
tree81b25e5f5cdb4523b747971ddd4698c3acd7a292
parentbdfb4b389c8d8f07e2d5b8e1291e01c789ba4aad
arm64: KVM: implement lazy world switch for debug registers

Implement switching of the debug registers. While the number
of registers is massive, CPUs usually don't implement them all
(A57 has 6 breakpoints and 4 watchpoints, which gives us a total
of 22 registers "only").

Also, we only save/restore them when MDSCR_EL1 has debug enabled,
or when we've flagged the debug registers as dirty. It means that
most of the time, we only save/restore MDSCR_EL1.

Reviewed-by: Anup Patel <anup.patel@linaro.org>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
arch/arm64/kernel/asm-offsets.c
arch/arm64/kvm/hyp.S