Re: State of debug register emulation

Avi Kivity
2008-04-29T23:10:28Z

Jan Kiszka wrote:
> This still leaves me with the question how to handle the case when the
> host sets and arms some debug registers to debug the guest and the
> latter does the same to debug itself. Guest access will be trapped, OK,
> but KVM will then have to decide which value should actually be
> transfered into the registers. Hmm, does SVM virtualizes all debug
> registers, leaving the real ones to the host?
>

There's no way this can work. There are still only four debug
registers, and the guest and host together can ask for eight different
addresses. It is theoretically doable by hiding all mappings to pages
that are debug targets, but it would probably double the kvm code size.

A good short-term compomise is to abort if the guest starts using
enabling a debug address register. A better solution might be to place
host debug addresses into unused guest debug registers, so that as long
as nr_guest_debug + nr_host_debug <= 4, we can still proceed.

--
Any sufficiently difficult bug is indistinguishable from a feature.