|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |