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

Re: [Xen-devel] [V0 PATCH] SVM: set/unset TF flag for single_step



On Wed, 2 Jul 2014 14:52:38 -0700
Mukesh Rathor <mukesh.rathor@xxxxxxxxxx> wrote:

> On Wed, 02 Jul 2014 09:38:40 +0100
> "Jan Beulich" <JBeulich@xxxxxxxx> wrote:
> 
> > >>> On 02.07.14 at 05:36, <boris.ostrovsky@xxxxxxxxxx> wrote:
> > >> --- a/xen/arch/x86/hvm/svm/svm.c
> > >> +++ b/xen/arch/x86/hvm/svm/svm.c
> > >> @@ -2350,6 +2350,8 @@ void svm_vmexit_handler(struct
> > >> cpu_user_regs *regs)
> > >>      case VMEXIT_EXCEPTION_DB:
> > >>          if ( !v->domain->debugger_attached )
> > >>              goto exit_and_crash;
> > >> +        else
> > >> +            regs->eflags &= ~X86_EFLAGS_TF;
> > >>          domain_pause_for_debugger();
> > >>          break;
> > > 
> > > 
> > > I poked around debugger code and it looks to me that 
> > > tools/debugger/gdbsx/xg:_change_TF() manages this flag.
> 
> _change_TF() only manages TF if XEN_DOMCTL_debug_op fails. Moreover,
> TF handling is intended for PV. For HVM, xen provides 
> XEN_DOMCTL_debug_op which sets v->arch.hvm_vcpu.single_step.
> 
> > Indeed it shouldn't be the hypervisor to deal with that (unless it
> > had a built-in one), but the debugger attached.
> 
> Correct. But, the hyp provides abi hvm_debug_op 
> (XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_ON) that it needs to honor for svm
> like it does for vmx.

I should rephrase that from "it needs" to "it would be nice to" as 
all debuggers then can just use hvm_vcpu.single_step internally or
via hvm_debug_op(). 

Boris rightly points out that the cpu_has_monitor_trap_flag check in
hvm_debug_op() would still be an issue, and I missed that check. It could
be removed or an intel check could be added in that if statement.

hvm_debug_op():
            rc = -ENOSYS;
            if ( !cpu_has_monitor_trap_flag ) <---
                break;

hope that makes sense. if in agreement, i can send v1.

thanks
Mukesh

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.