> 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@xxxxxxxxx>
> Signed-off-by: Arun Sharma <arun.sharma@xxxxxxxxx>
>
> --- 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@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|