Arun Sharma
2005-Jul-07 21:50 UTC
[Xen-devel] [PATCH] Use hypercalls instead of accessing debug registers directly.
Use hypercalls instead of accessing debug registers directly. Signed-off-by: Jun Nakajima <jun.nakajima@intel.com> Signed-off-by: Arun Sharma <arun.sharma@intel.com> --- a/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/traps.c Wed Jul 6 23:44:28 2005 +++ b/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/traps.c Thu Jul 7 14:38:19 2005 @@ -666,7 +666,7 @@ } #endif - asm("movq %%db6,%0" : "=r" (condition)); + condition = HYPERVISOR_get_debugreg(6); if (notify_die(DIE_DEBUG, "debug", regs, condition, error_code, SIGTRAP) == NOTIFY_STOP) { @@ -714,7 +714,8 @@ info.si_addr = (void __user *)regs->rip; force_sig_info(SIGTRAP, &info, tsk); clear_dr7: - asm volatile("movq %0,%%db7"::"r"(0UL)); + HYPERVISOR_set_debugreg(7, 0); + notify_die(DIE_DEBUG, "debug", regs, condition, 1, SIGTRAP); return regs; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Pratt
2005-Jul-07 23:05 UTC
[Xen-devel] RE: [PATCH] Use hypercalls instead of accessing debug registers directly.
> Use hypercalls instead of accessing debug registers directly.Is this based on measurement? If the debug registers aren''t on the critical path its probably not worth the change. If they are, they should probably be part of a multicall. Best, Ian> Signed-off-by: Jun Nakajima <jun.nakajima@intel.com> > Signed-off-by: Arun Sharma <arun.sharma@intel.com> > > --- a/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/traps.c > Wed Jul 6 23:44:28 2005 > +++ b/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/traps.c > Thu Jul 7 14:38:19 2005 > @@ -666,7 +666,7 @@ > } > #endif > > - asm("movq %%db6,%0" : "=r" (condition)); > + condition = HYPERVISOR_get_debugreg(6); > > if (notify_die(DIE_DEBUG, "debug", regs, condition, error_code, > SIGTRAP) == > NOTIFY_STOP) { > @@ -714,7 +714,8 @@ > info.si_addr = (void __user *)regs->rip; > force_sig_info(SIGTRAP, &info, tsk); > clear_dr7: > - asm volatile("movq %0,%%db7"::"r"(0UL)); > + HYPERVISOR_set_debugreg(7, 0); > + > notify_die(DIE_DEBUG, "debug", regs, condition, 1, SIGTRAP); > return regs; > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Arun Sharma
2005-Jul-07 23:38 UTC
[Xen-devel] Re: [PATCH] Use hypercalls instead of accessing debug registers directly.
Ian Pratt wrote:> > > >>Use hypercalls instead of accessing debug registers directly. > > > Is this based on measurement? If the debug registers aren''t on the > critical path its probably not worth the change. If they are, they > should probably be part of a multicall.It''s not on the critical path. We probably should just emulate the instruction on the GP fault. -Arun _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2005-Jul-08 08:49 UTC
[Xen-devel] Re: [PATCH] Use hypercalls instead of accessing debug registers directly.
On 8 Jul 2005, at 00:38, Arun Sharma wrote:>>> Use hypercalls instead of accessing debug registers directly. >> Is this based on measurement? If the debug registers aren''t on the >> critical path its probably not worth the change. If they are, they >> should probably be part of a multicall. > > It''s not on the critical path. We probably should just emulate the > instruction on the GP fault.I''ve now added the emulation. -- keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel