[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] no cycles for certain xentrace entries



On Thu, Sep 30, George Dunlap wrote:

> Have you tried using xenalyze to analyze your trace?
> 
> http://xenbits.xensource.com/ext/xenalyze.hg

I will try it, thanks.

To build it, these changes are needed:


xenalyze.c:8038:âerror:âignoringâreturnâvalueâofâ'pipe',âdeclaredâwithâ
attributeâwarn_unused_result
xenalyze.c:7731: error: 'toplevel' may be used uninitialized in this function
xenalyze.c:6168: error: 'e.pte' may be used uninitialized in this function
xenalyze.c:6168: error: 'e.addr' may be used uninitialized in this function
xenalyze.c:6168: error: 'e.eip' may be used uninitialized in this function
xenalyze.c:7360: error: 'first_tsc' may be used uninitialized in this function
xenalyze.c:6611: error: 'sevt.new_runstate' may be used uninitialized in this 
function
xenalyze.c:6611: error: 'sevt.old_runstate' may be used uninitialized in this 
function
xenalyze.c:6591: error: 'type' may be used uninitialized in this function

---
 xenalyze.c |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

--- xenalyze.hg/xenalyze.c
+++ xenalyze.hg/xenalyze.c
@@ -6167,6 +6167,7 @@ void pv_ptwr_emulation_process(struct re
         unsigned long long pte, addr, eip;
     } e;
     
+    memset(&e, 0x5a, sizeof(e));
     switch ( pevt.minor ) {
     case PV_PTWR_EMULATION_PAE:
         if ( pevt.x64 )
@@ -6622,6 +6623,7 @@ void sched_runstate_process(struct pcpu_
         sevt.old_runstate = _sevt.old_runstate;
         break;
     case 2:
+    default:
         type = CONTINUE;
         sevt.new_runstate = sevt.old_runstate = RUNSTATE_RUNNING;
         break;
@@ -7366,8 +7368,7 @@ void process_lost_records(struct pcpu_in
                 ri->extra_words);
         dump_unexpected_and_exit(ri);
     }
-    else
-        first_tsc = r->first_tsc;
+    first_tsc = r->first_tsc;
 
     if(opt.dump_cooked || opt.dump_all)
     {
@@ -7728,7 +7729,7 @@ void create_dump_header(struct record_in
 
 int find_toplevel_event(struct record_info *ri)
 {
-    int toplevel, i, count;
+    int toplevel = 0, i, count;
 
     for(i=0, count=0; i<TOPLEVEL_MAX; i++)
         if(ri->evt.main & (1UL<<i))
@@ -8035,7 +8036,8 @@ void progress_child_exec(void) {
 void progress_init(void) {
     int pid;
 
-    pipe(G.progress.pipe);
+    if (pipe(G.progress.pipe) < 0)
+           perror("pipe");
 
     if(!(pid = fork())) {
         progress_child_exec();

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.