From: Jan Kiszka <jan.kiszka@siemens.com>
To: Joerg Roedel <joerg.roedel@amd.com>
Cc: kvm-devel <kvm-devel@lists.sourceforge.net>
Subject: Re: State of debug register emulation
Date: Tue, 29 Apr 2008 18:09:27 +0200 [thread overview]
Message-ID: <48174837.1000505@siemens.com> (raw)
In-Reply-To: <20080429144054.GZ6567@amd.com>
Joerg Roedel wrote:
> On Tue, Apr 29, 2008 at 03:07:25PM +0200, Jan Kiszka wrote:
>> Hi,
>>
>> looks like we are getting better and better here in hitting yet
>> unsupported corner-case features of KVM :). This time our guest fiddles
>> with hardware debugging registers, but quickly gets unhappy as they do
>> not yet have the expected effect.
>
> KVM is mostly tested with guests that run with paging. So a 16 bit
> protected mode guest is not tested very well :)
Yes, we know (we also had a bit fun with stock QEMU in corner cases).
But that may change now... :)
>
>> Joerg, I found you SVM-related patch series in the archive which does
>> not seem to have raised much responses. Is this general direction OK?
>> Does it allow self-debugging of guests? But how are conflicts resolved
>> if both guest and host need the physical registers (host debugging the
>> guest which is debugging itself)?
>
> I sent a patchset in the past to enable guest debugging for SVM which
> means debugging the guest from outside using gdb. But I was not able to
> test these patches because the userspace side of guest debugging is
> broken in the kvm-qemu.
> Debugging in the guest should work without problems. The debug registers
> are switched between guest and host if the guest uses them. So there
> should be no problems when the guest and the host using the debug
> registers.
I'm currently digging my way through the current VMX code, but I cannot
confirm this. Not sure what SVM does, but as far as I understood the VMX
side, only DR7 is saved/restored in hardware. The rest is KVM's job.
Unfortunately the access to the real debug registers only happens "if
(vcpu->guest_debug.enabled)". And as all DR accesses of the guest are
trapped, but the desired transfers to/from guest registers are nops,
this cannot work yet, at least on VMX.
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?
>
>> I would try to dig into the VMX side if the general architecture is
>> -mostly- clear. [ Sorry, Joerg, someone put the latter type of HW on my
>> desk :->. Hope I can once check our stuff against SVM as well! ]
>
> With some debug output from SVM I can better help to debug your
> problems ;-)
I'm sure :). But I guess this topic has a few common aspects to be
solved, too. So we may ideally end up with a single series of
debug-enabling patches for KVM (maybe even fixing userland - we are not
totally unfamiliar with the gdbstub here).
Jan
--
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
next prev parent reply other threads:[~2008-04-29 16:09 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-29 13:07 State of debug register emulation Jan Kiszka
2008-04-29 14:40 ` Joerg Roedel
2008-04-29 16:09 ` Jan Kiszka [this message]
2008-04-29 23:10 ` Avi Kivity
2008-05-02 8:47 ` Jan Kiszka
2008-05-02 9:54 ` Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48174837.1000505@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=joerg.roedel@amd.com \
--cc=kvm-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox