Re: [PATCH 4/5] KVM: PPC: BOOKE: Clear guest dbsr in userspace exit KVM_EXIT_DEBUG

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

 



On Mon, 2014-08-04 at 13:22 +0530, Bharat Bhushan wrote:
> Dbsr is not visible to userspace and we do not think any need to
> expose this to userspace because:
>   Userspace cannot inject debug interrupt to guest (as this
>   does not know guest ability to handle debug interrupt), so
>   userspace will always clear DBSR.
>   Now if userspace has to always clear DBSR in KVM_EXIT_DEBUG
>   handling then clearing dbsr in kernel looks simple as this
>   avoid doing SET_SREGS/set_one_reg() to clear DBSR
> 
> Signed-off-by: Bharat Bhushan <Bharat.Bhushan@xxxxxxxxxxxxx>
> ---
>  arch/powerpc/kvm/booke.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
> index 322da7d..5c2e26a 100644
> --- a/arch/powerpc/kvm/booke.c
> +++ b/arch/powerpc/kvm/booke.c
> @@ -735,6 +735,17 @@ static int kvmppc_handle_debug(struct kvm_run *run, struct kvm_vcpu *vcpu)
>  	struct debug_reg *dbg_reg = &(vcpu->arch.shadow_dbg_reg);
>  	u32 dbsr = vcpu->arch.dbsr;
>  
> +	/* Clear guest dbsr (vcpu->arch.dbsr).
> +	 * dbsr is not visible to userspace and we do not think any
> +	 * need to expose this to userspace because:
> +	 * Userspace cannot inject debug interrupt to guest (as this does
> +	 * not know guest ability to handle debug interrupt), so userspace
> +	 * will always clear DBSR.
> +	 * Now if userspace has to always clear DBSR in KVM_EXIT_DEBUG
> +	 * handling then clearing here looks simple as this
> +	 * avoid doing SET_SREGS/set_one_reg() to clear DBSR
> +	 */
> +	vcpu->arch.dbsr = 0;
>  	run->debug.arch.status = 0;
>  	run->debug.arch.address = vcpu->arch.pc;
>  

I think the changelog is adequate -- I don't think we need to be so
verbose in the code itself.  The question was just whether this was a
userspace-visible change, and it isn't.

FWIW, I think dbsr should be visible to userspace in general (regardless
of whether it's cleared here), because all guest registers should be
visible to userspace.  I may be debugging a guest through means that
don't require owning debug resources, such as stopping and inspecting a
guest that has hung or crashed.

-Scott


--
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