From: Alexander Graf <agraf-l3A5Bk7waGM@public.gmane.org>
To: Liu Yu-B13201 <B13201-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Cc: hollis-yUx37fBWTUITNcAmw9vGhQ@public.gmane.org,
kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 4/4] kvmppc/booke: exit_nr fixup for guest debug single step
Date: Wed, 03 Feb 2010 12:19:07 +0100 [thread overview]
Message-ID: <4B695BAB.2070000@suse.de> (raw)
In-Reply-To: <0A1FE637C2C7E148B9573BB60CC630E5762AFC-bKEhWGtIRUJ4Lp7cDGe+DVjVikpgYyvb5NbjCUgZEJk@public.gmane.org>
Liu Yu-B13201 wrote:
>
>
>
>> -----Original Message-----
>> From: Alexander Graf [mailto:agraf-l3A5Bk7waGM@public.gmane.org]
>> Sent: Wednesday, February 03, 2010 6:14 PM
>> To: Liu Yu-B13201
>> Cc: hollis-yUx37fBWTUITNcAmw9vGhQ@public.gmane.org; kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org;
>> kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> Subject: Re: [PATCH 4/4] kvmppc/booke: exit_nr fixup for
>> guest debug single step
>>
>> Liu Yu-B13201 wrote:
>>
>>>
>>>
>>>
>>>
>>>> -----Original Message-----
>>>> From: kvm-ppc-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>>>> [mailto:kvm-ppc-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org] On Behalf Of Alexander Graf
>>>> Sent: Wednesday, February 03, 2010 5:03 PM
>>>> To: Liu Yu-B13201
>>>> Cc: hollis-yUx37fBWTUITNcAmw9vGhQ@public.gmane.org; kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org;
>>>> kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; Liu Yu-B13201
>>>> Subject: Re: [PATCH 4/4] kvmppc/booke: exit_nr fixup for
>>>> guest debug single step
>>>>
>>>>
>>>> Am 03.02.2010 um 08:53 schrieb Liu Yu <yu.liu-KZfg59tc24xl57MIdRCFDg@public.gmane.org>:
>>>>
>>>>
>>>>
>>>>> As BOOKE doesn't have hardware support for virtualization,
>>>>> hardware never know who's guest and host.
>>>>>
>>>>> When enable hardware single step in guest,
>>>>> we cannot disabled it at the point we switch back to host.
>>>>>
>>>>>
>>>> Why not? We directly arrive in our code. So we can just
>>>> disable it, no?
>>>>
>>>> Or does that break when you'd try to debug the guest
>>>> interrupt handlers?
>>>>
>>>>
>>> That's the hardware limitition.
>>> Assume received itlb miss interrupt, but it doesn't clear
>>>
>> MSR_DE in MSR,
>>
>>> so on the exit path single step still work and then debug
>>>
>> interrupt is
>>
>>> triggled.
>>>
>>>
>> MSRDE is set to 0 by critical class interrupts
>> unless Category E.ED is supported, by Debug
>> interrupts, and by Machine Check interrupts,
>> and is left unchanged by all other interrupts.
>>
>> Great.
>>
>> So when single stepping is enabled, you jump into the guest,
>> get an itlb
>> miss, get out, still have DE set, get in KVM's own DE handler and can
>> process things from there.
>>
>> Could you check if the debug instruction was on PR=0? If so, you can
>> just rfi and be good, right?
>>
>>
>
> Hr?
> The moment we found this happen we've already saved the guest and loaded host on exit path
> Rfi will make exit path again which means save guest again.
>
Well the guest saving code is in our hands. So we can just modify the
debug interrupt handler in booke_interrupts.S to check for PR=0 first
thing and then decide whether to save to guest state or return to the
host kernel.
I think that'd make it a lot cleaner.
Alex
next prev parent reply other threads:[~2010-02-03 11:19 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-03 7:53 [PATCH RESEND 0/4] kvmppc/booke: add guest debug support Liu Yu
[not found] ` <1265183633-2230-1-git-send-email-yu.liu-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2010-02-03 7:53 ` [PATCH 1/4] kvmppc: guest debug definitions Liu Yu
[not found] ` <1265183633-2230-2-git-send-email-yu.liu-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2010-02-03 7:53 ` [PATCH 2/4] kvmppc/booke: switch shadow/host debug registers on guest enter/exit path Liu Yu
[not found] ` <1265183633-2230-3-git-send-email-yu.liu-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2010-02-03 7:53 ` [PATCH 3/4] kvmppc/booke: guest debug support Liu Yu
[not found] ` <1265183633-2230-4-git-send-email-yu.liu-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2010-02-03 7:53 ` [PATCH 4/4] kvmppc/booke: exit_nr fixup for guest debug single step Liu Yu
[not found] ` <1265183633-2230-5-git-send-email-yu.liu-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2010-02-03 9:03 ` Alexander Graf
[not found] ` <DEFF369D-B8B0-4871-9786-BB39B122CAFD-l3A5Bk7waGM@public.gmane.org>
2010-02-03 9:24 ` Liu Yu-B13201
[not found] ` <0A1FE637C2C7E148B9573BB60CC630E5762ADE-bKEhWGtIRUJ4Lp7cDGe+DVjVikpgYyvb5NbjCUgZEJk@public.gmane.org>
2010-02-03 10:14 ` Alexander Graf
[not found] ` <4B694C6C.3020903-l3A5Bk7waGM@public.gmane.org>
2010-02-03 11:14 ` Liu Yu-B13201
[not found] ` <0A1FE637C2C7E148B9573BB60CC630E5762AFC-bKEhWGtIRUJ4Lp7cDGe+DVjVikpgYyvb5NbjCUgZEJk@public.gmane.org>
2010-02-03 11:19 ` Alexander Graf [this message]
2010-02-03 10:25 ` [PATCH 3/4] kvmppc/booke: guest debug support Jan Kiszka
2010-02-03 8:57 ` [PATCH 1/4] kvmppc: guest debug definitions Alexander Graf
2010-02-03 9:17 ` Liu Yu-B13201
2010-02-03 9:51 ` Alexander Graf
2010-02-03 10:35 ` Liu Yu-B13201
[not found] ` <0A1FE637C2C7E148B9573BB60CC630E5762AF7-bKEhWGtIRUJ4Lp7cDGe+DVjVikpgYyvb5NbjCUgZEJk@public.gmane.org>
2010-02-03 10:37 ` Alexander Graf
2010-02-03 8:52 ` [PATCH RESEND 0/4] kvmppc/booke: add guest debug support Alexander Graf
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=4B695BAB.2070000@suse.de \
--to=agraf-l3a5bk7wagm@public.gmane.org \
--cc=B13201-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=hollis-yUx37fBWTUITNcAmw9vGhQ@public.gmane.org \
--cc=kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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