Re: [PATCH 4/4] kvmppc/booke: exit_nr fixup for guest debug single step

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Liu Yu-B13201 wrote:
>  
>
>   
>> -----Original Message-----
>> From: Alexander Graf [mailto:agraf@xxxxxxx] 
>> Sent: Wednesday, February 03, 2010 6:14 PM
>> To: Liu Yu-B13201
>> Cc: hollis@xxxxxxxxxxxxxx; kvm-ppc@xxxxxxxxxxxxxxx; 
>> kvm@xxxxxxxxxxxxxxx
>> 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@xxxxxxxxxxxxxxx 
>>>> [mailto:kvm-ppc-owner@xxxxxxxxxxxxxxx] On Behalf Of Alexander Graf
>>>> Sent: Wednesday, February 03, 2010 5:03 PM
>>>> To: Liu Yu-B13201
>>>> Cc: hollis@xxxxxxxxxxxxxx; kvm-ppc@xxxxxxxxxxxxxxx; 
>>>> kvm@xxxxxxxxxxxxxxx; 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@xxxxxxxxxxxxx>:
>>>>
>>>>     
>>>>         
>>>>> 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

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux