WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: [Xen-devel] Information required on TRACE_VMEXIT working.

To: "aditya shevalkar" <aditya27783@xxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] Information required on TRACE_VMEXIT working.
From: "Li, Xin B" <xin.b.li@xxxxxxxxx>
Date: Mon, 27 Nov 2006 14:08:44 +0800
Delivery-date: Sun, 26 Nov 2006 22:08:56 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AccR5xd/iRPuT84jS2iIxCOiJ8+9qgAAR0Uw
Thread-topic: [Xen-devel] Information required on TRACE_VMEXIT working.
>I am trying to understand its use in 
>xen3.0.3\xen\arch\x86\hvm\vmx\vmx.c 
>file in the vmx_vmexit_handler function. 
>Also explain the meaning of its arguments and from where does 
>it fetches 
>the values for different arguments. 
>Some code snippets from above file are given below: 
>
>
>TRACE_VMEXIT(0,exit_reason); 
>switch ( exit_reason ) 
>{ 
>case EXIT_REASON_EXCEPTION_NMI: 
>
>
>
>vector &= INTR_INFO_VECTOR_MASK; 
>TRACE_VMEXIT(1,vector); 
>
>
>__vmread(EXIT_QUALIFICATION, &va); 
>__vmread(VM_EXIT_INTR_ERROR_CODE, &regs->error_code); 
>TRACE_VMEXIT(3, regs->error_code); 
>TRACE_VMEXIT(4, va); 
>
>Also trying to understand the following expression in the same file: 
>#define TRACE_VMEXIT(index,value) this_cpu(trace_values)[index]=value 
>

It's used to debug and do performance tunning.

We defined 5 unsigned long integers in current physical processor data
area to store the information of a VMExit, obviously for different types
of VMExit, we need store different information, for example, for VMExits
caused by IO instructions, we log:
1, exit reason, surely every VMExit has its own reason,
2, port number;
3, read or write;
4, TSC when the VMExit happen;
5, TSC when the VMEXit is done.
And then these data are logged into XenTrace (xen/common/trace.c), and
then we can use xentrace tools to get and translate these data,
analyzing these data we can know VMExits distribution, and average cost
of each type.

Surely you can log data you need to meet your own requirements.

-Xin

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>