On 2/8/2016 8:29 PM, Tamas K Lengyel
wrote:
Currently I've only planned implementations for control-register
write events & guest-requests.
The other two also seem feasible though, I might give adding those a
shot sometime after sending the other patches.
There's the debugging architecture, hypervisor control of that is
possible on both 32-bit & 64-bit ARM.
It isn't as easy as for X86 though, where MTF is a
hypervisor-internal feature and INT3 can be
trapped specifically, whereas on ARM granularity of trap-setting is
less of a concern apparently.
For this reason, the only issue I see here is the performance
penalty these traps would cause for
arbitrary software breakpoints (for obvious reasons that doesn't
matter in the case of single-stepping).
For INT3, the ARM equivalent is be the BKPT/BRK (set HDCR.TDE on
AArch32/MDCR_EL2.TDE AArch64) instruction.
Trapping on this instruction implies trapping on
- AArch32: some other debug exceptions (looking @ B1.8.9, ARMv7 DDI
0406C.b)
- AArch64: *all software debug exceptions* + *all debug register
accesses* (this might cause some headaches)
For MTF-like functionality, the debug architecture also provides
ways for single-stepping.
That would similarly generate software breakpoint exceptions which
can be routed to the hypervisor.
Corneliu.