Re: [Xen-devel] [PATCH 07/11] x86/emul: Add pending_dbg field to x86_event

2018-06-08 Thread Andrew Cooper
On 08/06/18 13:34, Jan Beulich wrote: On 04.06.18 at 15:59, wrote: >> @@ -82,9 +83,16 @@ void pv_inject_event(const struct x86_event *event) >> error_code |= PFEC_user_mode; >> >> trace_pv_page_fault(event->cr2, error_code); >> -} >> -else >> +break;

Re: [Xen-devel] [PATCH 07/11] x86/emul: Add pending_dbg field to x86_event

2018-06-08 Thread Jan Beulich
>>> On 04.06.18 at 15:59, wrote: > @@ -82,9 +83,16 @@ void pv_inject_event(const struct x86_event *event) > error_code |= PFEC_user_mode; > > trace_pv_page_fault(event->cr2, error_code); > -} > -else > +break; > + > +case TRAP_debug: > +

Re: [Xen-devel] [PATCH 07/11] x86/emul: Add pending_dbg field to x86_event

2018-06-06 Thread Roger Pau Monné
On Wed, Jun 06, 2018 at 05:50:38PM +0100, Andrew Cooper wrote: > On 06/06/18 17:46, Roger Pau Monné wrote: > > On Mon, Jun 04, 2018 at 02:59:11PM +0100, Andrew Cooper wrote: > >> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c > >> index bfa3a0d..39c9ddc 100644 > >> ---

Re: [Xen-devel] [PATCH 07/11] x86/emul: Add pending_dbg field to x86_event

2018-06-06 Thread Andrew Cooper
On 06/06/18 17:46, Roger Pau Monné wrote: > On Mon, Jun 04, 2018 at 02:59:11PM +0100, Andrew Cooper wrote: >> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c >> index bfa3a0d..39c9ddc 100644 >> --- a/xen/arch/x86/hvm/vmx/vmx.c >> +++ b/xen/arch/x86/hvm/vmx/vmx.c >> @@ -2483,7

Re: [Xen-devel] [PATCH 07/11] x86/emul: Add pending_dbg field to x86_event

2018-06-06 Thread Roger Pau Monné
On Mon, Jun 04, 2018 at 02:59:11PM +0100, Andrew Cooper wrote: > diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c > index bfa3a0d..39c9ddc 100644 > --- a/xen/arch/x86/hvm/vmx/vmx.c > +++ b/xen/arch/x86/hvm/vmx/vmx.c > @@ -2483,7 +2483,7 @@ void update_guest_eip(void) > } >

[Xen-devel] [PATCH 07/11] x86/emul: Add pending_dbg field to x86_event

2018-06-04 Thread Andrew Cooper
All #DB exceptions result in an update of %dr6, but this isn't captured in Xen's handling. PV guests generally work by modifying %dr6 before raising #DB, whereas HVM guests do nothing and have a single-step special case in the lowest levels of {vmx,svm}_inject_event(). All of this is buggy, but