From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Vrabel Subject: [PATCH] x86/hvm: put value of emulated register reads into trace records Date: Thu, 10 May 2012 15:59:19 +0100 Message-ID: <1336661959-13259-1-git-send-email-david.vrabel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xensource.com Cc: David Vrabel , George Dunlap List-Id: xen-devel@lists.xenproject.org From: David Vrabel The tracepoint for emulated MMIO and I/O port reads was always before the emulated read or write was done. This means that for reads the register value in the trace record was always 0. So for reads, move the tracepoint until the register value is available. Signed-off-by: David Vrabel Cc: George Dunlap --- A candidate for 4.0 and 4.1? --- xen/arch/x86/hvm/emulate.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c index 82efd1a..3a7fe95 100644 --- a/xen/arch/x86/hvm/emulate.c +++ b/xen/arch/x86/hvm/emulate.c @@ -191,7 +191,8 @@ static int hvmemul_do_io( p->df = df; p->data = value; - hvmtrace_io_assist(is_mmio, p); + if ( dir == IOREQ_WRITE ) + hvmtrace_io_assist(is_mmio, p); if ( is_mmio ) { @@ -232,6 +233,9 @@ static int hvmemul_do_io( } finish_access: + if ( dir == IOREQ_READ ) + hvmtrace_io_assist(is_mmio, p); + if ( p_data != NULL ) memcpy(p_data, &vio->io_data, size); -- 1.7.2.5