misc files
authorcompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Thu, 29 May 2003 13:35:22 +0000 (13:35 +0000)
committercompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Thu, 29 May 2003 13:35:22 +0000 (13:35 +0000)
git-svn-id: http://ltt.polymtl.ca/svn@18 04897980-b3bd-0310-b5e0-8ef037075253

ltt/branches/poly/misc/EventAPI.c [new file with mode: 0644]
ltt/branches/poly/misc/EventAPI.h [new file with mode: 0644]
ltt/branches/poly/misc/LTTTypes.h [new file with mode: 0644]
ltt/branches/poly/misc/README [new file with mode: 0644]
ltt/branches/poly/misc/crc32.tab [new file with mode: 0644]
ltt/branches/poly/misc/default.event [new file with mode: 0644]
ltt/branches/poly/misc/parser.c [new file with mode: 0644]
ltt/branches/poly/misc/parser.h [new file with mode: 0644]
ltt/branches/poly/misc/trace1.stats [new file with mode: 0644]

diff --git a/ltt/branches/poly/misc/EventAPI.c b/ltt/branches/poly/misc/EventAPI.c
new file mode 100644 (file)
index 0000000..578847a
--- /dev/null
@@ -0,0 +1,1112 @@
+#include <stdlib.h> 
+#include <string.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <linux/errno.h>  
+
+//#include <sys/time.h>
+
+#include "LTTTypes.h"  
+
+#include "parser.h"
+#include "EventAPI.h"
+
+//during the test
+#include "default.h"
+
+sequence facilities;
+int facilitiesNum, totalNumEvents;
+kernel_facility ** idToFacility;   //corresponding between event id and kernel facility, it points to kFacilities
+kernel_facility ** kFacilities;
+
+int intSize[]   = {sizeof(int8_t),  sizeof(int16_t),   sizeof(int32_t),
+                   sizeof(int64_t), sizeof(short int), sizeof(int),
+                   sizeof(long) };
+int uintSize[]  = {sizeof(uint8_t),  sizeof(uint16_t),   sizeof(uint32_t),
+                   sizeof(uint64_t), sizeof(unsigned short int), 
+                   sizeof(unsigned int),  sizeof(unsigned long) };
+int floatSize[] = {-1, -1, sizeof(float), sizeof(double),
+                   -1,     sizeof(float), sizeof(double)};
+
+//will be deleted later, test
+char *buf[] = {"TRACE_EV_START",        "TRACE_EV_SYSCALL_ENTRY", "TRACE_EV_SYSCALL_EXIT", "TRACE_EV_TRAP_ENTRY",
+               "TRACE_EV_TRAP_EXIT",    "TRACE_EV_IRQ_ENTRY",     "TRACE_EV_IRQ_EXIT",     "TRACE_EV_SCHEDCHANGE",
+               "TRACE_EV_KERNEL_TIMER", "TRACE_EV_SOFT_IRQ",      "TRACE_EV_PROCESS",      "TRACE_EV_FILE_SYSTEM",
+               "TRACE_EV_TIMER",        "TRACE_EV_MEMORY",        "TRACE_EV_SOCKET",       "TRACE_EV_IPC",
+               "TRACE_EV_NETWORK",      "TRACE_EV_BUFFER_START",  "TRACE_EV_BUFFER_END",   "TRACE_EV_NEW_EVENT",
+               "TRACE_EV_CUSTOM",       "TRACE_EV_CHANGE_MASK",   "TRACE_EV_HEARTBEAT"  };
+FILE * fp;
+void print_event( event_struct * ev){
+  int i,j;
+  sequence * baseField = ev->base_field;
+  char* ch;
+  field_handle * fHandle;
+  void* curPos = ev->data;
+  void * offset;
+  data_type dt, edt;
+
+  fprintf(fp,"Event id = %d, %s\n",ev->event_id, buf[ev->event_id]);
+
+  for(i=0;i<baseField->position;i++){
+    fHandle = (field_handle *) baseField->array[i];
+    dt = fHandle->field_type;
+    fprintf(fp,"%s: ", fHandle->name);
+    if(dt == INT || dt == UINT || dt == FLOAT || dt == ENUM){
+      if(dt == FLOAT){
+       if(fHandle->size == 4)fprintf(fp, "%f\n",*(float*)(curPos+fHandle->offset));
+       else   fprintf(fp, "%f\n",(float)(*(double*)(curPos+fHandle->offset)));
+      }else{
+       if(fHandle->size == 1)fprintf(fp, "%d\n",(int)(*(int8_t *)(curPos+fHandle->offset)));
+       else if(fHandle->size == 2)fprintf(fp, "%d\n",(int)(*(int16_t *)(curPos+fHandle->offset)));
+       else if(fHandle->size == 4)fprintf(fp, "%d\n",(int)(*(int32_t *)(curPos+fHandle->offset)));
+       else if(fHandle->size == 8)fprintf(fp, "%d\n",(int)(*(int64_t *)(curPos+fHandle->offset)));
+      }
+    }else if(dt == ARRAY || dt == SEQUENCE ){
+      ch = (char*)(curPos+fHandle->offset);
+      offset = curPos+fHandle->offset;
+      for(j=0;j<fHandle->nbElements;j++){
+       edt = fHandle->element_type;
+       if(edt == INT || edt == UINT || edt == FLOAT || edt == ENUM){
+         if(edt == FLOAT){
+           if(fHandle->size == 4)fprintf(fp, "%f, ",*(float*)offset);
+           else   fprintf(fp, "%f\n",(float)(*(double*)offset));
+         }else{
+           if(fHandle->size == 1)fprintf(fp, "%d, ",(int)(*(int8_t *)offset));
+           else if(fHandle->size == 2)fprintf(fp, "%d, ",(int)(*(int16_t *)offset));
+           else if(fHandle->size == 4)fprintf(fp, "%d, ",(int)(*(int32_t *)offset));
+           else if(fHandle->size == 8)fprintf(fp, "%d, ",(int)(*(int64_t *)offset));
+         }
+         offset += fHandle->size;
+       }else if(edt == STRING){
+         fprintf(fp,"%s, ", ch);
+         while(1){
+           if(*ch == '\0'){ch++; break;}    //string ended with '\0'   
+           ch++;
+         }
+       }else if(edt == ARRAY || edt == SEQUENCE || edt == STRUCT){ // not supported
+       }
+      }
+      fprintf(fp,"\n");
+    }else if(dt == STRING){
+      fprintf(fp,"%s\n", (char*)(curPos+fHandle->offset));      
+    }else if (dt == STRUCT){ //not supported
+    }
+  }
+
+  fprintf(fp,"\n\n");
+  //  fflush(fp);
+}
+//end
+
+/*****************************************************************************
+ *Function name
+ * parseEventAndTypeDefinition: main function to parse event and type definition 
+ ****************************************************************************/
+void parseEventAndTypeDefinition(char * facilityName){
+  char *token;
+  parse_file in;
+  char buffer[BUFFER_SIZE];
+  unsigned long checksum;
+  event *ev;
+  sequence  events;
+  table namedTypes;
+  sequence unnamedTypes;
+
+  sequence_init(&events);
+  table_init(&namedTypes);
+  sequence_init(&unnamedTypes);
+
+  in.buffer = buffer;
+  in.lineno = 0;
+  in.error = error_callback;
+  in.name = appendString(facilityName,".event");
+
+  in.fp = fopen(in.name, "r");
+  if(!in.fp )in.error(&in,"cannot open input file");
+  while(1){
+    token = getToken(&in);
+    if(in.type == ENDFILE) break;
+    
+    if(strcmp("event",token) == 0) {
+      ev = (event *)memAlloc(sizeof(event));
+      sequence_push(&events,ev);
+      parseEvent(&in,ev, &unnamedTypes, &namedTypes);
+    }
+    else if(strcmp("type",token) == 0) {
+      parseTypeDefinition(&in, &unnamedTypes, &namedTypes);
+    }
+    else in.error(&in,"event or type token expected");
+  }
+  
+  fclose(in.fp);
+
+  checkNamedTypesImplemented(&namedTypes);
+
+  generateChecksum(facilityName, &checksum, &events);
+
+  generateFacilityHandle(facilityName,checksum,&events);
+
+
+  free(in.name);
+  freeEvents(&events);
+  sequence_dispose(&events);
+  freeNamedType(&namedTypes);
+  table_dispose(&namedTypes);
+  freeTypes(&unnamedTypes);
+  sequence_dispose(&unnamedTypes);
+
+}
+
+/*****************************************************************************
+ *Function name
+ *    generateFacilityHandle    : generate facility handle 
+ *Input params 
+ *    facName                   : facility name
+ *    checksum                  : checksum of the facility          
+ *    events                    : sequence of events                     
+ ****************************************************************************/
+void  generateFacilityHandle(char * facName, unsigned long checksum, sequence * events){
+  int i,j, pos,nbEvents=0;
+  facility_handle * facHandle;
+  event_handle * evHandle;
+  field_handle * fldHandle;
+  event * ev;
+  field *fld;
+  data_type dt;
+  off_t offset;
+
+  //get number of events which do not have nested struct
+  for(i=0;i<events->position;i++){
+    ev = (event *)events->array[i];
+    if(ev->nested)continue;
+    nbEvents++;
+  }
+
+  //allocate memory for the facility
+  facHandle = (facility_handle *) memAlloc(sizeof(facility_handle));
+  facHandle->name = allocAndCopy(facName);
+  facHandle->checksum = checksum;
+  facHandle->nbEvents = events->position;
+  facHandle->events = (event_handle **)memAlloc(sizeof(event_handle*) * nbEvents);
+  
+  //allocate memory for event handles and associate them with the facility
+  evHandle = (event_handle *)memAlloc(sizeof(event_handle) * nbEvents);
+  for(i=0;i<nbEvents;i++){
+    sequence_init(&evHandle[i].base_field);
+    facHandle->events[i] = &evHandle[i];
+  }
+
+  j = -1;
+  for(pos=0;pos<events->position;pos++){
+    ev = (event *)events->array[pos];
+    if(ev->nested)continue;
+    j++;
+    evHandle[j].name = allocAndCopy(ev->name);
+    evHandle[j].id = pos;
+    evHandle[j].size_fixed = 1; //by default there are no string or sequence
+    if(ev->type->fields.position){
+      fldHandle = (field_handle *)memAlloc(sizeof(field_handle) * ev->type->fields.position);      
+    }
+    evHandle[j].latest_block = -1;
+    evHandle[j].latest_event = -1;
+    offset = EVENT_HEADER_SIZE();  //the beginning of the event is id and time delta
+    for(i=0;i<ev->type->fields.position;i++){
+      fld = (field *)ev->type->fields.array[i];
+      fldHandle[i].name = allocAndCopy(fld->name);
+      fldHandle[i].field_type = fld->type->type;
+      dt = fld->type->type;
+      fldHandle[i].fmt = NULL;
+      fldHandle[i].element_type = NONE;
+      fldHandle[i].sequence_size = -1;
+      fldHandle[i].offset = -1;
+      fldHandle[i].end_field = -1;
+      if(dt==UINT || dt==INT || dt==FLOAT || dt==ENUM){
+       fldHandle[i].size = getTypeSize(dt, fld->type->size);
+       if(evHandle[j].size_fixed){
+         fldHandle[i].offset = offset;
+         offset += fldHandle[i].size;
+         fldHandle[i].end_field = offset;
+       }
+       if(fld->type->fmt) fldHandle[i].fmt = allocAndCopy(fld->type->fmt);
+      }else if(dt==STRING){
+       fldHandle[i].size = -1;                                            //-1 means: size is not known
+       if(evHandle[j].size_fixed){
+         evHandle[j].size_fixed = 0;
+         fldHandle[i].offset = offset;
+         offset = -1;
+       }
+       if(fld->type->fmt) fldHandle[i].fmt = allocAndCopy(fld->type->fmt);
+      }else if(dt==ARRAY || dt==SEQUENCE){
+       fldHandle[i].size = getTypeSize(fld->type->nested_type->type, fld->type->nested_type->size); //other primitive type
+       fldHandle[i].element_type = fld->type->nested_type->type;
+       if(evHandle[j].size_fixed){
+         fldHandle[i].offset = offset;
+         if(dt==SEQUENCE){
+           evHandle[j].size_fixed = 0;
+           offset = -1;
+         }else{
+           if(fldHandle[i].size > 0){
+             offset += fld->type->size * fldHandle[i].size;
+             fldHandle[i].end_field = offset;
+           }
+           else{
+             evHandle[j].size_fixed = 0;
+             offset = -1;
+           }
+         }
+       }
+       if(dt==ARRAY) fldHandle[i].nbElements = fld->type->size;
+       else fldHandle[i].nbElements = -1;                                 //is not known
+       if(dt==SEQUENCE) fldHandle[i].sequence_size = getTypeSize(UINT, fld->type->size);
+      }else if(dt==STRUCT){
+       fldHandle[i].size = -1;                                            //impossible: do not support nested struct
+       if(evHandle[j].size_fixed){
+         evHandle[j].size_fixed = 0;
+         offset = -1;    
+       }       
+      }
+
+      //add field handle into the sequence of field handles of the event handle
+      sequence_push(&evHandle[j].base_field, &fldHandle[i]);
+    }
+  }
+
+  //add the facility handle into the sequence of facilities
+  sequence_push(&facilities,facHandle);  
+}
+
+/*****************************************************************************
+ *Function name
+ *    getTypeSize   : get the size of a given data type 
+ *Input params 
+ *    dt            : data type
+ *    index         : index of the data type                              
+ *Output params    
+ *    int           : return the size of the data type   
+ ****************************************************************************/
+int getTypeSize(data_type dt, int index){
+  int size = -1;
+  switch(dt){
+    case INT:
+      size = intSize[index];
+      break;
+    case UINT:
+    case ENUM:
+      size = uintSize[index];
+      break;
+    case FLOAT:
+      size = floatSize[index];
+      break;
+    case STRING:
+    case ARRAY:
+    case SEQUENCE:
+    case STRUCT: 
+    default:
+  }
+  return size;  
+}
+
+/*****************************************************************************
+ *Function name
+ *   initFacilities: initialize the sequence for facilities and get all of the
+ *                   registered facilities from kernel
+ *****************************************************************************/
+void initFacilities(){
+  int err, i, j;
+
+  sequence_init(&facilities);
+
+  //get the number of the registered facilities from kernel
+  err = getFacilitiesNumber( &facilitiesNum, &totalNumEvents);
+  if(err){
+    printf("Unable to get the number of the registered facilities from kernel\n");
+    exit(1);
+  }
+
+  //get all of the registered facilities from kernel
+  kFacilities = (kernel_facility**)memAlloc(sizeof(kernel_facility*) * facilitiesNum);
+  for(i=0;i<facilitiesNum;i++){
+    kFacilities[i] = (kernel_facility *)memAlloc(sizeof(kernel_facility));
+  }
+  err = getFacilitiesFromKernel(kFacilities);
+  if(err){
+    printf("Unable to get all of the registered facilities from kernel\n");
+    exit(1);
+  }
+
+  //set up the relation between event id and kernel facility
+  idToFacility = (kernel_facility**)memAlloc(sizeof(kernel_facility*) * totalNumEvents);
+  for(i=0;i<facilitiesNum;i++){
+    for(j=kFacilities[i]->firstId; j < kFacilities[i]->firstId + kFacilities[i]->nbEvents; j++){
+      idToFacility[j] = kFacilities[i];
+    }
+  }
+  
+}
+
+
+/*****************************************************************************
+ *Function name
+ *    trace_open_log    : open trace files
+ *Input Params
+ *    fileName          : trace file name 
+ *Output Params
+ *    ltt_descriptor    : handle to opened files
+ ****************************************************************************/
+ltt_descriptor * trace_open_log(char * fileName){
+  ltt_descriptor * lttdes;
+  struct stat      lTDFStat;    /* Trace data file status */
+  trace_header_event *trace_header;
+  block_header   a_block_header;
+
+  //initialize the sequence for facilities and get all registered facilities from kernel
+  initFacilities();
+
+  lttdes = (ltt_descriptor *)memAlloc(sizeof(ltt_descriptor));
+
+  //open the file
+  lttdes->fd = open(fileName, O_RDONLY, 0);
+  if(lttdes->fd < 0){
+    printf("Unable to open input data file %s\n", fileName);
+    exit(1);
+  }
+  // Get the file's status 
+  if(fstat(lttdes->fd, &lTDFStat) < 0){
+    printf("Unable to get the status of the input data file %s\n", fileName);
+    exit(1);    
+  }
+
+  // Is the file large enough to contain a trace 
+  if(lTDFStat.st_size < sizeof(block_header) + sizeof(trace_header_event)){
+    printf("The input data file %s does not contain a trace\n", fileName);
+    exit(1);    
+  }
+  
+  //store the size of the file
+  lttdes->file_size = lTDFStat.st_size;
+
+  //read the first block header
+  if(readFile(lttdes->fd,(void*)&a_block_header, sizeof(block_header), "Unable to read block header"))
+    exit(1);
+  
+  //read the trace header event
+  trace_header = memAlloc(sizeof(trace_header_event));
+  if(readFile(lttdes->fd,(void*)trace_header, sizeof(trace_header_event),"Unable to read trace header event"))
+    exit(1);
+
+  lttdes->nbBlocks = lttdes->file_size / trace_header->buffer_size;
+  lttdes->trace_header = (trace_header_event *)trace_header;
+  
+  //read the first block
+  lttdes->buffer = memAlloc(trace_header->buffer_size);
+  lseek(lttdes->fd, 0,SEEK_SET);
+  if(readBlock(lttdes,1)) exit(1);
+
+  if(lttdes->trace_header->magic_number == TRACER_MAGIC_NUMBER) lttdes->byte_rev = 0;
+  else if(BREV32(lttdes->trace_header->magic_number) == TRACER_MAGIC_NUMBER) lttdes->byte_rev = 1;
+  else exit(1);
+  
+
+
+  return lttdes;
+}
+
+/*****************************************************************************
+ *Function name
+ *    getFacilitiesNumber      : get the number of the registered facilities 
+ *                               and the total number of events from kernel
+ *Input Params
+ *    facNum                   : point to the number of registered facilities
+ *return value 
+ *    0                        : success
+ ****************************************************************************/
+int getFacilitiesNumber(int * numFac, int * numEvents){
+  //not implemented yet
+  return 0;
+}
+
+/*****************************************************************************
+ *Function name
+ *    getFacilitiesFromKernel  : get all the registered facilities from kernel
+ *Input Params
+ *    kFacilities              : an array of kernel facility structure
+ *return value 
+ *    0                        : success
+ ****************************************************************************/
+int getFacilitiesFromKernel(kernel_facility ** kFacilities){
+  //not implemented yet
+
+  return 0;
+}
+
+/*****************************************************************************
+ *Function name
+ *    getTSCPerUsec : calculate cycles per Usec for current block
+ *Input Params
+ *    lttdes      : ltt file descriptor
+ ****************************************************************************/
+void getTSCPerUsec(ltt_descriptor * lttdes){
+  struct timeval      lBufTotalTime; /* Total time for this buffer */
+  uint32_t            lBufTotalUSec; /* Total time for this buffer in usecs */
+  uint32_t            lBufTotalTSC;  /* Total TSC cycles for this buffer */
+
+  /* Calculate the total time for this buffer */
+  DBTimeSub(lBufTotalTime,lttdes->a_block_footer->time, lttdes->a_block_header->time);
+  /* Calculate the total cycles for this bufffer */
+  lBufTotalTSC = lttdes->a_block_footer->tsc - lttdes->a_block_header->tsc;
+  /* Convert the total time to usecs */
+  lBufTotalUSec = lBufTotalTime.tv_sec * 1000000 + lBufTotalTime.tv_usec;
+  
+  lttdes->TSCPerUsec = (double)lBufTotalTSC / (double)lBufTotalUSec;
+}
+
+/*****************************************************************************
+ *Function name
+ *    getEventTime : calculate the time the event occurs
+ *Input Params
+ *    lttdes      : ltt file descriptor
+ *    time_delta  : time difference between block header and the event
+ *Output Params
+ *    pTime       : pointer to event time
+ ****************************************************************************/
+void  getEventTime(ltt_descriptor * lttdes, uint32_t time_delta, struct timeval * pTime){
+  uint32_t       lEventTotalTSC;/* Total cycles from start for event */
+  double         lEventUSec;    /* Total usecs from start for event */
+  struct timeval lTimeOffset;   /* Time offset in struct timeval */
+  
+  /* Calculate total time in TSCs from start of buffer for this event */
+  lEventTotalTSC = time_delta - lttdes->a_block_header->tsc;
+  /* Convert it to usecs */
+  lEventUSec = lEventTotalTSC/lttdes->TSCPerUsec;
+  
+  /* Determine offset in struct timeval */
+  lTimeOffset.tv_usec = (long)lEventUSec % 1000000;
+  lTimeOffset.tv_sec  = (long)lEventUSec / 1000000;
+
+  DBTimeAdd((*pTime), lttdes->a_block_header->time, lTimeOffset);  
+}
+
+
+/*****************************************************************************
+ *Function name
+ *    trace_read  : get an event from the file
+ *Input Params
+ *    lttdes      : ltt file descriptor
+ *    ev          : a structure contains the event
+ *return value 
+ *    0           : success
+ *    ENOENT      : end of the file
+ *    EIO         : can not read from the file
+ *    EINVAL      : registered facility is not the same one used here
+ ****************************************************************************/
+int trace_read(ltt_descriptor * lttdes, event_struct * ev){
+  int err;
+  int8_t evId;
+  facility_handle * facHandle;
+  uint32_t time_delta;
+  event_handle * eHandle;
+  int8_t * tmp;
+
+  //check if it is the end of a block and if it is the end of the file
+  if(lttdes->which_event == lttdes->a_block_header->event_count){
+    if(lttdes->which_block == lttdes->nbBlocks ){
+      return ENOENT; //end of file
+    }else{
+      if((err=readBlock(lttdes, lttdes->which_block + 1)) != 0) return err;
+    }
+  }
+  
+  //get the event ID and time
+  evId = *((int8_t*)lttdes->cur_event_pos);
+  time_delta = *((uint32_t *)(lttdes->cur_event_pos + EVENT_ID_SIZE()));
+
+  //get facility handle
+  err = trace_lookup_facility(evId, &facHandle);
+  if(err)return err;
+
+  lttdes->current_event_time = time_delta;
+
+  //ev->recid = ??;
+  getEventTime(lttdes, time_delta, &(ev->time));
+  ev->tsc = time_delta;
+  ev->fHandle = facHandle;
+
+  //  ev->event_id = evId - idToFacility[evId]->firstId; /* disable during the test */
+  ev->event_id = evId;
+
+  ev->ip_addr = lttdes->trace_header->ip_addr;
+  ev->CPU_id = lttdes->trace_header->cpuID;
+  //  ev->tid = ??;
+  //  ev->pid = ??;
+  ev->base_field = &(ev->fHandle->events[ev->event_id]->base_field);
+  ev->data = lttdes->cur_event_pos;
+
+  //if there are strings or sequence in the event, update base field
+  eHandle = ev->fHandle->events[ev->event_id];
+  if(eHandle->size_fixed == 0 && (eHandle->latest_block != lttdes->which_block || eHandle->latest_event != lttdes->which_event)){
+    if(ev->base_field->position == 0) lttdes->cur_event_pos += EVENT_HEADER_SIZE();
+    else trace_update_basefield(lttdes, ev->base_field);
+    eHandle->latest_block = lttdes->which_block;
+    eHandle->latest_event = lttdes->which_event;
+  }
+  else {
+    if(ev->base_field->position == 0) lttdes->cur_event_pos += EVENT_HEADER_SIZE();
+    else{
+      //will be deleted late, test
+      tmp = (int8_t *)lttdes->cur_event_pos;
+      for(err=0;err <((field_handle *)ev->base_field->array[ev->base_field->position-1])->end_field;err++){
+       evId = *tmp;
+       tmp++;
+      }
+      //end
+
+      lttdes->cur_event_pos += ((field_handle *)ev->base_field->array[ev->base_field->position-1])->end_field;
+    }
+  }
+  
+
+  lttdes->which_event++;
+
+  //will be delete late, test
+  //  print_event( ev);
+
+  return 0;
+}
+
+/*****************************************************************************
+ *Function name
+ *    trace_update_basefield  : update base fields
+ *Input Params
+ *    lttdes      : ltt file descriptor
+ *    baseField   : base field of the event
+ ****************************************************************************/
+void trace_update_basefield(ltt_descriptor * lttdes, sequence * baseField){
+  int i,j;
+  char ch;
+  field_handle * fHandle;
+  void* curPos ;
+  off_t offset = EVENT_HEADER_SIZE(); // id and time delta
+  data_type dt, edt;
+  int fixSize = 1; //by default, no string or sequence
+
+  for(i=0;i<baseField->position;i++){
+    fHandle = (field_handle *) baseField->array[i];
+    dt = fHandle->field_type;
+    curPos = lttdes->cur_event_pos + offset;
+    if(dt == INT || dt == UINT || dt == FLOAT || dt == ENUM){
+      if(!fixSize) fHandle->offset = offset;
+      offset += fHandle->size;
+      if(!fixSize) fHandle->end_field = offset;
+    }else if(dt == ARRAY || dt == SEQUENCE ){  
+      edt = fHandle->element_type;
+      if(dt == SEQUENCE){
+       fixSize = 0;
+       if(fHandle->sequence_size== 1)fHandle->nbElements = (int)(*(uint8_t *)(curPos));
+       else if(fHandle->sequence_size== 2)fHandle->nbElements = (int)(*(uint16_t *)(curPos));
+       else if(fHandle->sequence_size== 3)fHandle->nbElements = (int)(*(uint32_t *)(curPos));
+       else if(fHandle->sequence_size== 4)fHandle->nbElements = (int)(*(unsigned long *)(curPos)); //
+      }
+      if(edt == INT || edt == UINT || edt == FLOAT || edt == ENUM){
+       if(!fixSize) fHandle->offset = offset;
+       if(dt == SEQUENCE) offset += fHandle->sequence_size;
+       offset += fHandle->nbElements * fHandle->size;
+       if(!fixSize) fHandle->end_field = offset;
+      }else if(edt == STRING){
+       fHandle->offset = offset;
+       if(dt ==SEQUENCE){
+         curPos += fHandle->sequence_size;
+         offset += fHandle->sequence_size;
+       }
+       if(fixSize) fixSize = 0;
+       for(j=0;j<fHandle->nbElements;j++){
+         while(1){
+           ch = *(char*)(curPos);
+           offset++;
+           curPos++;
+           if(ch == '\0') break;    //string ended with '\0'   
+         }
+       }
+       fHandle->end_field = offset;
+      }else if(edt == ARRAY || edt == SEQUENCE || edt == STRUCT){ // not supported
+      }
+    }else if(dt == STRING){
+      if(fixSize) fixSize = 0;
+      fHandle->offset = offset;
+      while(1){
+       ch = *(char*)(curPos);
+       offset++;
+       curPos++;
+       if(ch == '\0') break;    //string ended with '\0'       
+      }
+      fHandle->end_field = offset;
+    }else if (dt == STRUCT){ //not supported
+    }
+  }
+
+  //  lttdes->cur_event_pos = (void*)(&fHandle->end_field);
+  lttdes->cur_event_pos += fHandle->end_field;
+}
+
+/****************************************************************************
+ *Function name
+ *    trace_lookup_facility: get the facility handle
+ *Input Params
+ *    facilityName         : facility name
+ *Output Params
+ *    facHandle            : facility handle
+ *return value 
+ *    0                    : success
+ *    EINVAL               : registered facility is not the same one used here
+ ****************************************************************************/
+int trace_lookup_facility(int evId, facility_handle ** facHandle){
+  int i;
+  facility_handle * fHandle;
+
+  for(i=0;i<facilities.position;i++){
+    fHandle = (facility_handle *)facilities.array[i];
+
+    /* disable during the test */
+    *facHandle = fHandle;
+    return 0;
+/*
+    if(strcmp(idToFacility[evId]->name, fHandle->name)==0){
+      if(idToFacility[evId]->checksum != fHandle->checksum) 
+       return EINVAL;
+      *facHandle = fHandle;
+      return 0;
+    }
+*/
+  }
+
+  //read event definition file
+  //  parseEventAndTypeDefinition(idToFacility[evId]->name);  / * disable during the test */
+  parseEventAndTypeDefinition("default");  
+  fHandle = (facility_handle *)facilities.array[facilities.position-1];
+
+  //check if the facility used here is the same as the one registered in kernel
+  //  if(idToFacility[evId]->checksum != fHandle->checksum) return EINVAL;  /* disable during the test */
+
+  *facHandle = fHandle;
+
+  return 0;
+}
+
+/****************************************************************************
+ *Function name
+ *    trace_lookup_event: get the event handle
+ *Input Params
+ *    event_id          : id of event in the facility
+ *    facHandle         : facility handle containing an array of event handle
+ *Output Params
+ *    eventHandle       : event handle
+ *return value 
+ *    0           : success
+ ****************************************************************************/
+int trace_lookup_event(int event_id, facility_handle * facHandle, event_handle ** eventHandle){
+  *eventHandle = facHandle->events[event_id];
+  return 0;
+}
+
+/****************************************************************************
+ *Function name
+ *    trace_lookup_field: get field handle
+ *Input Params
+ *    baseField         : a sequence of field handles
+ *    position          : the position of the field handle in the baseField
+ *Output Params 
+ *    fieldHandle       : field handle
+ *return value 
+ *    0                 : success
+ *    EINVAL            : not a valid position
+ ****************************************************************************/
+int trace_lookup_field(sequence * baseField, int position, field_handle ** fieldHandle){  
+  if(position >= baseField->position || position < 0) return EINVAL;
+  *fieldHandle = (field_handle*)baseField->array[position];
+  return 0;
+}
+
+/****************************************************************************
+ *Function name
+ *    readFile    : wrap function to read from a file
+ *Input Params
+ *    fd          : file descriptor
+ *    buf         : buf to contain the content
+ *    size        : number of bytes to be read
+ *    mesg        : message to be printed if some thing goes wrong
+ *return value 
+ *    0           : success
+ *    EIO         : can not read from the file
+ ****************************************************************************/
+int readFile(int fd, void * buf, size_t size, char * mesg){
+   ssize_t nbBytes;
+   nbBytes = read(fd, buf, size);
+   if(nbBytes != size){
+     printf("%s\n",mesg);
+     return EIO;
+   }
+   return 0;
+}
+
+/****************************************************************************
+ *Function name
+ *    trace_seek      : seek according to event
+ *Input Params
+ *    lttdes          : ltt file descriptor
+ *    offset          : the file offset : event
+ *    whence          : how to set offset, it can be SEEK_SET, SEEK_CUR, SEEK_END
+ *return value 
+ *    0               : success
+ *    EINVAL          : lseek fail
+ *    EIO             : can not read from the file
+ *    ENOENT          : end of file
+ ****************************************************************************/
+int trace_seek(ltt_descriptor * lttdes, off_t offset, int whence){
+  off_t newOffset = offset;
+  int blockNum, i,j, err;
+  event_struct ev;
+
+  if(whence == SEEK_CUR && offset == 0)return 0;
+
+  if(whence == SEEK_SET){
+    if(offset < 0) return EINVAL;
+    if(lttdes->which_block != 1){
+      if((err=readBlock(lttdes, 1)) != 0) return err;
+    }else updateLttdes(lttdes);
+  }else if(whence == SEEK_END){
+    if(offset > 0) return EINVAL;
+    if(lttdes->which_block != lttdes->nbBlocks){
+      if((err=readBlock(lttdes, lttdes->nbBlocks))!=0) return err;
+    }else updateLttdes(lttdes);    
+    newOffset = lttdes->a_block_header->event_count + offset;    
+    if(newOffset > (off_t)lttdes->a_block_header->event_count ) return EINVAL;
+  }else{ //whence == SEEK_CUR
+    if(offset < 0){
+      newOffset = lttdes->which_event + offset;
+      updateLttdes(lttdes);
+      if(lttdes->which_block == 1){
+       newOffset--;
+       if(newOffset < 0) return 0; //at the beginning of the file
+      }      
+    }
+  }
+
+  //seek the right position of the event
+  if(newOffset > 0){
+    while(newOffset > (off_t)(lttdes->a_block_header->event_count - lttdes->which_event)){
+      if(lttdes->which_block == lttdes->nbBlocks) return ENOENT; //end of file
+      newOffset +=  - lttdes->a_block_header->event_count + lttdes->which_event;
+      if((err=readBlock(lttdes, lttdes->which_block+1))!=0) return err;
+    }        
+  }else if(newOffset < 0){
+    while(newOffset <= 0){
+      if(lttdes->which_block == 1) return 0; //reach the beginning of the file
+      if((err=readBlock(lttdes, lttdes->which_block-1))!=0)return err;
+      newOffset +=  lttdes->a_block_header->event_count;       
+      if(lttdes->which_block == 1) newOffset--;
+    }
+  }
+
+  j = lttdes->which_event;
+  for(i=j;i<j+newOffset;i++){
+    err = trace_read(lttdes,&ev);
+    if(err) return err;
+  }  
+  
+  lttdes->which_event = i;
+  if(lttdes->which_event == 0 || (lttdes->which_event == 1 && lttdes->which_block == 1))
+    lttdes->current_event_time = lttdes->a_block_header->tsc;
+  else  lttdes->current_event_time = ev.tsc;
+
+  return 0;
+}
+
+/****************************************************************************
+ *Function name
+ *    readBlock       : read a block from the file
+ *Input Params
+ *    lttdes          : ltt file descriptor
+ *    whichBlock      : the block which will be read
+ *return value 
+ *    0               : success
+ *    EINVAL          : lseek fail
+ *    EIO             : can not read from the file
+ ****************************************************************************/
+int readBlock(ltt_descriptor * lttdes, int whichBlock){
+  off_t nbBytes;
+  nbBytes = lseek(lttdes->fd, (off_t)((whichBlock-1)*lttdes->trace_header->buffer_size),SEEK_SET);
+  if(nbBytes == -1) return EINVAL;
+  
+  if(readFile(lttdes->fd,lttdes->buffer,lttdes->trace_header->buffer_size,"Unable to read a block")) return EIO;
+  lttdes->a_block_header = (block_header *) lttdes->buffer;
+  lttdes->a_block_footer = (block_footer *)(lttdes->buffer + lttdes->trace_header->buffer_size - sizeof(block_footer)); 
+  lttdes->which_block = whichBlock;
+  lttdes->which_event = 0;
+  lttdes->first_event_pos = lttdes->buffer + sizeof(block_header);
+  if(lttdes->which_block == 1){
+    lttdes->which_event++;
+    lttdes->first_event_pos += sizeof(trace_header_event);
+  }
+  lttdes->cur_event_pos = lttdes->first_event_pos;
+  lttdes->current_event_time = lttdes->a_block_header->tsc;
+
+  getTSCPerUsec(lttdes);
+
+  return 0;  
+}
+
+/****************************************************************************
+ *Function name
+ *    updateLttdes    : update the info of ltt descriptor
+ *Input Params
+ *    lttdes          : ltt file descriptor
+ ****************************************************************************/
+void updateLttdes(ltt_descriptor * lttdes){
+  if(lttdes->which_block == 1)lttdes->which_event = 1;
+  else lttdes->which_event = 0;
+  lttdes->cur_event_pos = lttdes->first_event_pos;
+  lttdes->current_event_time = lttdes->a_block_header->tsc;  
+}
+
+/****************************************************************************
+ *Function name
+ *    trace_seek_time : seek according to time
+ *Input Params
+ *    lttdes          : ltt file descriptor
+ *    offset          : the file offset : time
+ *    whence          : how to set offset, it can be SEEK_SET, SEEK_CUR, SEEK_END
+ *return value 
+ *    0               : success
+ *    EINVAL          : lseek fail
+ *    EIO             : can not read from the file
+ *    ENOENT          : end of file
+ ****************************************************************************/
+int trace_seek_time(ltt_descriptor * lttdes, uint32_t offset, int whence){
+  uint32_t curTime, seekTime;
+  int blockNum, i,j, err;
+  event_struct ev;
+  void * tmpAddr;
+  int whichEvent;
+  uint32_t curEventTime;
+
+  if(whence == SEEK_CUR && offset == 0)return 0;
+
+  if(whence == SEEK_SET){
+    if(offset < 0) return EINVAL;
+    if(lttdes->which_block != 1){
+      if((err=readBlock(lttdes, 1))!=0) return err;
+    }else updateLttdes(lttdes);
+    curTime = lttdes->a_block_header->tsc;
+  }else if(whence == SEEK_END){
+    if(offset > 0) return EINVAL;
+    if(lttdes->which_block != lttdes->nbBlocks){
+      if((err=readBlock(lttdes, lttdes->nbBlocks))!=0) return err;
+    }else updateLttdes(lttdes);
+    curTime = lttdes->a_block_footer->tsc;
+  }else{
+    curTime = lttdes->current_event_time;
+  }
+  
+  seekTime = curTime + offset;
+
+  //find the block which contains the time
+  if(offset>0){
+    if(whence == SEEK_SET)
+      blockNum = -trace_get_time_block_position(lttdes, seekTime, 1, lttdes->nbBlocks);
+    else if(whence == SEEK_CUR)
+      blockNum = -trace_get_time_block_position(lttdes, seekTime, lttdes->which_block, lttdes->nbBlocks);
+  }else if(offset<0){
+    if(whence == SEEK_END)
+      blockNum = -trace_get_time_block_position(lttdes, seekTime, 1, lttdes->nbBlocks);
+    else if(whence == SEEK_CUR)
+      blockNum = -trace_get_time_block_position(lttdes, seekTime, 1, lttdes->which_block);
+  }else{
+    if(whence == SEEK_SET) blockNum = 1;
+    if(whence == SEEK_END) blockNum = lttdes->nbBlocks;
+  }
+
+  if(blockNum < 0) return -blockNum;
+  
+  //get the block
+  if(lttdes->which_block != blockNum){
+    if((err=readBlock(lttdes,blockNum))!=0) return err;
+  }else updateLttdes(lttdes);
+
+  if(lttdes->a_block_footer->tsc <= seekTime){
+    if(blockNum == lttdes->nbBlocks) return ENOENT;  // end of file
+    blockNum++;
+  }
+
+  //find the event whose time is just before the time
+  if(lttdes->which_block != blockNum){
+    if((err=readBlock(lttdes,blockNum))!=0) return err;
+  }
+
+  if(lttdes->current_event_time >= seekTime ) return 0; //find the right place
+  
+  //loop through the block to find the event
+  j = lttdes->which_event;
+  for(i=j;i<lttdes->a_block_header->event_count;i++){
+    tmpAddr = lttdes->cur_event_pos;
+    curEventTime = lttdes->current_event_time;
+    whichEvent = lttdes->which_event;
+    if((err = trace_read(lttdes,&ev))!=0) return err;
+    if(ev.tsc >= seekTime){
+      lttdes->cur_event_pos = tmpAddr;
+      lttdes->current_event_time = curEventTime;
+      lttdes->which_event = whichEvent;
+      return 0;
+    }
+  }
+  
+  //if we reach here that means this block does not contain the time, go to the next block;
+  if(blockNum == lttdes->nbBlocks) return ENOENT;  // end of file
+  if((err=readBlock(lttdes,blockNum+1))!=0) return err;
+
+  return 0;
+}
+
+/****************************************************************************
+ *Function name
+ *    trace_get_time_block_position : get the position of the block which 
+ *                                    contains the seekTime
+ *Input Params
+ *    lttdes          : ltt file descriptor
+ *    seekTime        : absolute time
+ *    beginBlock      : the start block from which to begin the search
+ *    endBlock        : the end block where to end the search
+ *return value 
+ *    negative number : the block number
+ *    EINVAL          : lseek fail
+ *    EIO             : can not read from the file
+ *    ENOENT          : end of file
+ ****************************************************************************/
+int trace_get_time_block_position(ltt_descriptor * lttdes, uint32_t seekTime, int beginBlock, int endBlock){
+  int err, middleBlock = (endBlock + beginBlock) / 2;
+  
+  if(beginBlock == endBlock)return -beginBlock;
+
+  //get the start time of the block
+  if(lttdes->which_block != middleBlock){
+    if((err=readBlock(lttdes,middleBlock))!=0) return err;
+  }else{
+    updateLttdes(lttdes);
+  }
+
+  if(lttdes->a_block_header->tsc >= seekTime){
+    if(middleBlock-beginBlock <= 1) return -beginBlock;    
+    return trace_get_time_block_position(lttdes, seekTime,beginBlock, middleBlock-1);    
+  }
+
+  if(lttdes->a_block_footer->tsc >= seekTime) return -middleBlock;
+  if(endBlock-middleBlock == 1) return -endBlock;
+  return trace_get_time_block_position(lttdes, seekTime, middleBlock+1, endBlock);  
+}
+
+/****************************************************************************
+ *Function names
+ *   trace_get_char,   trace_get_uchar,   trace_get_enum,     trace_get_short
+ *   trace_get_ushort, trace_get_integer, trace_get_uinteger, trace_get_long 
+ *   trace_get_ulong,  trace_get_float,   trace_get_double,   trace_get_string
+ *   the help functions are used to get data of special data type from event
+ *   binary data
+ *Input Params
+ *   field       : field handle
+ *   data        : event binary data
+ *return value 
+ *   corresponding data type
+ ****************************************************************************/
+int trace_get_char(field_handle * field, void * data){
+  return (int)(*(char*)(data + field->offset));
+}
+
+int trace_get_uchar(field_handle * field, void * data){
+  return (int)(*(unsigned char*)(data + field->offset));
+}
+
+unsigned long trace_get_enum(field_handle * field, void * data){
+  if(field->size == 1)return (unsigned long)(*(uint8_t *)(data + field->offset));
+  else if(field->size == 2)return (unsigned long)(*(uint16_t *)(data + field->offset));
+  else if(field->size == 3)return (unsigned long)(*(uint32_t *)(data + field->offset));
+  else if(field->size == 4)return *(unsigned long *)(data + field->offset);  
+}
+
+short int trace_get_short(field_handle * field, void * data){
+  return *(short int*)(data + field->offset);
+}
+
+unsigned short int trace_get_ushort(field_handle * field, void * data){
+  return *(unsigned short int*)(data + field->offset);
+}
+
+int trace_get_integer(field_handle * field, void * data){
+  return *(int*)(data + field->offset);
+}
+
+unsigned int trace_get_uinteger(field_handle * field, void * data){
+  return *(unsigned int*)(data + field->offset);
+}
+
+long trace_get_long(field_handle * field, void * data){
+  return *(long*)(data + field->offset);
+}
+
+unsigned long trace_get_ulong(field_handle * field, void * data){
+  return *(unsigned long*)(data + field->offset);
+}
+
+float trace_get_float(field_handle * field, void * data){
+  return *(float*)(data + field->offset);
+}
+
+double trace_get_double(field_handle * field, void * data){
+  return *(double*)(data + field->offset);
+}
+
+char * trace_get_string(field_handle * field, void * data){
+  return allocAndCopy((char*)(data + field->offset));
+}
+
+
+//main and the following functions are just for the purpose of test, it will be deleted late
+
+int main(char * argc, char ** argv){
+  int i,j,k, err;
+  facility_handle * fH;
+  event_handle *evH;
+  field_handle *fldH;
+  int fd;
+  block_header bh;
+  block_footer bf, *ptr;
+  trace_header_event thev;
+  ltt_descriptor * lttdes;
+
+  char buf[BUFFER_SIZE];
+
+  fp = fopen("statistic","w");
+  if(!fp) {
+    printf("can not open test file\n");
+    exit(1);
+  }
+
+  lttdes = trace_open_log(argv[1]);
+  err = trace_seek(lttdes, 1, SEEK_SET);
+  for(i=0;i<lttdes->a_block_header->event_count - 2;i++){
+    err = trace_seek(lttdes, 1, SEEK_CUR);
+  }
+  ptr = (block_footer *)(lttdes->buffer + lttdes->trace_header->buffer_size - sizeof(block_footer));
+
+/*
+  err = trace_seek_time(lttdes, 11, SEEK_SET);
+  err = trace_seek_time(lttdes, 1060000000, SEEK_CUR);
+  while(1){
+    err = trace_seek_time(lttdes, 100000000, SEEK_CUR);
+    if(err) break;
+  }
+*/
+}
diff --git a/ltt/branches/poly/misc/EventAPI.h b/ltt/branches/poly/misc/EventAPI.h
new file mode 100644 (file)
index 0000000..dde9070
--- /dev/null
@@ -0,0 +1,185 @@
+#define LTT_PACKED_STRUCT __attribute__ ((packed))
+#define TRACER_MAGIC_NUMBER     0x00D6B7ED     /* That day marks an important historical event ... */
+
+void initFacilities();
+void freeFacilities(); //not implimented yet
+
+
+//following part is for event reading API
+typedef struct _trace_header_event {
+  //information of the machine type
+  uint32_t arch_type;       /* Type of architecture */
+  uint32_t arch_variant;     /* Variant of the given type of architecture */
+  uint32_t system_type;             /* Operating system type */
+  uint32_t magic_number;     /* Magic number to identify a trace */ 
+
+  //format of fields
+  uint8_t  time_size;        /* time size */
+  uint8_t  time_granul;      /* time granularity */
+  uint8_t  id_size;          /* size of combined facility/event ids */
+
+  //other elements
+  uint32_t ip_addr;          /* IP of the machine */
+  uint8_t  nbCpu;            /* number of CPU */
+  uint8_t  cpuID;            /* cpu id */
+  uint32_t buffer_size;             /* Size of blocks */
+} LTT_PACKED_STRUCT trace_header_event;
+
+
+typedef struct _block_header {
+  struct timeval time;      /* Time stamp of this block */
+  uint32_t tsc;              /* TSC of this block, if applicable */
+  uint32_t time_delta;       /* Time between now and prev event */
+  uint32_t event_count;      /* event count */
+} LTT_PACKED_STRUCT block_header;
+
+
+typedef struct _block_footer {
+  uint32_t unused_bytes;     /* unused bytes at the end of the block */
+  struct timeval time;      /* Time stamp of this block */
+  uint32_t tsc;              /* TSC of this block, if applicable */
+  uint32_t time_delta;       /* Time between now and prev event */
+} LTT_PACKED_STRUCT block_footer;
+
+
+typedef struct _ltt_descriptor{
+  int fd;                              /* file descriptor */
+  off_t file_size;                     /* file size */
+  int nbBlocks;                        /* number of blocks in the file */
+  int which_block;                     /* which block the current block is */
+  int which_event;                     /* which event of the current block is currently processed */
+  uint32_t current_event_time;         /* time of the current event */
+  trace_header_event * trace_header;   /* the first event in the first block */
+  block_header * a_block_header;       /* block header of the block*/
+  block_footer * a_block_footer;       /* block footer of the block*/
+  void * first_event_pos;              /* the position of the first event in blockBuf */
+  void * cur_event_pos;                /* the position of the current event in blockBuf */
+  void * buffer;                       /* the buffer to contain the content of the block */ 
+  int byte_rev;                        /* Byte-reverse trace data */
+  double TSCPerUsec;                   /* Cycles per usec */ 
+} ltt_descriptor;
+
+typedef struct _field_handle{
+  char * name;               /* field name */
+  data_type field_type;      /* field type : integer, float, string, enum, array, sequence */
+  int size;                  /* number of bytes for a primitive type */
+  data_type element_type;    /* element type for array or sequence */
+  int nbElements;            /* number of fields for a struct, and of elements for array or sequence */
+  int sequence_size;         /* the length size of uint which stores the number of elements of the sequence */ 
+  char * fmt;                /* printf format string for primitive type */
+  off_t offset;              /* offset from the beginning of the current event */
+  off_t end_field;           /* end of the field: offset of the next field */
+} field_handle;
+
+typedef struct _event_handle{
+  char * name;               /* event name */
+  int id;                    /* event code */
+  int size_fixed;            /* indicate whether or not the event has string or sequence */
+  sequence base_field;       /* base field */
+  int latest_block;          /* the latest block which uses the event handle */
+  int latest_event;          /* the latest event which uses the event handle */
+} event_handle;
+
+
+typedef struct _facility_handle{
+  char * name;               /* facility name */
+  int nbEvents;              /* number of events in the facility */
+  unsigned long checksum;    /* checksum of the facility */
+  event_handle ** events;    /* array of event types */
+} facility_handle;
+
+
+typedef struct _event_struct{
+  int recid;                 /* event position in the combined log */
+  struct timeval time;       /* detailed absolute time */
+  uint32_t tsc;              /* TSC of this event */
+  facility_handle * fHandle; /* facility handle */
+  int event_id;              /* id of a event belonging to the facility */
+  //  event_handle * event_type; /* event handle */
+  uint32_t ip_addr;          /* IP address of the system */
+  uint8_t CPU_id;            /* CPU id */
+  int tid;                   /* thread id */
+  int pid;                   /* process id */
+  sequence * base_field;     /* base field */  
+  void * data;               /* event binary data */
+} event_struct;
+
+
+typedef struct _kernel_facility{
+  char * name;               /* kernel name */
+  unsigned long checksum;    /* checksum of the facility */
+  int nbEvents;              /* number of events in the facility */
+  int firstId;               /* the ID of the first event of the facility */
+} kernel_facility;
+
+
+void parseEventAndTypeDefinition(char * facilityName);
+void generateFacilityHandle(char * facName, unsigned long checksum, sequence * events);
+int  getTypeSize(data_type dt, int index);
+
+
+int getFacilitiesNumber(int * numFac, int * numEvents);   //get the number of the registered faciliyies
+int getFacilitiesFromKernel(kernel_facility ** kFacilities);
+int readFile(int fd, void * buf, size_t size, char * mesg);
+int readBlock(ltt_descriptor * lttdes, int whichBlock);
+void updateLttdes(ltt_descriptor * lttdes);
+void getTSCPerUsec(ltt_descriptor * lttdes);
+void getEventTime(ltt_descriptor * lttdes, uint32_t time_delta, struct timeval * pTime);
+
+ltt_descriptor * trace_open_log(char * fileName);
+int trace_seek(ltt_descriptor * lttdes, off_t offset, int whence);
+int trace_seek_time(ltt_descriptor * lttdes, uint32_t offset, int whence);
+int trace_read(ltt_descriptor * lttdes, event_struct * ev);
+
+int trace_lookup_facility(int evId, facility_handle ** facilityHandle);
+int trace_lookup_event(int event_id, facility_handle * facHandle, event_handle ** eventHandle);
+int trace_lookup_field(sequence * baseField, int position, field_handle ** field);
+
+int trace_get_char(field_handle * field, void * data);
+int trace_get_uchar(field_handle * field, void * data);
+unsigned long trace_get_enum(field_handle * field, void * data);
+short int trace_get_short(field_handle * field, void * data);
+unsigned short int trace_get_ushort(field_handle * field, void * data);
+int trace_get_integer(field_handle * field, void * data);
+unsigned int trace_get_uinteger(field_handle * field, void * data);
+long trace_get_long(field_handle * field, void * data);
+unsigned long trace_get_ulong(field_handle * field, void * data);
+float trace_get_float(field_handle * field, void * data);
+double trace_get_double(field_handle * field, void * data);
+char * trace_get_string(field_handle * field, void * data);
+
+int trace_get_time_block_position(ltt_descriptor * lttdes, uint32_t seekTime, int beginBlock, int endBlock);
+void trace_update_basefield(ltt_descriptor * lttdes, sequence * baseField );
+
+
+#define EVENT_ID_SIZE()     sizeof(int8_t)
+#define TIME_DELTA_SIZE()   sizeof(uint32_t)
+//event id and time delta
+#define EVENT_HEADER_SIZE() (sizeof(int8_t) + sizeof(uint32_t))
+
+/* Time operation macros */
+/*  (T3 = T2 - T1) */
+#define DBTimeSub(T3, T2, T1) \
+do \
+{\
+  T3.tv_sec  = T2.tv_sec  - T1.tv_sec;  \
+  T3.tv_usec = T2.tv_usec - T1.tv_usec; \
+  if(T3.tv_usec < 0)\
+    {\
+    T3.tv_sec--;\
+    T3.tv_usec += 1000000;\
+    }\
+} while(0)
+
+/*  (T3 = T2 + T1) */
+#define DBTimeAdd(T3, T2, T1) \
+do \
+{\
+  T3.tv_sec  = T2.tv_sec  + T1.tv_sec;  \
+  T3.tv_usec = T2.tv_usec + T1.tv_usec; \
+  if(T3.tv_usec >= 1000000)\
+    {\
+    T3.tv_sec += T3.tv_usec / 1000000;\
+    T3.tv_usec = T3.tv_usec % 1000000;\
+    }\
+} while(0)
diff --git a/ltt/branches/poly/misc/LTTTypes.h b/ltt/branches/poly/misc/LTTTypes.h
new file mode 100644 (file)
index 0000000..2c054a1
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * LTTTypes.h
+ *
+ * Copyright (C) 2000 Karim Yaghmour (karym@opersys.com).
+ *
+ * This is distributed under GPL.
+ *
+ * Header for LTT-secific types.
+ *
+ * History : 
+ *    K.Y.  07/09/2001, Added David Schleef's architecture independent ltt_set_bit/ltt_clear_bit/ltt_test_bit
+ *    JAL,  05/01/2001, Modified PPC bit manipulation functions for x86 compatibility.
+ *                      (andy_lowe@mvista.com)
+ *    K.Y., 31/05/2000, Initial typing.
+ */
+
+#ifndef __TRACE_TOOLKIT_TYPES_HEADER__
+#define __TRACE_TOOLKIT_TYPES_HEADER__
+
+#include <sys/types.h>
+#include <sys/time.h>
+
+#if defined(sun)
+
+typedef unsigned char          u_int8_t;
+typedef unsigned short         u_int16_t;
+typedef unsigned int           u_int32_t;
+#ifdef _LP64
+typedef unsigned long          u_int64_t;
+#else  /* _ILP32 */
+#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
+typedef unsigned long long     u_int64_t;
+#endif /* __STDC__ - 0 == 0 && !defined(_NO_LONGLONG) */
+#endif /* _LP64 */
+
+#endif /* defined(sun) */
+
+extern __inline__ int ltt_set_bit(int nr, void * addr)
+{
+  unsigned char *p = addr;
+  unsigned char mask = 1 << (nr&7);
+  unsigned char old;
+
+  p += nr>>3;
+  old = *p;
+  *p |= mask;
+  return ((old & mask) != 0);
+}
+
+extern __inline__ int ltt_clear_bit(int nr, void * addr)
+{
+  unsigned char *p = addr;
+  unsigned char mask = 1 << (nr&7);
+  unsigned char old;
+
+  p += nr>>3;
+  old = *p;
+  *p &= ~mask;
+  return ((old & mask) != 0);
+}
+
+extern __inline__ int ltt_test_bit(int nr,void *addr)
+{
+  unsigned char *p = addr;
+  unsigned char mask = 1 << (nr&7);
+  p += nr>>3;
+  return ((*p & mask) != 0);
+}
+
+/* Big-endian/little-endian conversion macros for cross-development. */
+#if TARGET_NATIVE
+/* For native development, these conversion macros aren't needed. */
+#define BREV16(x)   (x)
+#define BREV32(x)   (x)
+#define BREV64(x)   (x)
+#define RFT8(db,x)  (x)
+#define RFT16(db,x) (x)
+#define RFT32(db,x) (x)
+#define RFT64(db,x) (x)
+
+/* Non-native development */
+#else
+        /* BREV16: byte-reverse a 16-bit integer */
+#define BREV16(x) ((((x) & 0xff00) >> 8) | (((x) & 0x00ff) << 8))
+       /* BREV32: byte-reverse a 32-bit integer */
+#define BREV32(x) ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) \
+                | (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
+       /* BREV64: byte-reverse a 64-bit integer */
+#define BREV64(x) ((((x) & 0xff00000000000000) >> 56) \
+                 | (((x) & 0x00ff000000000000) >> 40) \
+                | (((x) & 0x0000ff0000000000) >> 24) \
+                | (((x) & 0x000000ff00000000) >>  8) \
+                | (((x) & 0x00000000ff000000) <<  8) \
+                | (((x) & 0x0000000000ff0000) << 24) \
+                | (((x) & 0x000000000000ff00) << 40) \
+                | (((x) & 0x00000000000000ff) << 56))
+       /* RFTn: Read From Trace
+        *      Conditionally byte-reverse an 8-, 16-, 32-, or 64-bit integer
+        *      based on the value of the ByteRev member of the trace database
+        *      structure pointer passed as the first argument..
+        */
+#define RFT8(db,x)  (x)
+#define RFT16(db,x) ((db)->ByteRev ? BREV16(x) : (x))
+#define RFT32(db,x) ((db)->ByteRev ? BREV32(x) : (x))
+#define RFT64(db,x) ((db)->ByteRev ? BREV64(x) : (x))
+#endif /* TRACE_TARGET_NATIVE */
+
+#if !defined(sun)
+/* Some type corrections, just in case */
+#ifndef uint8_t
+#define uint8_t u_int8_t
+#endif
+#ifndef uint16_t
+#define uint16_t u_int16_t
+#endif
+#ifndef uint32_t
+#define uint32_t u_int32_t
+#endif
+#ifndef uint64_t
+#define uint64_t u_int64_t
+#endif
+#endif /* !defined(sun) */
+
+/* Structure packing */
+#if LTT_UNPACKED_STRUCTS
+#define LTT_PACKED_STRUCT
+#else
+#define LTT_PACKED_STRUCT __attribute__ ((packed))
+#endif /* UNPACKED_STRUCTS */
+
+/* Trace mask */
+typedef uint64_t trace_event_mask;
+
+/* Boolean stuff */
+#define TRUE  1
+#define FALSE 0
+
+#endif /* __TRACE_TOOLKIT_TYPES_HEADER__ */
diff --git a/ltt/branches/poly/misc/README b/ltt/branches/poly/misc/README
new file mode 100644 (file)
index 0000000..325dd5a
--- /dev/null
@@ -0,0 +1,8 @@
+Revise all .h, see if complete. 2h
+Look at how plugins work with GTK windows, perhaps add hooks to that 2h
+Functions to manage the list of traces? 1h
+Revise all .h perhaps send for review.
+Implement the text part of it 4h
+Definitely send for review.
+Add the beginnings of graphical support (open traces, view events, view stats)?
+Later add really graphical views ?
\ No newline at end of file
diff --git a/ltt/branches/poly/misc/crc32.tab b/ltt/branches/poly/misc/crc32.tab
new file mode 100644 (file)
index 0000000..d0174ad
--- /dev/null
@@ -0,0 +1,52 @@
+  0x00000000U, 0x77073096U, 0xee0e612cU, 0x990951baU, 0x076dc419U,
+  0x706af48fU, 0xe963a535U, 0x9e6495a3U, 0x0edb8832U, 0x79dcb8a4U,
+  0xe0d5e91eU, 0x97d2d988U, 0x09b64c2bU, 0x7eb17cbdU, 0xe7b82d07U,
+  0x90bf1d91U, 0x1db71064U, 0x6ab020f2U, 0xf3b97148U, 0x84be41deU,
+  0x1adad47dU, 0x6ddde4ebU, 0xf4d4b551U, 0x83d385c7U, 0x136c9856U,
+  0x646ba8c0U, 0xfd62f97aU, 0x8a65c9ecU, 0x14015c4fU, 0x63066cd9U,
+  0xfa0f3d63U, 0x8d080df5U, 0x3b6e20c8U, 0x4c69105eU, 0xd56041e4U,
+  0xa2677172U, 0x3c03e4d1U, 0x4b04d447U, 0xd20d85fdU, 0xa50ab56bU,
+  0x35b5a8faU, 0x42b2986cU, 0xdbbbc9d6U, 0xacbcf940U, 0x32d86ce3U,
+  0x45df5c75U, 0xdcd60dcfU, 0xabd13d59U, 0x26d930acU, 0x51de003aU,
+  0xc8d75180U, 0xbfd06116U, 0x21b4f4b5U, 0x56b3c423U, 0xcfba9599U,
+  0xb8bda50fU, 0x2802b89eU, 0x5f058808U, 0xc60cd9b2U, 0xb10be924U,
+  0x2f6f7c87U, 0x58684c11U, 0xc1611dabU, 0xb6662d3dU, 0x76dc4190U,
+  0x01db7106U, 0x98d220bcU, 0xefd5102aU, 0x71b18589U, 0x06b6b51fU,
+  0x9fbfe4a5U, 0xe8b8d433U, 0x7807c9a2U, 0x0f00f934U, 0x9609a88eU,
+  0xe10e9818U, 0x7f6a0dbbU, 0x086d3d2dU, 0x91646c97U, 0xe6635c01U,
+  0x6b6b51f4U, 0x1c6c6162U, 0x856530d8U, 0xf262004eU, 0x6c0695edU,
+  0x1b01a57bU, 0x8208f4c1U, 0xf50fc457U, 0x65b0d9c6U, 0x12b7e950U,
+  0x8bbeb8eaU, 0xfcb9887cU, 0x62dd1ddfU, 0x15da2d49U, 0x8cd37cf3U,
+  0xfbd44c65U, 0x4db26158U, 0x3ab551ceU, 0xa3bc0074U, 0xd4bb30e2U,
+  0x4adfa541U, 0x3dd895d7U, 0xa4d1c46dU, 0xd3d6f4fbU, 0x4369e96aU,
+  0x346ed9fcU, 0xad678846U, 0xda60b8d0U, 0x44042d73U, 0x33031de5U,
+  0xaa0a4c5fU, 0xdd0d7cc9U, 0x5005713cU, 0x270241aaU, 0xbe0b1010U,
+  0xc90c2086U, 0x5768b525U, 0x206f85b3U, 0xb966d409U, 0xce61e49fU,
+  0x5edef90eU, 0x29d9c998U, 0xb0d09822U, 0xc7d7a8b4U, 0x59b33d17U,
+  0x2eb40d81U, 0xb7bd5c3bU, 0xc0ba6cadU, 0xedb88320U, 0x9abfb3b6U,
+  0x03b6e20cU, 0x74b1d29aU, 0xead54739U, 0x9dd277afU, 0x04db2615U,
+  0x73dc1683U, 0xe3630b12U, 0x94643b84U, 0x0d6d6a3eU, 0x7a6a5aa8U,
+  0xe40ecf0bU, 0x9309ff9dU, 0x0a00ae27U, 0x7d079eb1U, 0xf00f9344U,
+  0x8708a3d2U, 0x1e01f268U, 0x6906c2feU, 0xf762575dU, 0x806567cbU,
+  0x196c3671U, 0x6e6b06e7U, 0xfed41b76U, 0x89d32be0U, 0x10da7a5aU,
+  0x67dd4accU, 0xf9b9df6fU, 0x8ebeeff9U, 0x17b7be43U, 0x60b08ed5U,
+  0xd6d6a3e8U, 0xa1d1937eU, 0x38d8c2c4U, 0x4fdff252U, 0xd1bb67f1U,
+  0xa6bc5767U, 0x3fb506ddU, 0x48b2364bU, 0xd80d2bdaU, 0xaf0a1b4cU,
+  0x36034af6U, 0x41047a60U, 0xdf60efc3U, 0xa867df55U, 0x316e8eefU,
+  0x4669be79U, 0xcb61b38cU, 0xbc66831aU, 0x256fd2a0U, 0x5268e236U,
+  0xcc0c7795U, 0xbb0b4703U, 0x220216b9U, 0x5505262fU, 0xc5ba3bbeU,
+  0xb2bd0b28U, 0x2bb45a92U, 0x5cb36a04U, 0xc2d7ffa7U, 0xb5d0cf31U,
+  0x2cd99e8bU, 0x5bdeae1dU, 0x9b64c2b0U, 0xec63f226U, 0x756aa39cU,
+  0x026d930aU, 0x9c0906a9U, 0xeb0e363fU, 0x72076785U, 0x05005713U,
+  0x95bf4a82U, 0xe2b87a14U, 0x7bb12baeU, 0x0cb61b38U, 0x92d28e9bU,
+  0xe5d5be0dU, 0x7cdcefb7U, 0x0bdbdf21U, 0x86d3d2d4U, 0xf1d4e242U,
+  0x68ddb3f8U, 0x1fda836eU, 0x81be16cdU, 0xf6b9265bU, 0x6fb077e1U,
+  0x18b74777U, 0x88085ae6U, 0xff0f6a70U, 0x66063bcaU, 0x11010b5cU,
+  0x8f659effU, 0xf862ae69U, 0x616bffd3U, 0x166ccf45U, 0xa00ae278U,
+  0xd70dd2eeU, 0x4e048354U, 0x3903b3c2U, 0xa7672661U, 0xd06016f7U,
+  0x4969474dU, 0x3e6e77dbU, 0xaed16a4aU, 0xd9d65adcU, 0x40df0b66U,
+  0x37d83bf0U, 0xa9bcae53U, 0xdebb9ec5U, 0x47b2cf7fU, 0x30b5ffe9U,
+  0xbdbdf21cU, 0xcabac28aU, 0x53b39330U, 0x24b4a3a6U, 0xbad03605U,
+  0xcdd70693U, 0x54de5729U, 0x23d967bfU, 0xb3667a2eU, 0xc4614ab8U,
+  0x5d681b02U, 0x2a6f2b94U, 0xb40bbe37U, 0xc30c8ea1U, 0x5a05df1bU,
+  0x2d02ef8dU
diff --git a/ltt/branches/poly/misc/default.event b/ltt/branches/poly/misc/default.event
new file mode 100644 (file)
index 0000000..e9b08ed
--- /dev/null
@@ -0,0 +1,270 @@
+//TRACE_EV_START
+event(TRACE_EV_START, "This is to mark the trace's start",
+      field(magic_number,"Magic number to identify a trace", uint(4)),
+      field(arch_type, "Type of architecture", uint(4)),
+      field(arch_variant, "Variant of the given type of architecture", uint(4)),
+      field(system_type, "Operating system type", uint(4)),
+      field(major_version, "Major version of trace", uint(1)),
+      field(minor_version, "Minor version of trace", uint(1)),
+      field(buffer_size, "Size of buffers", uint(4)),
+      field(event_mask, "The event mask", uint(8)),
+      field(details_mask, "Are the event details logged", uint(8)),
+      field(log_cpuid, "Is the CPUID logged ", uint(1)),
+      field(use_tsc, "Are we using TSCs or time deltas?", uint(1))
+     );
+
+
+
+//TRACE_EV_SYSCALL_ENTRY
+event(TRACE_EV_SYSCALL_ENTRY, "Entry in a given system call",
+      field(syscall_id, "Syscall entry number in entry.S", uint(1)),
+      field(address, "Address from which call was made", uint(4))
+     );
+
+
+
+//TRACE_EV_SYSCALL_EXIT
+event(TRACE_EV_SYSCALL_EXIT, "Exit from a given system call"
+     );
+
+
+
+//TRACE_EV_TRAP_ENTRY : not for  __s390__
+event(TRACE_EV_TRAP_ENTRY, "Entry in a trap",
+      field(trap_id, "Trap number", uint(2)),
+      field(address, "Address where trap occured", uint(4))
+     );
+
+
+
+//TRACE_EV_TRAP_EXIT
+event(TRACE_EV_TRAP_EXIT, "Exit from a trap"
+     );
+
+
+
+//TRACE_EV_IRQ_ENTRY
+event(TRACE_EV_IRQ_ENTRY, "Entry in an irq",
+      field(irq_id, "IRQ number", uint(1)),
+      field(kernel, "Are we executing kernel code", uint(1))
+     );
+
+
+
+//TRACE_EV_IRQ_EXIT
+event(TRACE_EV_IRQ_EXIT, "Exit from an irq" 
+     );
+
+
+
+//TRACE_EV_SCHEDCHANGE
+event(TRACE_EV_SCHEDCHANGE, "Scheduling change", 
+      field(out, "Outgoing process", uint(4)),
+      field(in, "Incoming process", uint(4)),
+      field(out_state, "Outgoing process' state", uint(4))
+     );
+
+
+
+//TRACE_EV_KERNEL_TIMER
+event(TRACE_EV_KERNEL_TIMER, "The kernel timer routine has been called"     );
+
+
+
+//TRACE_EV_SOFT_IRQ
+event(TRACE_EV_SOFT_IRQ, "Hit key part of soft-irq management", 
+      field(event_sub_id,"Soft-irq event Id", 
+            enum(1,
+                  (
+                    TRACE_EV_SOFT_IRQ_BOTTOM_HALF = 1,
+                    TRACE_EV_SOFT_IRQ_SOFT_IRQ,
+                   TRACE_EV_SOFT_IRQ_TASKLET_ACTION,
+                   TRACE_EV_SOFT_IRQ_TASKLET_HI_ACTION
+                  )
+                )
+           ),
+      field(event_data, "Data associated with event", uint(4))
+     );
+
+
+
+//TRACE_EV_PROCESS
+event(TRACE_EV_PROCESS, "Hit key part of process management",
+      field(event_sub_id, "Process event ID",
+             enum(1,
+                   (
+                     TRACE_EV_PROCESS_KTHREAD = 1,
+                    TRACE_EV_PROCESS_FORK,
+                    TRACE_EV_PROCESS_EXIT,
+                    TRACE_EV_PROCESS_WAIT,
+                    TRACE_EV_PROCESS_SIGNAL,
+                    TRACE_EV_PROCESS_WAKEUP
+                   )
+                 )
+           ),
+      field(event_data1, "Data associated with event", uint(4)), 
+      field(event_data2, "Data associated with event", uint(4)) 
+     );
+
+
+
+//TRACE_EV_FILE_SYSTEM
+event(TRACE_EV_FILE_SYSTEM, "Hit key part of file system", 
+      field(event_sub_id,"File system event ID",
+           enum(1,
+                (
+                  TRACE_EV_FILE_SYSTEM_BUF_WAIT_START = 1,
+                  TRACE_EV_FILE_SYSTEM_BUF_WAIT_END,
+                  TRACE_EV_FILE_SYSTEM_EXEC,
+                  TRACE_EV_FILE_SYSTEM_OPEN,
+                  TRACE_EV_FILE_SYSTEM_CLOSE,
+                  TRACE_EV_FILE_SYSTEM_READ,
+                  TRACE_EV_FILE_SYSTEM_WRITE,
+                  TRACE_EV_FILE_SYSTEM_SEEK,
+                  TRACE_EV_FILE_SYSTEM_IOCTL,
+                  TRACE_EV_FILE_SYSTEM_SELECT,
+                  TRACE_EV_FILE_SYSTEM_POLL
+                )
+                )
+           ),
+      field(event_data1, " Event data ", uint(4)),
+      field(event_data2, " Event data 2", uint(4)),
+      field(file_name, "Name of file operated on ", string()) 
+     );
+
+
+
+//TRACE_EV_TIMER
+event(TRACE_EV_TIMER, "Hit key part of timer management", 
+      field(event_sub_id, "Timer event ID",
+           enum(1,
+                (
+                  TRACE_EV_TIMER_EXPIRED = 1,
+                  TRACE_EV_TIMER_SETITIMER,
+                  TRACE_EV_TIMER_SETTIMEOUT
+                )
+               )
+          ), 
+      field(event_sdata, "Short data", uint(1)), 
+      field(event_data1, "Data associated with event", uint(4)),
+      field(event_data2, "Data associated with event", uint(4))
+     );
+
+
+
+//TRACE_EV_MEMORY
+event(TRACE_EV_MEMORY, "Hit key part of memory management", 
+      field(event_sub_id, "",
+           enum(1,
+                (
+                  TRACE_EV_MEMORY_PAGE_ALLOC = 1,
+                  TRACE_EV_MEMORY_PAGE_FREE,
+                  TRACE_EV_MEMORY_SWAP_IN,
+                  TRACE_EV_MEMORY_SWAP_OUT,
+                  TRACE_EV_MEMORY_PAGE_WAIT_START,
+                  TRACE_EV_MEMORY_PAGE_WAIT_END
+                )
+               )
+          ),
+      field(event_data, "Data associated with event", uint(4))
+     );
+
+
+
+//TRACE_EV_SOCKET
+event(TRACE_EV_SOCKET, "Hit key part of socket communication",
+      field(event_sub_id, "Socket event ID",
+           enum(1,
+                (
+                  TRACE_EV_SOCKET_CALL = 1,
+                  TRACE_EV_SOCKET_CREATE,
+                  TRACE_EV_SOCKET_SEND,
+                  TRACE_EV_SOCKET_RECEIVE
+                )
+               ) 
+          ),
+      field(event_data1, "Data associated with event", uint(4)),
+      field(event_data2, "Data associated with event", uint(4))
+     );
+
+
+
+//TRACE_EV_IPC
+event(TRACE_EV_IPC, "Hit key part of System V IPC", 
+      field(event_sub_id, "IPC event ID",
+           enum(1,
+                (
+                  TRACE_EV_IPC_CALL = 1,
+                  TRACE_EV_IPC_MSG_CREATE,
+                  TRACE_EV_IPC_SEM_CREATE,
+                  TRACE_EV_IPC_SHM_CREATE
+                )
+               )
+          ),
+      field(event_data1, "Data associated with event", uint(4)),
+      field(event_data2, "Data associated with event", uint(4))
+     );
+
+
+
+//TRACE_EV_NETWORK
+event(TRACE_EV_NETWORK, "Hit key part of network communication",
+      field(event_sub_id, "Network event ID",
+           enum(1,
+                (
+                  TRACE_EV_NETWORK_PACKET_IN = 1,
+                  TRACE_EV_NETWORK_PACKET_OUT
+                )
+               )
+          ), 
+      field(event_data, "Event data", uint(4))
+     );
+
+
+
+//TRACE_EV_BUFFER_START
+event(TRACE_EV_BUFFER_START, "Mark the begining of a trace buffer", 
+      field(time, "Time stamp of this buffer",array(2,int(8)) ),
+      field(tsc,"TSC of this buffer, if applicable",uint(4)),
+      field(id, "Unique buffer ID", uint(4))
+     );
+
+
+
+//TRACE_EV_BUFFER_END
+event(TRACE_EV_BUFFER_END, "Mark the ending of a trace buffer", 
+      field(time, "Time stamp of this buffer",array(2,int(8)) ),
+      field(tsc,"TSC of this buffer, if applicable",uint(4))
+     );
+
+
+
+//TRACE_EV_NEW_EVENT
+event(TRACE_EV_NEW_EVENT, "New event type", 
+      field(id, "Custom event ID", uint(4)),
+      field(type, "Event type description", string()),
+      field(desc, "Detailed event description", string()),
+      field(format_type, "Type of formatting", uint(4)),
+      field(form, "Data specific to format", string())
+     );
+
+
+
+//TRACE_EV_CUSTOM
+event(TRACE_EV_CUSTOM, "Custom event" 
+     );
+
+
+
+//TRACE_EV_CHANGE_MASK
+event(TRACE_EV_CHANGE_MASK, "Change in event mask", 
+      field(mask, "Event mask",uint(8) )
+     );
+
+
+
+//TRACE_EV_HEARTBEAT
+event(TRACE_EV_HEARTBEAT, "Heartbeat event" );
+
+
+
diff --git a/ltt/branches/poly/misc/parser.c b/ltt/branches/poly/misc/parser.c
new file mode 100644 (file)
index 0000000..f5ac996
--- /dev/null
@@ -0,0 +1,916 @@
+/*
+
+parser.c: Generate helper declarations and functions to trace events
+  from an event description file.
+
+Copyright (C) 2002, Xianxiu Yang
+Copyright (C) 2002, Michel Dagenais 
+This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+the Free Software Foundation; version 2 of the License.
+
+This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+*/
+
+/* This program reads the ".event" event definitions input files 
+   specified as command line arguments and generates corresponding
+   ".c" and ".h" files required to trace such events in the kernel.
+   The program uses a very simple tokenizer, called from a hand written
+   recursive descent parser to fill a data structure describing the events.
+   The result is a sequence of events definitions which refer to type
+   definitions.
+
+   A table of named types is maintained to allow refering to types by name
+   when the same type is used at several places. Finally a sequence of
+   all types is maintained to facilitate the freeing of all type 
+   information when the processing of an ".event" file is finished. */
+
+#include <stdlib.h> 
+#include <string.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <linux/errno.h>  
+
+
+#include "parser.h"
+
+
+/*****************************************************************************
+ *Function name
+ *    getSize    : translate from string to integer
+ *Input params 
+ *    in         : input file handle
+ *Return values  
+ *    size                           
+ *****************************************************************************/
+int getSize(parse_file *in){
+  char *token;
+
+  token = getToken(in);
+  if(in->type == NUMBER) {
+    if(strcmp(token,"1") == 0) return 0;
+    else if(strcmp(token,"2") == 0) return 1;
+    else if(strcmp(token,"4") == 0) return 2;
+    else if(strcmp(token,"8") == 0) return 3;
+  }
+  else if(in->type == NAME) {
+    if(strcmp(token,"short") == 0) return 4;
+    else if(strcmp(token,"medium") == 0) return 5;
+    else if(strcmp(token,"long") == 0) return 6;
+  }
+  in->error(in,"incorrect size specification");
+  return -1;
+}
+
+/*****************************************************************************
+ *Function name
+ *    error_callback  : print out error info
+ *Input params
+ *    in              : input file handle
+ *    msg             : message to be printed                  
+ ****************************************************************************/
+void error_callback(parse_file *in, char *msg){
+  if(in)
+    printf("Error in file %s, line %d: %s\n", in->name, in->lineno, msg);
+  else
+    printf("%s\n",msg);
+  exit(1);
+}
+
+/*****************************************************************************
+ *Function name
+ *    memAlloc  : allocate memory                    
+ *Input params 
+ *    size      : required memory size               
+ *return value 
+ *    void *    : pointer to allocate memory or NULL 
+ ****************************************************************************/
+void * memAlloc(int size){
+  void *addr = malloc(size);
+  if(!addr){
+    printf("Failed to allocate memory");    
+    exit(1);
+  }
+  return addr;   
+}
+
+/*****************************************************************************
+ *Function name
+ *    allocAndCopy : allocate memory and initialize it  
+ *Input params 
+ *    str          : string to be put in memory         
+ *return value 
+ *    char *       : pointer to allocate memory or NULL
+ ****************************************************************************/
+char *allocAndCopy(char *str){
+  char *addr = (char *)memAlloc(strlen(str)+1);
+  strcpy(addr,str);
+  return addr;
+}
+
+
+/*****************************************************************************
+ *Function name
+ *    parseEvent    : generate event from event definition 
+ *Input params 
+ *    in            : input file handle          
+ *    ev            : new event                              
+ *Output params    
+ *    ev            : new event (parameters are passed to it)   
+ ****************************************************************************/
+void parseEvent(parse_file *in, event * ev, sequence * unnamed_types, table * named_types) {
+  char *token;
+  type_descriptor *t;
+
+  getLParenthesis(in);
+  token = getName(in);
+  ev->name = allocAndCopy(token);
+  getComa(in);
+
+  token = getQuotedString(in);
+  ev->description = allocAndCopy(token);
+  
+  token = getToken(in); //token either is a ',' or a ')'
+  if(in->type == COMA) token = getName(in);
+  ungetToken(in);
+
+  /* We have a possibly empty list of fields, containing struct implied */
+  if((in->type == NAME && strcmp(token,"field") == 0) || 
+      in->type == RPARENTHESIS) {
+    /* Insert an unnamed struct type */
+    t = (type_descriptor *)memAlloc(sizeof(type_descriptor));
+    t->type = STRUCT;
+    t->fmt = NULL;
+    if(in->type == NAME) parseFields(in,t, unnamed_types, named_types);
+    else if(in->type == RPARENTHESIS) sequence_init(&(t->fields));      
+    sequence_push(unnamed_types,t);
+    ev->type = t;
+  }
+
+  /* Or a complete type declaration but it must be a struct */
+  else if(in->type == NAME){
+    ev->type = parseType(in,NULL, unnamed_types, named_types);
+    if(ev->type->type != STRUCT && ev->type->type != NONE) in->error(in,"type must be a struct");
+  }else in->error(in,"not a struct type");
+
+  getRParenthesis(in);
+  getSemiColon(in);
+}
+
+/*****************************************************************************
+ *Function name
+ *    parseField  : get field infomation from buffer 
+ *Input params 
+ *    in          : input file handle
+ *    t           : type descriptor
+ ****************************************************************************/
+void parseFields(parse_file *in, type_descriptor *t, sequence * unnamed_types, table * named_types) {
+  char * token;
+  field *f;
+
+  sequence_init(&(t->fields));
+
+  token = getToken(in);
+  while(in->type == NAME && strcmp(token,"field") == 0) {
+    f = (field *)memAlloc(sizeof(field));
+    sequence_push(&(t->fields),f);
+
+    getLParenthesis(in);
+    f->name = (char *)allocAndCopy(getName(in));
+    getComa(in);
+    f->description = (char *)allocAndCopy(getQuotedString(in));
+    getComa(in);
+    f->type = parseType(in,NULL, unnamed_types, named_types);
+    getRParenthesis(in);
+    
+    token = getToken(in);
+    if(in->type == COMA) token = getName(in);
+    else ungetToken(in); // no more fields, it must be a ')'
+  }
+
+  if(in->type == NAME && strcmp(token,"field") != 0)
+    in->error(in,"not a field");
+}
+
+
+/*****************************************************************************
+ *Function name
+ *    parseType      : get type information, type can be : 
+ *                     Primitive:
+ *                        int(size,fmt); uint(size,fmt); float(size,fmt); 
+ *                        string(fmt); enum(size,fmt,(label1,label2...))
+ *                     Compound:
+ *                        array(arraySize, type); sequence(lengthSize,type)
+ *                       struct(field(name,type,description)...)
+ *                     type name:
+ *                        type(name,type)
+ *Input params 
+ *    in               : input file handle
+ *    inType           : a type descriptor          
+ *Return values  
+ *    type_descriptor* : a type descriptor             
+ ****************************************************************************/
+type_descriptor *parseType(parse_file *in, type_descriptor *inType, sequence * unnamed_types, table * named_types) {
+  char *token, *car;
+  type_descriptor *t;
+
+  if(inType == NULL) {
+    t = (type_descriptor *) memAlloc(sizeof(type_descriptor));
+    t->type = NONE;
+    t->fmt = NULL;
+    sequence_push(unnamed_types,t);
+  }
+  else t = inType;
+
+  token = getName(in);
+
+  if(strcmp(token,"struct") == 0) {
+    t->type = STRUCT;
+    getLParenthesis(in);
+    parseFields(in,t, unnamed_types, named_types);
+    getRParenthesis(in);
+  }
+  else if(strcmp(token,"array") == 0) {
+    t->type = ARRAY;
+    getLParenthesis(in);
+    t->size = getNumber(in);
+    getComa(in);
+    t->nested_type = parseType(in,NULL, unnamed_types, named_types);
+    getRParenthesis(in);
+  }
+  else if(strcmp(token,"sequence") == 0) {
+    t->type = SEQUENCE;
+    getLParenthesis(in);
+    t->size = getSize(in);
+    getComa(in);
+    t->nested_type = parseType(in,NULL, unnamed_types, named_types);
+    getRParenthesis(in);
+  }
+  else if(strcmp(token,"enum") == 0) {
+    t->type = ENUM;
+    sequence_init(&(t->labels));
+    getLParenthesis(in);
+    t->size = getSize(in);
+    getComa(in);
+    token = getToken(in);
+    if(in->type == QUOTEDSTRING){
+      t->fmt = allocAndCopy(token);
+      getComa(in);
+    }else ungetToken(in);
+    getLParenthesis(in);
+
+    token = getToken(in);
+    while(in->type != RPARENTHESIS) {
+      if(in->type != NAME) in->error(in,"Name token was expected");
+      car = allocAndCopy(token);
+      token = getToken(in);
+      if(in->type == COMA){
+       sequence_push(&(t->labels),allocAndCopy(car));
+       token = getName(in);
+      }else if(in->type == EQUAL){ //label followed by '=' and a number, e.x. label1 = 1,
+       car = appendString(car, token);
+       token = getToken(in);
+       if(in->type != NUMBER) in->error(in,"Number token was expected");
+       car = appendString(car, token);
+       sequence_push(&(t->labels),allocAndCopy(car));  
+       token = getToken(in);
+       if(in->type == COMA) token = getName(in);
+       else ungetToken(in);
+      }else{
+       sequence_push(&(t->labels),allocAndCopy(car));
+       ungetToken(in);
+      }
+    }  
+    getRParenthesis(in);
+    getRParenthesis(in);
+  }
+  else if(strcmp(token,"int") == 0) {
+    t->type = INT;
+    getLParenthesis(in);
+    t->size = getSize(in);
+    token = getToken(in);
+    if(in->type == COMA) {
+      token = getQuotedString(in);
+      t->fmt = allocAndCopy(token);
+    }
+    else ungetToken(in);
+    getRParenthesis(in);
+  }
+  else if(strcmp(token,"uint") == 0) {
+    t->type = UINT;
+    getLParenthesis(in);
+    t->size = getSize(in);
+    token = getToken(in);
+    if(in->type == COMA) {
+      token = getQuotedString(in);
+      t->fmt = allocAndCopy(token);
+    }
+    else ungetToken(in);
+    getRParenthesis(in);
+  }
+  else if(strcmp(token,"float") == 0) {
+    t->type = FLOAT;
+    getLParenthesis(in);
+    t->size = getSize(in);
+    token = getToken(in);
+    if(in->type == COMA) {
+      token = getQuotedString(in);
+      t->fmt = allocAndCopy(token);
+    }
+    else ungetToken(in);
+    getRParenthesis(in);
+  }
+  else if(strcmp(token,"string") == 0) {
+    t->type = STRING;
+    getLParenthesis(in);
+    token = getToken(in);
+    if(in->type == QUOTEDSTRING) t->fmt = allocAndCopy(token);
+    else ungetToken(in);
+    getRParenthesis(in);
+  }
+  else {
+    /* Must be a named type */
+    if(inType != NULL) 
+      in->error(in,"Named type cannot refer to a named type");
+    else {
+      free(t);
+      sequence_pop(unnamed_types);
+      return(find_named_type(token, named_types));
+    }
+  }
+
+  return t;
+}    
+
+/*****************************************************************************
+ *Function name
+ *    find_named_type     : find a named type from hash table 
+ *Input params 
+ *    name                : type name          
+ *Return values  
+ *    type_descriptor *   : a type descriptor                       
+ *****************************************************************************/
+
+type_descriptor * find_named_type(char *name, table * named_types)
+{ 
+  type_descriptor *t;
+
+  t = table_find(named_types,name);
+  if(t == NULL) {
+    t = (type_descriptor *)memAlloc(sizeof(type_descriptor));
+    t->type = NONE;
+    t->fmt = NULL;
+    table_insert(named_types,allocAndCopy(name),t);
+  }
+  return t;
+}  
+
+/*****************************************************************************
+ *Function name
+ *    parseTypeDefinition : get type information from type definition 
+ *Input params 
+ *    in                  : input file handle          
+ *****************************************************************************/
+void parseTypeDefinition(parse_file * in, sequence * unnamed_types, table * named_types){
+  char *token;
+  type_descriptor *t;
+
+  getLParenthesis(in);
+  token = getName(in);
+  t = find_named_type(token, named_types);
+  getComa(in);
+
+  if(t->type != NONE) in->error(in,"redefinition of named type");
+  parseType(in,t, unnamed_types, named_types);
+
+  getRParenthesis(in);
+  getSemiColon(in);
+}
+
+/**************************************************************************
+ * Function :
+ *    getComa, getName, getNumber, getLParenthesis, getRParenthesis, getEqual
+ * Description :
+ *    Read a token from the input file, check its type, return it scontent.
+ *
+ * Parameters :
+ *    in , input file handle.
+ *
+ * Return values :
+ *    address of token content.
+ *
+ **************************************************************************/
+
+char *getName(parse_file * in) {
+  char *token;
+
+  token = getToken(in);
+  if(in->type != NAME) in->error(in,"Name token was expected");
+  return token;
+}
+
+int getNumber(parse_file * in) {
+  char *token;
+
+  token = getToken(in);
+  if(in->type != NUMBER) in->error(in, "Number token was expected");
+  return atoi(token);
+}
+
+char *getComa(parse_file * in) {
+  char *token;
+
+  token = getToken(in);
+  if(in->type != COMA) in->error(in, "Coma token was expected");
+  return token;
+}
+
+char *getLParenthesis(parse_file * in) {
+  char *token;
+
+  token = getToken(in);
+  if(in->type != LPARENTHESIS) in->error(in, "Left parenthesis was expected");
+  return token;
+}
+
+char *getRParenthesis(parse_file * in) {
+  char *token;
+
+  token = getToken(in);
+  if(in->type != RPARENTHESIS) in->error(in, "Right parenthesis was expected");
+  return token;
+}
+
+char *getQuotedString(parse_file * in) {
+  char *token;
+
+  token = getToken(in);
+  if(in->type != QUOTEDSTRING) in->error(in, "quoted string was expected");
+  return token;
+}
+
+char * getSemiColon(parse_file *in){
+  char *token;
+
+  token = getToken(in);
+  if(in->type != SEMICOLON) in->error(in, "semicolon was expected");
+  return token;
+}
+
+char * getEqual(parse_file *in){
+  char *token;
+
+  token = getToken(in);
+  if(in->type != EQUAL) in->error(in, "equal was expected");
+  return token;
+}
+
+/******************************************************************
+ * Function :
+ *    getToken, ungetToken
+ * Description :
+ *    Read a token from the input file and return its type and content.
+ *    Line numbers are accounted for and whitespace/comments are skipped.
+ *
+ * Parameters :
+ *    in, input file handle.
+ *
+ * Return values :
+ *    address of token content.
+ *
+ ******************************************************************/
+
+void ungetToken(parse_file * in)
+{
+  in->unget = 1;
+}
+
+char *getToken(parse_file * in)
+{
+  FILE *fp = in->fp;
+  char car, car1;
+  int pos = 0, escaped;
+
+  if(in->unget == 1) {
+    in->unget = 0;
+    return in->buffer;
+  }
+
+  /* skip whitespace and comments */
+
+  while((car = getc(fp)) != EOF) {
+    if(car == '/') {
+      car1 = getc(fp); 
+      if(car1 == '*') skipComment(in);
+      else if(car1 == '/') skipEOL(in);
+      else { 
+        car1 = ungetc(car1,fp);
+        break;
+      }
+    }
+    else if(car == '\n') in->lineno++;
+    else if(!isspace(car)) break;
+  }
+
+  switch(car) {
+    case EOF:
+      in->type = ENDFILE;
+      break;
+    case ',':
+      in->type = COMA;
+      in->buffer[pos] = car;
+      pos++;
+      break;
+    case '(':
+      in->type = LPARENTHESIS;
+      in->buffer[pos] = car;
+      pos++;
+      break;
+    case ')':
+      in->type = RPARENTHESIS;
+      in->buffer[pos] = car;
+      pos++;
+      break;
+    case ';':
+      in->type = SEMICOLON;
+      in->buffer[pos] = car;
+      pos++;
+      break;
+    case '=':
+      in->type = EQUAL;
+      in->buffer[pos] = car;
+      pos++;
+      break;
+    case '"':
+      escaped = 0;
+      while((car = getc(fp)) != EOF && pos < BUFFER_SIZE) {
+        if(car == '\\' && escaped == 0) {
+         in->buffer[pos] = car;
+         pos++;
+          escaped = 1;
+          continue;
+        }
+        if(car == '"' && escaped == 0) break;
+        if(car == '\n' && escaped == 0) {
+          in->error(in, "non escaped newline inside quoted string");
+        }
+        if(car == '\n') in->lineno++;
+        in->buffer[pos] = car;
+        pos++;
+        escaped = 0;
+      }
+      if(car == EOF) in->error(in,"no ending quotemark");
+      if(pos == BUFFER_SIZE) in->error(in, "quoted string token too large");
+      in->type = QUOTEDSTRING;
+      break;
+    default:
+      if(isdigit(car)) {
+        in->buffer[pos] = car;
+        pos++;
+        while((car = getc(fp)) != EOF && pos < BUFFER_SIZE) {
+          if(!isdigit(car)) {
+            ungetc(car,fp);
+            break;
+          }
+          in->buffer[pos] = car;
+          pos++;
+        }
+       if(car == EOF) ungetc(car,fp);
+        if(pos == BUFFER_SIZE) in->error(in, "number token too large");
+        in->type = NUMBER;
+      }    
+      else if(isalpha(car)) {
+        in->buffer[0] = car;
+        pos = 1;
+        while((car = getc(fp)) != EOF && pos < BUFFER_SIZE) {
+          if(!isalnum(car)) {
+            ungetc(car,fp);
+            break;
+          }
+          in->buffer[pos] = car;
+          pos++;
+        }
+       if(car == EOF) ungetc(car,fp);
+        if(pos == BUFFER_SIZE) in->error(in, "name token too large");
+        in->type = NAME;
+      }
+      else in->error(in, "invalid character, unrecognized token");
+  }
+  in->buffer[pos] = 0;
+  return in->buffer;
+}
+
+void skipComment(parse_file * in)
+{
+  char car;
+  while((car = getc(in->fp)) != EOF) {
+    if(car == '\n') in->lineno++;
+    else if(car == '*') {
+      car = getc(in->fp);
+      if(car ==EOF) break;
+      if(car == '/') return;
+      ungetc(car,in->fp);
+    }
+  }
+  if(car == EOF) in->error(in,"comment begining with '/*' has no ending '*/'");
+}
+
+void skipEOL(parse_file * in)
+{
+  char car;
+  while((car = getc(in->fp)) != EOF) {
+    if(car == '\n') {
+      ungetc(car,in->fp);
+      break;
+    }
+  }
+  if(car == EOF)ungetc(car, in->fp);
+}
+
+int isalpha(char c){
+  int i,j;
+  if(c == '_')return 1;
+  i = c - 'a';
+  j = c - 'A';
+  if((i>=0 && i<26) || (j>=0 && j<26)) return 1;
+  return 0;
+}
+
+int isalnum(char c){
+  return (isalpha(c) || isdigit(c));
+}
+
+/*****************************************************************************
+ *Function name
+ *    checkNamedTypesImplemented : check if all named types have definition
+ ****************************************************************************/
+void checkNamedTypesImplemented(table * named_types){
+  type_descriptor *t;
+  int pos;
+  char str[256];
+
+  for(pos = 0 ; pos < named_types->values.position; pos++) {
+    t = (type_descriptor *) named_types->values.array[pos];
+    if(t->type == NONE){
+      sprintf(str,"named type '%s' has no definition",(char*)named_types->keys.array[pos]);
+      error_callback(NULL,str);   
+    }
+  }
+}
+
+
+/*****************************************************************************
+ *Function name
+ *    generateChecksum  : generate checksum for the facility
+ *Input Params
+ *    facName           : name of facility
+ *Output Params
+ *    checksum          : checksum for the facility
+ ****************************************************************************/
+void generateChecksum( char* facName, unsigned long * checksum, sequence * events){
+  unsigned long crc ;
+  int pos, nestedStruct;
+  event * ev;
+  char str[256];
+
+  crc = crc32(facName);
+  for(pos = 0; pos < events->position; pos++){
+    ev = (event *)(events->array[pos]);
+    ev->nested = 0; //by default, event has no nested struct
+    crc = partial_crc32(ev->name,crc);    
+    nestedStruct = 0;
+    if(ev->type->type != STRUCT){
+      sprintf(str,"event '%s' has a type other than STRUCT",ev->name);
+      error_callback(NULL, str);
+    }
+    crc = getTypeChecksum(crc, ev->type,&nestedStruct);
+    if(nestedStruct ) ev->nested = 1;
+  }
+  *checksum = crc;
+}
+
+/*****************************************************************************
+ *Function name
+ *   getTypeChecksum    : generate checksum by type info
+ *Input Params
+ *    crc               : checksum generated so far
+ *    type              : type descriptor containing type info
+ *Return value          
+ *    unsigned long     : checksum 
+ *****************************************************************************/
+unsigned long getTypeChecksum(unsigned long aCrc, type_descriptor * type, int * nestedStruct){
+  unsigned long crc = aCrc;
+  char * str = NULL, buf[16];
+  int flag = 0, pos, max, min;
+  field * fld;
+  data_type dt;
+
+  switch(type->type){
+    case INT:
+      str = intOutputTypes[type->size];
+      break;
+    case UINT:
+      str = uintOutputTypes[type->size];
+      break;
+    case FLOAT:
+      str = floatOutputTypes[type->size];
+      break;
+    case STRING:
+      str = allocAndCopy("string");
+      flag = 1;
+      break;
+    case ENUM:
+      str = appendString("enum ", uintOutputTypes[type->size]);
+      flag = 1;
+      break;
+    case ARRAY:
+      sprintf(buf,"%d\0",type->size);
+      str = appendString("array ",buf);
+      flag = 1;
+      break;
+    case SEQUENCE:
+      sprintf(buf,"%d\0",type->size);
+      str = appendString("sequence ",buf);
+      flag = 1;
+      break;
+    case STRUCT:
+      str = allocAndCopy("struct");
+      flag = 1;
+      break;
+    default:
+      error_callback(NULL, "named type has no definition");
+      break;
+  }
+
+  crc = partial_crc32(str,crc);
+  if(flag) free(str);
+
+  if(type->fmt) crc = partial_crc32(type->fmt,crc);
+    
+  if(type->type == ARRAY || type->type == SEQUENCE){
+    dt = type->nested_type->type;
+    if(dt == ARRAY || dt == SEQUENCE || dt == STRUCT) *nestedStruct += 1;
+    crc = getTypeChecksum(crc,type->nested_type,nestedStruct);
+  }else if(type->type == STRUCT){
+    if(type->fields.position != 0){//not a empty struct
+      max = 0;      
+      for(pos =0; pos < type->fields.position; pos++){
+       min = 0;
+       fld = (field *) type->fields.array[pos];
+       crc = partial_crc32(fld->name,crc);
+       if(fld->type->type == STRUCT) min++;
+       crc = getTypeChecksum(crc, fld->type,&min);
+       if(min>max) max = min;
+      }
+      *nestedStruct += max;
+    }
+  }else if(type->type == ENUM){
+    for(pos = 0; pos < type->labels.position; pos++)
+      crc = partial_crc32((char*)type->labels.array[pos],crc);    
+  }
+
+  return crc;
+}
+
+
+/* Event type descriptors */
+void freeType(type_descriptor * tp){
+  int pos2;
+  field *f;
+
+  if(tp->fmt != NULL) free(tp->fmt);
+  if(tp->type == ENUM) {
+    for(pos2 = 0; pos2 < tp->labels.position; pos2++) {
+      free(tp->labels.array[pos2]);
+    }
+    sequence_dispose(&(tp->labels));
+  }
+  if(tp->type == STRUCT) {
+    for(pos2 = 0; pos2 < tp->fields.position; pos2++) {
+      f = (field *) tp->fields.array[pos2];
+      free(f->name);
+      free(f->description);
+      free(f);
+    }
+    sequence_dispose(&(tp->fields));
+  }
+}
+
+void freeNamedType(table * t){
+  int pos;
+  type_descriptor * td;
+
+  for(pos = 0 ; pos < t->keys.position; pos++) {
+    free((char *)t->keys.array[pos]);
+    td = (type_descriptor*)t->values.array[pos];
+    freeType(td);
+    free(td);
+  }
+}
+
+void freeTypes(sequence *t) {
+  int pos, pos2;
+  type_descriptor *tp;
+  field *f;
+
+  for(pos = 0 ; pos < t->position; pos++) {
+    tp = (type_descriptor *)t->array[pos];
+    freeType(tp);
+    free(tp);
+  }
+}
+
+void freeEvents(sequence *t) {
+  int pos;
+  event *ev;
+
+  for(pos = 0 ; pos < t->position; pos++) {
+    ev = (event *) t->array[pos];
+    free(ev->name);
+    free(ev->description);
+    free(ev);
+  }
+
+}
+
+
+/* Extensible array */
+
+void sequence_init(sequence *t) {
+  t->size = 10;
+  t->position = 0;
+  t->array = (void **)memAlloc(t->size * sizeof(void *));
+}
+
+void sequence_dispose(sequence *t) {
+  t->size = 0;
+  free(t->array);
+  t->array = NULL;
+}
+
+void sequence_push(sequence *t, void *elem) {
+  void **tmp;
+
+  if(t->position >= t->size) {
+    tmp = t->array;
+    t->array = (void **)memAlloc(t->size * 2 * sizeof(void *));
+    memcpy(t->array, tmp, t->size * sizeof(void *));
+    t->size = t->size * 2;
+    free(tmp);
+  }
+  t->array[t->position] = elem;
+  t->position++;
+}
+
+void *sequence_pop(sequence *t) {
+  return t->array[t->position--];
+}
+
+
+/* Hash table API, implementation is just linear search for now */
+
+void table_init(table *t) {
+  sequence_init(&(t->keys));
+  sequence_init(&(t->values));
+}
+
+void table_dispose(table *t) {
+  sequence_dispose(&(t->keys));
+  sequence_dispose(&(t->values));
+}
+
+void table_insert(table *t, char *key, void *value) {
+  sequence_push(&(t->keys),key);
+  sequence_push(&(t->values),value);
+}
+
+void *table_find(table *t, char *key) {
+  int pos;
+  for(pos = 0 ; pos < t->keys.position; pos++) {
+    if(strcmp((char *)key,(char *)t->keys.array[pos]) == 0)
+      return(t->values.array[pos]);
+  }
+  return NULL;
+}
+
+
+/* Concatenate strings */
+
+char *appendString(char *s, char *suffix) {
+  char *tmp;
+
+  tmp = (char *)memAlloc(strlen(s) + strlen(suffix) + 1);
+  strcpy(tmp,s);
+  strcat(tmp,suffix);  
+  return tmp;
+}
+
+
diff --git a/ltt/branches/poly/misc/parser.h b/ltt/branches/poly/misc/parser.h
new file mode 100644 (file)
index 0000000..0d42e93
--- /dev/null
@@ -0,0 +1,182 @@
+
+/* Extensible array container */
+
+typedef struct _sequence {
+  int size;
+  int position;
+  void **array;
+} sequence;
+
+void sequence_init(sequence *t);
+void sequence_dispose(sequence *t);
+void sequence_push(sequence *t, void *elem);
+void *sequence_pop(sequence *t);
+
+
+/* Hash table */
+
+typedef struct _table {
+  sequence keys;
+  sequence values;
+} table;
+
+void table_init(table *t);
+void table_dispose(table *t);
+void table_insert(table *t, char *key, void *value);
+void *table_find(table *t, char *key);
+
+
+/* Token types */
+
+typedef enum _token_type {
+  ENDFILE,
+  COMA,
+  LPARENTHESIS,
+  RPARENTHESIS,
+  SEMICOLON,
+  EQUAL,
+  QUOTEDSTRING,
+  NUMBER,
+  NAME
+} token_type;
+
+
+/* State associated with a file being parsed */
+typedef struct _parse_file {
+  char *name;
+  FILE * fp;
+  int lineno;
+  char *buffer;
+  token_type type; 
+  int unget;
+  void (*error) (struct _parse_file *, char *);
+} parse_file;
+
+void ungetToken(parse_file * in);
+char *getToken(parse_file *in);
+char *getComa(parse_file *in);
+char *getLParenthesis(parse_file *in);
+char *getRParenthesis(parse_file *in);
+char *getSemiColon(parse_file *in);
+char *getQuotedString(parse_file *in);
+char *getName(parse_file *in);
+int getNumber(parse_file *in);
+char * getEqual(parse_file *in);
+
+void skipComment(parse_file * in);
+void skipEOL(parse_file * in);
+int isalpha(char car);
+int isalnum(char car);
+
+/* Some constants */
+
+static const int BUFFER_SIZE = 1024;
+
+
+/* Events data types */
+
+typedef enum _data_type {
+  INT,
+  UINT,
+  FLOAT,
+  STRING,
+  ENUM,
+  ARRAY,
+  SEQUENCE,
+  STRUCT,
+  NONE
+} data_type;
+
+
+/* Event type descriptors */
+
+typedef struct _type_descriptor {
+  data_type type;
+  char *fmt;
+  int size;
+  sequence labels; // for enumeration
+  sequence fields; // for structure
+  struct _type_descriptor *nested_type; // for array and sequence 
+} type_descriptor;
+
+
+/* Fields within types */
+
+typedef struct _field{
+  char *name;
+  char *description;
+  type_descriptor *type;
+} field;
+
+
+/* Events definitions */
+
+typedef struct _event {  
+  char *name;
+  char *description;
+  type_descriptor *type; 
+  int nested;
+} event;
+
+int getSize(parse_file *in);
+unsigned long getTypeChecksum(unsigned long aCrc, type_descriptor * type, int * nestedStruct);
+
+void parseEvent(parse_file *in, event *ev, sequence * unnamed_types, table * named_types);
+void parseTypeDefinition(parse_file *in, sequence * unnamed_types, table * named_types);
+type_descriptor *parseType(parse_file *in, type_descriptor *t, sequence * unnamed_types, table * named_types);
+void parseFields(parse_file *in, type_descriptor *t, sequence * unnamed_types, table * named_types);
+void checkNamedTypesImplemented(table * namedTypes);
+type_descriptor * find_named_type(char *name, table * named_types);
+void generateChecksum(char * facName, unsigned long * checksum, sequence * events);
+
+
+
+static char *intOutputTypes[] = {
+  "int8_t", "int16_t", "int32_t", "int64_t", "short int", "int", "long int" };
+
+static char *uintOutputTypes[] = {
+  "uint8_t", "uint16_t", "uint32_t", "uint64_t", "unsigned short int", 
+  "unsigned int", "unsigned long int" };
+
+static char *floatOutputTypes[] = {
+  "undef", "undef", "float", "double", "undef", "float", "double" };
+
+
+/* Dynamic memory allocation and freeing */
+
+void * memAlloc(int size);
+char *allocAndCopy(char * str);
+char *appendString(char *s, char *suffix);
+void freeTypes(sequence *t);
+void freeType(type_descriptor * td);
+void freeEvents(sequence *t);
+void freeNamedType(table * t);
+void error_callback(parse_file *in, char *msg);
+
+
+//checksum part
+static const unsigned int crctab32[] =
+{
+#include "crc32.tab"
+};
+
+static inline unsigned long
+partial_crc32_one(unsigned char c, unsigned long crc)
+{
+  return crctab32[(crc ^ c) & 0xff] ^ (crc >> 8);
+}
+
+static inline unsigned long
+partial_crc32(const char *s, unsigned long crc)
+{
+  while (*s)
+    crc = partial_crc32_one(*s++, crc);
+  return crc;
+}
+
+static inline unsigned long
+crc32(const char *s)
+{
+  return partial_crc32(s, 0xffffffff) ^ 0xffffffff;
+}
+
diff --git a/ltt/branches/poly/misc/trace1.stats b/ltt/branches/poly/misc/trace1.stats
new file mode 100644 (file)
index 0000000..beb9a58
--- /dev/null
@@ -0,0 +1,4550 @@
+Trace start time: (1042824617, 654653) 
+Trace end time: (1042824737, 641416) 
+Trace duration: (119, 986763) 
+
+Number of occurences of:
+       Events: 5311979 
+       Scheduling changes: 210109 
+       Kernel timer tics: 11999 
+       System call entries: 700337 
+       System call exits: 700211 
+       Trap entries: 58021 
+       Trap exits: 58021 
+       IRQ entries: 13998 
+       IRQ exits: 13998 
+       Bottom halves: 12664 
+       Timer expiries: 4962 
+       Page allocations: 83259 
+       Page frees: 111748 
+       Packets Out: 0 
+       Packets In: 0 
+
+Analysis details: 
+       Process (3045, 627): expr: 
+               Number of system calls: 54 
+               Number of traps: 125 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 6 
+               Time executing process code: (0, 1152) => 0.00 % 
+               Time running: (0, 2180) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 10)
+               munmap:          2       (0, 14)
+               mprotect:        1       (0, 6)
+               read:            1       (0, 7)
+               fstat64:         3       (0, 5)
+               open:            3       (0, 26)
+               old_mmap:        6       (0, 25)
+               brk:             4       (0, 2)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 243)
+               stat64:          4       (0, 27)
+               close:           5       (0, 10)
+               dup2:            1       (0, 2)
+               setpgid:         1       (0, 11)
+               rt_sigaction:    13      (0, 11)
+               rt_sigprocmask:  5       (0, 3)
+               getpid:          1       (0, 1)
+       Process (3044, 627): getTime: 
+               Number of system calls: 47 
+               Number of traps: 116 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 14 
+               Time executing process code: (0, 1054) => 0.00 % 
+               Time running: (0, 1984) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 9)
+               gettimeofday:    1       (0, 1)
+               munmap:          2       (0, 15)
+               mprotect:        1       (0, 5)
+               read:            1       (0, 7)
+               fstat64:         3       (0, 6)
+               open:            3       (0, 25)
+               old_mmap:        6       (0, 21)
+               brk:             1       (0, 1)
+               newuname:        1       (0, 2)
+               execve:          1       (0, 244)
+               close:           4       (0, 4)
+               dup2:            1       (0, 2)
+               setpgid:         1       (0, 11)
+               rt_sigaction:    13      (0, 7)
+               rt_sigprocmask:  5       (0, 4)
+               getpid:          1       (0, 1)
+       Process (3043, 3042): gnuplot_x11: 
+               Number of system calls: 204 
+               Number of traps: 235 
+               Quantity of data read from files: 61372 
+               Quantity of data written to files: 9670 
+               Time executing process code: (0, 6232) => 0.01 % 
+               Time running: (0, 8631) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               select:          6       (0, 98122)
+               stat64:          1       (0, 10)
+               write:           46      (0, 226)
+               writev:          4       (0, 29)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 68)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 24)
+               mprotect:        6       (0, 20)
+               read:            63      (0, 20874)
+               fstat64:         8       (0, 13)
+               open:            12      (0, 123)
+               old_mmap:        18      (0, 66)
+               brk:             10      (0, 19)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 276)
+               dup2:            1       (0, 3)
+               close:           10      (0, 52)
+       Process (3042, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7934) => 0.01 % 
+               Time running: (0, 11518) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 30724)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 149)
+               pipe:            1       (0, 34)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 18)
+               read:            7       (0, 59)
+               close:           9       (0, 19)
+               fstat64:         8       (0, 14)
+               open:            9       (0, 88)
+               old_mmap:        16      (0, 62)
+               brk:             8       (0, 19)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 228)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 764)
+               rt_sigprocmask:  508     (0, 316)
+               getpid:          1       (0, 1)
+       Process (3041, 3040): gnuplot_x11: 
+               Number of system calls: 211 
+               Number of traps: 237 
+               Quantity of data read from files: 30780 
+               Quantity of data written to files: 9662 
+               Time executing process code: (0, 6386) => 0.01 % 
+               Time running: (0, 8782) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           5       (0, 9)
+               select:          6       (0, 77496)
+               stat64:          1       (0, 9)
+               write:           47      (0, 242)
+               writev:          4       (0, 30)
+               access:          1       (0, 11)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 65)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 16)
+               read:            64      (0, 29224)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 116)
+               old_mmap:        18      (0, 64)
+               brk:             10      (0, 24)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 256)
+               dup2:            1       (0, 2)
+               close:           10      (0, 48)
+       Process (3040, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7716) => 0.01 % 
+               Time running: (0, 11073) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 89818)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 106)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 60)
+               close:           9       (0, 20)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 91)
+               old_mmap:        16      (0, 59)
+               brk:             8       (0, 15)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 225)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 732)
+               rt_sigprocmask:  508     (0, 284)
+               getpid:          1       (0, 1)
+       Process (3039, 3038): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30884 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6702) => 0.01 % 
+               Time running: (0, 9207) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 20)
+               stat64:          1       (0, 10)
+               write:           50      (0, 270)
+               select:          6       (0, 315)
+               writev:          4       (0, 27)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 62)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 24)
+               mprotect:        6       (0, 19)
+               read:            68      (0, 23715)
+               fstat64:         8       (0, 12)
+               open:            12      (0, 118)
+               old_mmap:        18      (0, 63)
+               brk:             10      (0, 27)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 256)
+               dup2:            1       (0, 2)
+               close:           10      (0, 39)
+       Process (3038, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7716) => 0.01 % 
+               Time running: (0, 11080) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 129068)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 3)
+               fork:            1       (0, 109)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 34)
+               mprotect:        7       (0, 25)
+               read:            7       (0, 61)
+               close:           9       (0, 20)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 88)
+               old_mmap:        16      (0, 56)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 226)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 732)
+               rt_sigprocmask:  508     (0, 307)
+               getpid:          1       (0, 1)
+       Process (3037, 3036): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30884 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6796) => 0.01 % 
+               Time running: (0, 9355) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 20)
+               stat64:          1       (0, 10)
+               write:           50      (0, 284)
+               select:          6       (0, 45210)
+               writev:          4       (0, 27)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 61)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 21)
+               mprotect:        6       (0, 16)
+               read:            68      (0, 15788)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 126)
+               old_mmap:        18      (0, 64)
+               brk:             10      (0, 29)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 259)
+               dup2:            1       (0, 2)
+               close:           10      (0, 46)
+       Process (3036, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7752) => 0.01 % 
+               Time running: (0, 11037) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 78328)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 106)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 34)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 59)
+               close:           9       (0, 18)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 92)
+               old_mmap:        16      (0, 61)
+               brk:             8       (0, 14)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 224)
+               ioctl:           2       (0, 23)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 715)
+               rt_sigprocmask:  508     (0, 270)
+               getpid:          1       (0, 1)
+       Process (3035, 3034): gnuplot_x11: 
+               Number of system calls: 209 
+               Number of traps: 237 
+               Quantity of data read from files: 30748 
+               Quantity of data written to files: 9662 
+               Time executing process code: (0, 6431) => 0.01 % 
+               Time running: (0, 8847) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           4       (0, 8)
+               select:          6       (0, 18927)
+               stat64:          1       (0, 10)
+               write:           47      (0, 248)
+               writev:          4       (0, 27)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 67)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 24)
+               mprotect:        6       (0, 15)
+               read:            63      (0, 21757)
+               fstat64:         8       (0, 13)
+               open:            12      (0, 118)
+               old_mmap:        18      (0, 65)
+               brk:             10      (0, 27)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 259)
+               dup2:            1       (0, 2)
+               close:           10      (0, 48)
+       Process (3034, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7669) => 0.01 % 
+               Time running: (0, 11023) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 120555)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 103)
+               pipe:            1       (0, 22)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 0)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 34)
+               mprotect:        7       (0, 21)
+               read:            7       (0, 61)
+               close:           9       (0, 18)
+               fstat64:         8       (0, 13)
+               open:            9       (0, 89)
+               old_mmap:        16      (0, 60)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 230)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 729)
+               rt_sigprocmask:  508     (0, 307)
+               getpid:          1       (0, 1)
+       Process (3033, 3032): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30884 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6775) => 0.01 % 
+               Time running: (0, 9273) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 20)
+               stat64:          1       (0, 9)
+               write:           50      (0, 270)
+               select:          6       (0, 7833)
+               writev:          4       (0, 29)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 61)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 24)
+               mprotect:        6       (0, 18)
+               read:            68      (0, 21964)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 127)
+               old_mmap:        18      (0, 62)
+               brk:             10      (0, 30)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 243)
+               dup2:            1       (0, 2)
+               close:           10      (0, 44)
+       Process (3032, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 8256) => 0.01 % 
+               Time running: (0, 11349) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 22395)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 101)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 0)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 18)
+               read:            7       (0, 61)
+               close:           9       (0, 19)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 88)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 17)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 228)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    1017    (0, 716)
+               rt_sigprocmask:  508     (0, 304)
+               getpid:          1       (0, 1)
+       Process (3031, 3030): gnuplot_x11: 
+               Number of system calls: 227 
+               Number of traps: 237 
+               Quantity of data read from files: 41124 
+               Quantity of data written to files: 9678 
+               Time executing process code: (0, 6966) => 0.01 % 
+               Time running: (0, 9505) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 21)
+               stat64:          1       (0, 13)
+               write:           50      (0, 276)
+               select:          7       (0, 98646)
+               writev:          4       (0, 49)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 61)
+               rt_sigaction:    2       (0, 3)
+               munmap:          2       (0, 21)
+               mprotect:        6       (0, 16)
+               read:            69      (0, 1103)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 135)
+               old_mmap:        18      (0, 63)
+               brk:             10      (0, 30)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 242)
+               dup2:            1       (0, 2)
+               close:           10      (0, 43)
+       Process (3030, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7833) => 0.01 % 
+               Time running: (0, 11040) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 110)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 106)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 0)
+               geteuid:         1       (0, 0)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 63)
+               close:           9       (0, 19)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 91)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 12)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 232)
+               ioctl:           2       (0, 23)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 722)
+               rt_sigprocmask:  508     (0, 293)
+               getpid:          1       (0, 1)
+       Process (3029, 3028): gnuplot_x11: 
+               Number of system calls: 215 
+               Number of traps: 237 
+               Quantity of data read from files: 41052 
+               Quantity of data written to files: 9666 
+               Time executing process code: (0, 6413) => 0.01 % 
+               Time running: (0, 8814) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           6       (0, 11)
+               select:          7       (0, 41608)
+               stat64:          1       (0, 9)
+               write:           47      (0, 236)
+               writev:          4       (0, 30)
+               access:          1       (0, 11)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 67)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 18)
+               read:            66      (0, 11517)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 115)
+               old_mmap:        18      (0, 85)
+               brk:             10      (0, 19)
+               newuname:        6       (0, 9)
+               execve:          1       (0, 257)
+               dup2:            1       (0, 2)
+               close:           10      (0, 48)
+       Process (3028, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7641) => 0.01 % 
+               Time running: (0, 11019) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 57)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 3)
+               fork:            1       (0, 104)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 21)
+               read:            7       (0, 61)
+               close:           9       (0, 19)
+               fstat64:         8       (0, 14)
+               open:            9       (0, 87)
+               old_mmap:        16      (0, 61)
+               brk:             8       (0, 14)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 231)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    1017    (0, 738)
+               rt_sigprocmask:  508     (0, 353)
+               getpid:          1       (0, 1)
+       Process (3027, 3026): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30908 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6784) => 0.01 % 
+               Time running: (0, 9391) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 23)
+               select:          6       (0, 66645)
+               stat64:          1       (0, 8)
+               write:           50      (0, 269)
+               writev:          4       (0, 30)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 68)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 27)
+               mprotect:        6       (0, 19)
+               read:            68      (0, 75542)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 120)
+               old_mmap:        18      (0, 69)
+               brk:             10      (0, 28)
+               newuname:        6       (0, 10)
+               execve:          1       (0, 301)
+               dup2:            1       (0, 3)
+               close:           10      (0, 50)
+       Process (3026, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7764) => 0.01 % 
+               Time running: (0, 11563) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 151359)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 3)
+               fork:            1       (0, 108)
+               pipe:            1       (0, 22)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 25)
+               read:            7       (0, 101)
+               close:           9       (0, 13)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 95)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 17)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 254)
+               ioctl:           2       (0, 26)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 758)
+               rt_sigprocmask:  508     (0, 322)
+               getpid:          1       (0, 0)
+       Process (3025, 3024): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6837) => 0.01 % 
+               Time running: (0, 9388) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 22)
+               select:          5       (0, 24)
+               stat64:          1       (0, 10)
+               write:           50      (0, 278)
+               writev:          4       (0, 32)
+               access:          1       (0, 12)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 74)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 19)
+               read:            67      (0, 12578)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 131)
+               old_mmap:        18      (0, 67)
+               brk:             10      (0, 28)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 272)
+               dup2:            1       (0, 3)
+               close:           10      (0, 40)
+       Process (3024, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7779) => 0.01 % 
+               Time running: (0, 11550) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 10592)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 3)
+               fork:            1       (0, 111)
+               pipe:            1       (0, 23)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 25)
+               read:            7       (0, 61)
+               close:           9       (0, 21)
+               fstat64:         8       (0, 15)
+               open:            9       (0, 91)
+               old_mmap:        16      (0, 60)
+               brk:             8       (0, 17)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 242)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 751)
+               rt_sigprocmask:  508     (0, 342)
+               getpid:          1       (0, 1)
+       Process (3023, 627): gs-gnu: 
+               Number of system calls: 22598 
+               Number of traps: 2501 
+               Quantity of data read from files: 39575101 
+               Quantity of data written to files: 3366983 
+               Time executing process code: (5, 451569) => 4.54 % 
+               Time running: (5, 630093) => 4.69 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          1579    (0, 19379)
+               access:          6       (0, 53)
+               fcntl64:         6       (0, 6)
+               socketcall:      6       (0, 112)
+               write:           1903    (0, 22359)
+               llseek:          7615    (0, 14240)
+               stat64:          2       (0, 25)
+               times:           1       (0, 1)
+               sysctl:          1       (0, 6)
+               setrlimit:       1       (0, 1)
+               getrlimit:       1       (0, 1)
+               munmap:          65      (0, 496)
+               mprotect:        14      (0, 40)
+               read:            10159   (0, 71778)
+               close:           80      (0, 366)
+               fstat64:         136     (0, 167)
+               open:            496     (0, 2917)
+               old_mmap:        99      (0, 345)
+               brk:             397     (0, 3616)
+               newuname:        10      (0, 18)
+               execve:          1       (0, 248)
+               ioctl:           2       (0, 17)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    10      (0, 8)
+               rt_sigprocmask:  4       (0, 5)
+               getpid:          2       (0, 2)
+       Process (3022, 627): gs-gnu: 
+               Number of system calls: 22598 
+               Number of traps: 2501 
+               Quantity of data read from files: 39575101 
+               Quantity of data written to files: 3366983 
+               Time executing process code: (5, 445155) => 4.54 % 
+               Time running: (5, 622502) => 4.69 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          1579    (0, 19397)
+               access:          6       (0, 51)
+               fcntl64:         6       (0, 10)
+               socketcall:      6       (0, 110)
+               write:           1903    (0, 22375)
+               llseek:          7615    (0, 14168)
+               stat64:          2       (0, 28)
+               times:           1       (0, 1)
+               sysctl:          1       (0, 6)
+               setrlimit:       1       (0, 1)
+               getrlimit:       1       (0, 1)
+               munmap:          65      (0, 497)
+               mprotect:        14      (0, 43)
+               read:            10159   (0, 71528)
+               close:           80      (0, 271)
+               fstat64:         136     (0, 171)
+               open:            496     (0, 2936)
+               old_mmap:        99      (0, 369)
+               brk:             397     (0, 3581)
+               newuname:        10      (0, 17)
+               execve:          1       (0, 231)
+               ioctl:           2       (0, 17)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    10      (0, 9)
+               rt_sigprocmask:  4       (0, 5)
+               getpid:          2       (0, 2)
+       Process (3021, 627): getTime: 
+               Number of system calls: 47 
+               Number of traps: 115 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 14 
+               Time executing process code: (0, 1049) => 0.00 % 
+               Time running: (0, 2035) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 10)
+               gettimeofday:    1       (0, 2)
+               munmap:          2       (0, 14)
+               mprotect:        1       (0, 6)
+               read:            1       (0, 7)
+               fstat64:         3       (0, 7)
+               open:            3       (0, 24)
+               old_mmap:        6       (0, 22)
+               brk:             1       (0, 1)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 266)
+               close:           4       (0, 6)
+               dup2:            1       (0, 4)
+               setpgid:         1       (0, 13)
+               rt_sigaction:    13      (0, 13)
+               rt_sigprocmask:  5       (0, 5)
+               getpid:          1       (0, 1)
+       Process (3020, 627): expr: 
+               Number of system calls: 54 
+               Number of traps: 124 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 6 
+               Time executing process code: (0, 1215) => 0.00 % 
+               Time running: (0, 2430) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 10)
+               munmap:          2       (0, 15)
+               mprotect:        1       (0, 6)
+               read:            1       (0, 9)
+               fstat64:         3       (0, 7)
+               open:            3       (0, 25)
+               old_mmap:        6       (0, 23)
+               brk:             4       (0, 4)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 265)
+               stat64:          4       (0, 33)
+               close:           5       (0, 8)
+               dup2:            1       (0, 2)
+               setpgid:         1       (0, 13)
+               rt_sigaction:    13      (0, 10)
+               rt_sigprocmask:  5       (0, 5)
+               getpid:          1       (0, 1)
+       Process (3019, 627): getTime: 
+               Number of system calls: 47 
+               Number of traps: 115 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 14 
+               Time executing process code: (0, 1064) => 0.00 % 
+               Time running: (0, 1990) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 6)
+               gettimeofday:    1       (0, 2)
+               munmap:          2       (0, 13)
+               mprotect:        1       (0, 5)
+               read:            1       (0, 7)
+               fstat64:         3       (0, 7)
+               open:            3       (0, 24)
+               old_mmap:        6       (0, 22)
+               brk:             1       (0, 1)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 243)
+               close:           4       (0, 6)
+               dup2:            1       (0, 2)
+               setpgid:         1       (0, 12)
+               rt_sigaction:    13      (0, 11)
+               rt_sigprocmask:  5       (0, 1)
+               getpid:          1       (0, 1)
+       Process (3018, 3017): gnuplot_x11: 
+               Number of system calls: 211 
+               Number of traps: 237 
+               Quantity of data read from files: 30756 
+               Quantity of data written to files: 9662 
+               Time executing process code: (0, 6502) => 0.01 % 
+               Time running: (0, 9070) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           4       (0, 7)
+               stat64:          1       (0, 10)
+               write:           47      (0, 239)
+               select:          7       (0, 106848)
+               writev:          4       (0, 27)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 62)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 21)
+               mprotect:        6       (0, 18)
+               read:            64      (0, 23081)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 124)
+               old_mmap:        18      (0, 62)
+               brk:             10      (0, 30)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 263)
+               dup2:            1       (0, 3)
+               close:           10      (0, 35)
+       Process (3017, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7676) => 0.01 % 
+               Time running: (0, 11092) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 146497)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 102)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 37)
+               mprotect:        7       (0, 20)
+               read:            7       (0, 59)
+               close:           9       (0, 18)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 92)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 224)
+               ioctl:           2       (0, 23)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    1017    (0, 724)
+               rt_sigprocmask:  508     (0, 324)
+               getpid:          1       (0, 1)
+       Process (3016, 3015): gnuplot_x11: 
+               Number of system calls: 213 
+               Number of traps: 237 
+               Quantity of data read from files: 30812 
+               Quantity of data written to files: 9662 
+               Time executing process code: (0, 6458) => 0.01 % 
+               Time running: (0, 8879) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           6       (0, 11)
+               select:          6       (0, 18849)
+               stat64:          1       (0, 9)
+               write:           47      (0, 239)
+               writev:          4       (0, 29)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 66)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 15)
+               read:            65      (0, 11924)
+               fstat64:         8       (0, 12)
+               open:            12      (0, 119)
+               old_mmap:        18      (0, 64)
+               brk:             10      (0, 24)
+               newuname:        6       (0, 9)
+               execve:          1       (0, 266)
+               dup2:            1       (0, 2)
+               close:           10      (0, 48)
+       Process (3015, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7614) => 0.01 % 
+               Time running: (0, 11034) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 88693)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 3)
+               fork:            1       (0, 104)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 23)
+               read:            7       (0, 59)
+               close:           9       (0, 19)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 89)
+               old_mmap:        16      (0, 59)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 221)
+               ioctl:           2       (0, 24)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    1017    (0, 781)
+               rt_sigprocmask:  508     (0, 363)
+               getpid:          1       (0, 1)
+       Process (3014, 3013): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30908 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6816) => 0.01 % 
+               Time running: (0, 9285) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 18)
+               select:          6       (0, 12433)
+               stat64:          1       (0, 10)
+               write:           50      (0, 273)
+               writev:          4       (0, 28)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 65)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 17)
+               read:            68      (0, 11928)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 118)
+               old_mmap:        18      (0, 59)
+               brk:             10      (0, 27)
+               newuname:        6       (0, 13)
+               execve:          1       (0, 260)
+               dup2:            1       (0, 3)
+               close:           10      (0, 41)
+       Process (3013, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7619) => 0.01 % 
+               Time running: (0, 10965) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 127833)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 101)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 34)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 59)
+               close:           9       (0, 18)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 87)
+               old_mmap:        16      (0, 59)
+               brk:             8       (0, 15)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 231)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 752)
+               rt_sigprocmask:  508     (0, 321)
+               getpid:          1       (0, 1)
+       Process (3012, 3011): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6733) => 0.01 % 
+               Time running: (0, 9230) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 20)
+               select:          5       (0, 23)
+               stat64:          1       (0, 8)
+               write:           50      (0, 272)
+               writev:          4       (0, 31)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 59)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 18)
+               read:            67      (0, 11952)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 115)
+               old_mmap:        18      (0, 59)
+               brk:             10      (0, 23)
+               newuname:        6       (0, 10)
+               execve:          1       (0, 257)
+               dup2:            1       (0, 2)
+               close:           10      (0, 46)
+       Process (3011, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7691) => 0.01 % 
+               Time running: (0, 11048) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 99192)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 105)
+               pipe:            1       (0, 19)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 2)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 34)
+               mprotect:        7       (0, 20)
+               read:            7       (0, 62)
+               close:           9       (0, 19)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 89)
+               old_mmap:        16      (0, 56)
+               brk:             8       (0, 13)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 233)
+               ioctl:           2       (0, 23)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 716)
+               rt_sigprocmask:  508     (0, 295)
+               getpid:          1       (0, 1)
+       Process (3010, 3009): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30884 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6834) => 0.01 % 
+               Time running: (0, 9320) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 22)
+               stat64:          1       (0, 10)
+               write:           50      (0, 277)
+               select:          6       (0, 2308)
+               writev:          4       (0, 27)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 62)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 21)
+               mprotect:        6       (0, 17)
+               read:            68      (0, 12050)
+               fstat64:         8       (0, 10)
+               open:            12      (0, 121)
+               old_mmap:        18      (0, 57)
+               brk:             10      (0, 25)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 256)
+               dup2:            1       (0, 2)
+               close:           10      (0, 42)
+       Process (3009, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7778) => 0.01 % 
+               Time running: (0, 11136) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 26971)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 103)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 34)
+               mprotect:        7       (0, 21)
+               read:            7       (0, 62)
+               close:           9       (0, 18)
+               fstat64:         8       (0, 13)
+               open:            9       (0, 90)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 15)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 226)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    1017    (0, 752)
+               rt_sigprocmask:  508     (0, 321)
+               getpid:          1       (0, 1)
+       Process (3008, 3007): gnuplot_x11: 
+               Number of system calls: 227 
+               Number of traps: 237 
+               Quantity of data read from files: 41124 
+               Quantity of data written to files: 9678 
+               Time executing process code: (0, 6778) => 0.01 % 
+               Time running: (0, 9239) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 17)
+               stat64:          1       (0, 9)
+               write:           50      (0, 268)
+               select:          7       (0, 25364)
+               writev:          4       (0, 26)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 60)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 20)
+               mprotect:        6       (0, 17)
+               read:            69      (0, 542)
+               fstat64:         8       (0, 9)
+               open:            12      (0, 124)
+               old_mmap:        18      (0, 63)
+               brk:             10      (0, 28)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 233)
+               dup2:            1       (0, 2)
+               close:           10      (0, 41)
+       Process (3007, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7948) => 0.01 % 
+               Time running: (0, 11247) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 19496)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 104)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 20)
+               read:            7       (0, 58)
+               close:           9       (0, 15)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 89)
+               old_mmap:        16      (0, 62)
+               brk:             8       (0, 15)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 220)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 731)
+               rt_sigprocmask:  508     (0, 317)
+               getpid:          1       (0, 0)
+       Process (3006, 3005): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6864) => 0.01 % 
+               Time running: (0, 9317) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 22)
+               select:          5       (0, 21)
+               stat64:          1       (0, 11)
+               write:           50      (0, 270)
+               writev:          4       (0, 31)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 63)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 20)
+               mprotect:        6       (0, 17)
+               read:            67      (0, 9978)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 128)
+               old_mmap:        18      (0, 65)
+               brk:             10      (0, 24)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 261)
+               dup2:            1       (0, 3)
+               close:           10      (0, 39)
+       Process (3005, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7773) => 0.01 % 
+               Time running: (0, 11094) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 85215)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 104)
+               pipe:            1       (0, 23)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 20)
+               read:            7       (0, 59)
+               close:           9       (0, 18)
+               fstat64:         8       (0, 13)
+               open:            9       (0, 89)
+               old_mmap:        16      (0, 59)
+               brk:             8       (0, 15)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 236)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 730)
+               rt_sigprocmask:  508     (0, 306)
+               getpid:          1       (0, 1)
+       Process (3004, 3003): gnuplot_x11: 
+               Number of system calls: 208 
+               Number of traps: 237 
+               Quantity of data read from files: 30748 
+               Quantity of data written to files: 9662 
+               Time executing process code: (0, 6452) => 0.01 % 
+               Time running: (0, 8845) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           3       (0, 6)
+               select:          6       (0, 23458)
+               stat64:          1       (0, 10)
+               write:           47      (0, 247)
+               writev:          4       (0, 29)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 65)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 17)
+               read:            63      (0, 15840)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 131)
+               old_mmap:        18      (0, 68)
+               brk:             10      (0, 31)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 230)
+               dup2:            1       (0, 3)
+               close:           10      (0, 48)
+       Process (3003, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7654) => 0.01 % 
+               Time running: (0, 10896) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 63003)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 103)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 58)
+               close:           9       (0, 22)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 85)
+               old_mmap:        16      (0, 60)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 211)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 749)
+               rt_sigprocmask:  508     (0, 303)
+               getpid:          1       (0, 1)
+       Process (3002, 3001): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 41116 
+               Quantity of data written to files: 9678 
+               Time executing process code: (0, 6782) => 0.01 % 
+               Time running: (0, 9280) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 22)
+               select:          6       (0, 2800)
+               stat64:          1       (0, 10)
+               write:           50      (0, 272)
+               writev:          4       (0, 28)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 65)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 17)
+               read:            68      (0, 14462)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 122)
+               old_mmap:        18      (0, 66)
+               brk:             10      (0, 22)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 256)
+               dup2:            1       (0, 3)
+               close:           10      (0, 41)
+       Process (3001, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7648) => 0.01 % 
+               Time running: (0, 10951) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 60)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 103)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 0)
+               geteuid:         1       (0, 0)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 21)
+               read:            7       (0, 59)
+               close:           9       (0, 17)
+               fstat64:         8       (0, 13)
+               open:            9       (0, 91)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 234)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    1017    (0, 718)
+               rt_sigprocmask:  508     (0, 323)
+               getpid:          1       (0, 0)
+       Process (3000, 2999): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6715) => 0.01 % 
+               Time running: (0, 9224) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 18)
+               select:          5       (0, 23)
+               stat64:          1       (0, 9)
+               write:           50      (0, 271)
+               writev:          4       (0, 27)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 66)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 23)
+               mprotect:        6       (0, 20)
+               read:            67      (0, 14542)
+               fstat64:         8       (0, 13)
+               open:            12      (0, 124)
+               old_mmap:        18      (0, 64)
+               brk:             10      (0, 26)
+               newuname:        6       (0, 9)
+               execve:          1       (0, 303)
+               dup2:            1       (0, 3)
+               close:           10      (0, 43)
+       Process (2999, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7866) => 0.01 % 
+               Time running: (0, 11496) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 10149)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 136)
+               pipe:            1       (0, 28)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 0)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 63)
+               close:           9       (0, 20)
+               fstat64:         8       (0, 13)
+               open:            9       (0, 92)
+               old_mmap:        16      (0, 65)
+               brk:             8       (0, 17)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 231)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 757)
+               rt_sigprocmask:  508     (0, 300)
+               getpid:          1       (0, 1)
+       Process (2998, 627): gs-gnu: 
+               Number of system calls: 22598 
+               Number of traps: 2501 
+               Quantity of data read from files: 39575101 
+               Quantity of data written to files: 3366983 
+               Time executing process code: (5, 454142) => 4.55 % 
+               Time running: (5, 631836) => 4.69 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          1579    (0, 19954)
+               access:          6       (0, 52)
+               fcntl64:         6       (0, 9)
+               socketcall:      6       (0, 108)
+               write:           1903    (0, 22569)
+               llseek:          7615    (0, 14147)
+               stat64:          2       (0, 28)
+               times:           1       (0, 1)
+               sysctl:          1       (0, 6)
+               setrlimit:       1       (0, 1)
+               getrlimit:       1       (0, 2)
+               munmap:          65      (0, 510)
+               mprotect:        14      (0, 41)
+               read:            10159   (0, 71890)
+               close:           80      (0, 278)
+               fstat64:         136     (0, 175)
+               open:            496     (0, 2948)
+               old_mmap:        99      (0, 373)
+               brk:             397     (0, 3652)
+               newuname:        10      (0, 15)
+               execve:          1       (0, 254)
+               ioctl:           2       (0, 18)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    10      (0, 10)
+               rt_sigprocmask:  4       (0, 6)
+               getpid:          2       (0, 2)
+       Process (2997, 627): gs-gnu: 
+               Number of system calls: 22598 
+               Number of traps: 2501 
+               Quantity of data read from files: 39575101 
+               Quantity of data written to files: 3366983 
+               Time executing process code: (5, 460657) => 4.55 % 
+               Time running: (5, 641819) => 4.70 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          1579    (0, 20296)
+               access:          6       (0, 53)
+               fcntl64:         6       (0, 8)
+               socketcall:      6       (0, 113)
+               write:           1903    (0, 22722)
+               llseek:          7615    (0, 14258)
+               stat64:          2       (0, 25)
+               times:           1       (0, 1)
+               sysctl:          1       (0, 6)
+               setrlimit:       1       (0, 1)
+               getrlimit:       1       (0, 2)
+               munmap:          65      (0, 523)
+               mprotect:        14      (0, 39)
+               read:            10159   (0, 71225)
+               close:           80      (0, 277)
+               fstat64:         136     (0, 175)
+               open:            496     (0, 2935)
+               old_mmap:        99      (0, 400)
+               brk:             397     (0, 3669)
+               newuname:        10      (0, 16)
+               execve:          1       (0, 232)
+               ioctl:           2       (0, 16)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    10      (0, 9)
+               rt_sigprocmask:  4       (0, 5)
+               getpid:          2       (0, 2)
+       Process (2996, 627): getTime: 
+               Number of system calls: 47 
+               Number of traps: 116 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 14 
+               Time executing process code: (0, 1051) => 0.00 % 
+               Time running: (0, 2075) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 9)
+               gettimeofday:    1       (0, 1)
+               munmap:          2       (0, 12)
+               mprotect:        1       (0, 6)
+               read:            1       (0, 8)
+               fstat64:         3       (0, 8)
+               open:            3       (0, 24)
+               old_mmap:        6       (0, 24)
+               brk:             1       (0, 1)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 275)
+               close:           4       (0, 6)
+               dup2:            1       (0, 3)
+               setpgid:         1       (0, 13)
+               rt_sigaction:    13      (0, 12)
+               rt_sigprocmask:  5       (0, 6)
+               getpid:          1       (0, 1)
+       Process (2995, 627): expr: 
+               Number of system calls: 54 
+               Number of traps: 125 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 6 
+               Time executing process code: (0, 1155) => 0.00 % 
+               Time running: (0, 2150) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 9)
+               munmap:          2       (0, 14)
+               mprotect:        1       (0, 5)
+               read:            1       (0, 6)
+               fstat64:         3       (0, 5)
+               open:            3       (0, 24)
+               old_mmap:        6       (0, 21)
+               brk:             4       (0, 2)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 235)
+               stat64:          4       (0, 29)
+               close:           5       (0, 10)
+               dup2:            1       (0, 2)
+               setpgid:         1       (0, 11)
+               rt_sigaction:    13      (0, 13)
+               rt_sigprocmask:  5       (0, 2)
+               getpid:          1       (0, 1)
+       Process (2994, 627): getTime: 
+               Number of system calls: 47 
+               Number of traps: 115 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 14 
+               Time executing process code: (0, 1011) => 0.00 % 
+               Time running: (0, 1941) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 9)
+               gettimeofday:    1       (0, 2)
+               munmap:          2       (0, 13)
+               mprotect:        1       (0, 6)
+               read:            1       (0, 7)
+               fstat64:         3       (0, 7)
+               open:            3       (0, 24)
+               old_mmap:        6       (0, 22)
+               brk:             1       (0, 1)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 243)
+               close:           4       (0, 6)
+               dup2:            1       (0, 2)
+               setpgid:         1       (0, 12)
+               rt_sigaction:    13      (0, 11)
+               rt_sigprocmask:  5       (0, 4)
+               getpid:          1       (0, 1)
+       Process (2993, 2992): gnuplot_x11: 
+               Number of system calls: 213 
+               Number of traps: 237 
+               Quantity of data read from files: 30788 
+               Quantity of data written to files: 9662 
+               Time executing process code: (0, 6581) => 0.01 % 
+               Time running: (0, 9003) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           6       (0, 12)
+               stat64:          1       (0, 9)
+               write:           47      (0, 255)
+               select:          6       (0, 16566)
+               writev:          4       (0, 28)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 58)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 15)
+               read:            65      (0, 11953)
+               fstat64:         8       (0, 9)
+               open:            12      (0, 120)
+               old_mmap:        18      (0, 61)
+               brk:             10      (0, 31)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 227)
+               dup2:            1       (0, 2)
+               close:           10      (0, 29)
+       Process (2992, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7670) => 0.01 % 
+               Time running: (0, 11000) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 43717)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 103)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 24)
+               read:            7       (0, 60)
+               close:           9       (0, 18)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 87)
+               old_mmap:        16      (0, 60)
+               brk:             8       (0, 14)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 234)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    1017    (0, 739)
+               rt_sigprocmask:  508     (0, 327)
+               getpid:          1       (0, 0)
+       Process (2991, 2990): gnuplot_x11: 
+               Number of system calls: 227 
+               Number of traps: 237 
+               Quantity of data read from files: 51356 
+               Quantity of data written to files: 9682 
+               Time executing process code: (0, 6788) => 0.01 % 
+               Time running: (0, 9275) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 19)
+               select:          7       (0, 13764)
+               stat64:          1       (0, 19)
+               write:           50      (0, 281)
+               writev:          4       (0, 30)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 64)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 16)
+               read:            69      (0, 651)
+               fstat64:         8       (0, 10)
+               open:            12      (0, 116)
+               old_mmap:        18      (0, 59)
+               brk:             10      (0, 23)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 257)
+               dup2:            1       (0, 3)
+               close:           10      (0, 41)
+       Process (2990, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7784) => 0.01 % 
+               Time running: (0, 11156) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 71)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 104)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 24)
+               read:            7       (0, 57)
+               close:           9       (0, 18)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 88)
+               old_mmap:        16      (0, 60)
+               brk:             8       (0, 21)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 231)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    1017    (0, 720)
+               rt_sigprocmask:  508     (0, 315)
+               getpid:          1       (0, 1)
+       Process (2989, 2988): gnuplot_x11: 
+               Number of system calls: 211 
+               Number of traps: 237 
+               Quantity of data read from files: 30756 
+               Quantity of data written to files: 9662 
+               Time executing process code: (0, 6499) => 0.01 % 
+               Time running: (0, 8917) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           4       (0, 6)
+               stat64:          1       (0, 10)
+               write:           47      (0, 240)
+               select:          7       (0, 58961)
+               writev:          4       (0, 28)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 61)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 21)
+               mprotect:        6       (0, 20)
+               read:            64      (0, 40677)
+               fstat64:         8       (0, 10)
+               open:            12      (0, 132)
+               old_mmap:        18      (0, 67)
+               brk:             10      (0, 27)
+               newuname:        6       (0, 9)
+               execve:          1       (0, 266)
+               dup2:            1       (0, 3)
+               close:           10      (0, 27)
+       Process (2988, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7620) => 0.01 % 
+               Time running: (0, 10993) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 94778)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 3)
+               fork:            1       (0, 105)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 33)
+               mprotect:        7       (0, 23)
+               read:            7       (0, 60)
+               close:           9       (0, 15)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 86)
+               old_mmap:        16      (0, 56)
+               brk:             8       (0, 15)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 220)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    1017    (0, 743)
+               rt_sigprocmask:  508     (0, 335)
+               getpid:          1       (0, 0)
+       Process (2987, 2986): gnuplot_x11: 
+               Number of system calls: 209 
+               Number of traps: 237 
+               Quantity of data read from files: 40988 
+               Quantity of data written to files: 9666 
+               Time executing process code: (0, 6346) => 0.01 % 
+               Time running: (0, 8786) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           2       (0, 4)
+               select:          7       (0, 60124)
+               stat64:          1       (0, 9)
+               write:           47      (0, 239)
+               writev:          4       (0, 28)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 64)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 23)
+               mprotect:        6       (0, 16)
+               read:            64      (0, 14284)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 119)
+               old_mmap:        18      (0, 62)
+               brk:             10      (0, 20)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 260)
+               dup2:            1       (0, 3)
+               close:           10      (0, 50)
+       Process (2986, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7629) => 0.01 % 
+               Time running: (0, 10990) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 63)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 104)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 33)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 58)
+               close:           9       (0, 17)
+               fstat64:         8       (0, 18)
+               open:            9       (0, 86)
+               old_mmap:        16      (0, 57)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 227)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 716)
+               rt_sigprocmask:  508     (0, 341)
+               getpid:          1       (0, 0)
+       Process (2985, 2984): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30884 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6916) => 0.01 % 
+               Time running: (0, 9439) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 22)
+               stat64:          1       (0, 8)
+               write:           50      (0, 281)
+               select:          6       (0, 25612)
+               writev:          4       (0, 30)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 60)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 23)
+               mprotect:        6       (0, 18)
+               read:            68      (0, 27948)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 121)
+               old_mmap:        18      (0, 63)
+               brk:             10      (0, 26)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 270)
+               dup2:            1       (0, 3)
+               close:           10      (0, 45)
+       Process (2984, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7703) => 0.01 % 
+               Time running: (0, 11040) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 53278)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 103)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 57)
+               close:           9       (0, 18)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 90)
+               old_mmap:        16      (0, 57)
+               brk:             8       (0, 13)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 224)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 732)
+               rt_sigprocmask:  508     (0, 292)
+               getpid:          1       (0, 1)
+       Process (2983, 2982): gnuplot_x11: 
+               Number of system calls: 212 
+               Number of traps: 237 
+               Quantity of data read from files: 41052 
+               Quantity of data written to files: 9666 
+               Time executing process code: (0, 6478) => 0.01 % 
+               Time running: (0, 8852) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           2       (0, 3)
+               select:          8       (0, 39563)
+               stat64:          1       (0, 9)
+               write:           47      (0, 240)
+               writev:          4       (0, 29)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 65)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 16)
+               read:            66      (0, 15755)
+               fstat64:         8       (0, 13)
+               open:            12      (0, 113)
+               old_mmap:        18      (0, 59)
+               brk:             10      (0, 25)
+               newuname:        6       (0, 10)
+               execve:          1       (0, 258)
+               dup2:            1       (0, 3)
+               close:           10      (0, 29)
+       Process (2982, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7744) => 0.01 % 
+               Time running: (0, 11179) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 75082)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 1)
+               fork:            1       (0, 105)
+               pipe:            1       (0, 17)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 23)
+               read:            7       (0, 60)
+               close:           9       (0, 18)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 89)
+               old_mmap:        16      (0, 54)
+               brk:             8       (0, 14)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 227)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 739)
+               rt_sigprocmask:  508     (0, 368)
+               getpid:          1       (0, 1)
+       Process (2981, 2980): gnuplot_x11: 
+               Number of system calls: 231 
+               Number of traps: 236 
+               Quantity of data read from files: 61604 
+               Quantity of data written to files: 9686 
+               Time executing process code: (0, 6914) => 0.01 % 
+               Time running: (0, 9513) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 19)
+               stat64:          1       (0, 10)
+               write:           50      (0, 290)
+               select:          9       (0, 97514)
+               writev:          4       (0, 27)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 61)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 23)
+               mprotect:        6       (0, 19)
+               read:            71      (0, 377)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 126)
+               old_mmap:        18      (0, 65)
+               brk:             10      (0, 28)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 254)
+               dup2:            1       (0, 2)
+               close:           10      (0, 44)
+       Process (2980, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7955) => 0.01 % 
+               Time running: (0, 11390) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 55)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 3)
+               fork:            1       (0, 104)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 0)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 59)
+               close:           9       (0, 20)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 88)
+               old_mmap:        16      (0, 52)
+               brk:             8       (0, 15)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 228)
+               ioctl:           2       (0, 20)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 765)
+               rt_sigprocmask:  508     (0, 308)
+               getpid:          1       (0, 0)
+       Process (2979, 2978): gnuplot_x11: 
+               Number of system calls: 210 
+               Number of traps: 237 
+               Quantity of data read from files: 40988 
+               Quantity of data written to files: 9666 
+               Time executing process code: (0, 6550) => 0.01 % 
+               Time running: (0, 8923) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           4       (0, 6)
+               select:          6       (0, 82918)
+               stat64:          1       (0, 9)
+               write:           47      (0, 242)
+               writev:          4       (0, 28)
+               access:          1       (0, 17)
+               fcntl64:         3       (0, 6)
+               socketcall:      3       (0, 68)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 24)
+               mprotect:        6       (0, 16)
+               read:            64      (0, 2268)
+               fstat64:         8       (0, 10)
+               open:            12      (0, 114)
+               old_mmap:        18      (0, 63)
+               brk:             10      (0, 25)
+               newuname:        6       (0, 13)
+               execve:          1       (0, 240)
+               dup2:            1       (0, 2)
+               close:           10      (0, 49)
+       Process (2978, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7832) => 0.01 % 
+               Time running: (0, 11265) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 90779)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 105)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 21)
+               read:            7       (0, 61)
+               close:           9       (0, 17)
+               fstat64:         8       (0, 15)
+               open:            9       (0, 89)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 229)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 727)
+               rt_sigprocmask:  508     (0, 320)
+               getpid:          1       (0, 0)
+       Process (2977, 2976): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6828) => 0.01 % 
+               Time running: (0, 9399) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 21)
+               select:          5       (0, 24)
+               stat64:          1       (0, 9)
+               write:           50      (0, 282)
+               writev:          4       (0, 29)
+               access:          1       (0, 11)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 66)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 24)
+               mprotect:        6       (0, 20)
+               read:            67      (0, 12163)
+               fstat64:         8       (0, 13)
+               open:            12      (0, 126)
+               old_mmap:        18      (0, 68)
+               brk:             10      (0, 26)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 281)
+               dup2:            1       (0, 3)
+               close:           10      (0, 45)
+       Process (2976, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7700) => 0.01 % 
+               Time running: (0, 10970) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 136193)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 103)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 33)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 58)
+               close:           9       (0, 20)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 88)
+               old_mmap:        16      (0, 60)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 230)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 710)
+               rt_sigprocmask:  508     (0, 294)
+               getpid:          1       (0, 1)
+       Process (2975, 2974): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6798) => 0.01 % 
+               Time running: (0, 9292) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 20)
+               select:          5       (0, 24)
+               stat64:          1       (0, 9)
+               write:           50      (0, 268)
+               writev:          4       (0, 29)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 63)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 18)
+               read:            67      (0, 11962)
+               fstat64:         8       (0, 10)
+               open:            12      (0, 125)
+               old_mmap:        18      (0, 61)
+               brk:             10      (0, 22)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 263)
+               dup2:            1       (0, 3)
+               close:           10      (0, 39)
+       Process (2974, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7736) => 0.01 % 
+               Time running: (0, 11142) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 10092)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 103)
+               pipe:            1       (0, 22)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 33)
+               mprotect:        7       (0, 23)
+               read:            7       (0, 63)
+               close:           9       (0, 23)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 95)
+               old_mmap:        16      (0, 59)
+               brk:             8       (0, 14)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 272)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 768)
+               rt_sigprocmask:  508     (0, 271)
+               getpid:          1       (0, 1)
+       Process (2973, 627): gs-gnu: 
+               Number of system calls: 22598 
+               Number of traps: 2501 
+               Quantity of data read from files: 39575101 
+               Quantity of data written to files: 3366983 
+               Time executing process code: (5, 450377) => 4.54 % 
+               Time running: (5, 630009) => 4.69 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          1579    (0, 19795)
+               access:          6       (0, 53)
+               fcntl64:         6       (0, 6)
+               socketcall:      6       (0, 111)
+               write:           1903    (0, 22740)
+               llseek:          7615    (0, 14214)
+               stat64:          2       (0, 25)
+               times:           1       (0, 1)
+               sysctl:          1       (0, 7)
+               setrlimit:       1       (0, 1)
+               getrlimit:       1       (0, 1)
+               munmap:          65      (0, 522)
+               mprotect:        14      (0, 41)
+               read:            10159   (0, 71596)
+               close:           80      (0, 282)
+               fstat64:         136     (0, 179)
+               open:            496     (0, 2998)
+               old_mmap:        99      (0, 394)
+               brk:             397     (0, 3694)
+               newuname:        10      (0, 19)
+               execve:          1       (0, 247)
+               ioctl:           2       (0, 16)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    10      (0, 12)
+               rt_sigprocmask:  4       (0, 5)
+               getpid:          2       (0, 1)
+       Process (2972, 627): gs-gnu: 
+               Number of system calls: 22598 
+               Number of traps: 2501 
+               Quantity of data read from files: 39575101 
+               Quantity of data written to files: 3366983 
+               Time executing process code: (5, 469848) => 4.56 % 
+               Time running: (5, 655087) => 4.71 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          1579    (0, 21512)
+               access:          6       (0, 54)
+               fcntl64:         6       (0, 6)
+               socketcall:      6       (0, 108)
+               write:           1903    (0, 24505)
+               llseek:          7615    (0, 14137)
+               stat64:          2       (0, 26)
+               times:           1       (0, 1)
+               sysctl:          1       (0, 7)
+               setrlimit:       1       (0, 1)
+               getrlimit:       1       (0, 1)
+               munmap:          65      (0, 504)
+               mprotect:        14      (0, 36)
+               read:            10159   (0, 70155)
+               close:           80      (0, 272)
+               fstat64:         136     (0, 165)
+               open:            496     (0, 2959)
+               old_mmap:        99      (0, 357)
+               brk:             397     (0, 3577)
+               newuname:        10      (0, 17)
+               execve:          1       (0, 227)
+               ioctl:           2       (0, 15)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    10      (0, 11)
+               rt_sigprocmask:  4       (0, 4)
+               getpid:          2       (0, 2)
+       Process (2971, 627): getTime: 
+               Number of system calls: 47 
+               Number of traps: 115 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 14 
+               Time executing process code: (0, 1049) => 0.00 % 
+               Time running: (0, 2027) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 9)
+               gettimeofday:    1       (0, 1)
+               munmap:          2       (0, 11)
+               mprotect:        1       (0, 5)
+               read:            1       (0, 7)
+               fstat64:         3       (0, 6)
+               open:            3       (0, 24)
+               old_mmap:        6       (0, 23)
+               brk:             1       (0, 1)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 273)
+               close:           4       (0, 6)
+               dup2:            1       (0, 4)
+               setpgid:         1       (0, 13)
+               rt_sigaction:    13      (0, 13)
+               rt_sigprocmask:  5       (0, 6)
+               getpid:          1       (0, 0)
+       Process (2970, 627): expr: 
+               Number of system calls: 54 
+               Number of traps: 123 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 6 
+               Time executing process code: (0, 1139) => 0.00 % 
+               Time running: (0, 2124) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 9)
+               munmap:          2       (0, 12)
+               mprotect:        1       (0, 5)
+               read:            1       (0, 7)
+               fstat64:         3       (0, 6)
+               open:            3       (0, 24)
+               old_mmap:        6       (0, 18)
+               brk:             4       (0, 4)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 225)
+               stat64:          4       (0, 28)
+               close:           5       (0, 10)
+               dup2:            1       (0, 1)
+               setpgid:         1       (0, 11)
+               rt_sigaction:    13      (0, 11)
+               rt_sigprocmask:  5       (0, 2)
+               getpid:          1       (0, 1)
+       Process (2969, 627): getTime: 
+               Number of system calls: 47 
+               Number of traps: 115 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 14 
+               Time executing process code: (0, 1031) => 0.00 % 
+               Time running: (0, 1964) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 9)
+               gettimeofday:    1       (0, 2)
+               munmap:          2       (0, 12)
+               mprotect:        1       (0, 5)
+               read:            1       (0, 7)
+               fstat64:         3       (0, 6)
+               open:            3       (0, 25)
+               old_mmap:        6       (0, 21)
+               brk:             1       (0, 1)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 238)
+               close:           4       (0, 5)
+               dup2:            1       (0, 2)
+               setpgid:         1       (0, 11)
+               rt_sigaction:    13      (0, 9)
+               rt_sigprocmask:  5       (0, 5)
+               getpid:          1       (0, 1)
+       Process (2968, 2967): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6710) => 0.01 % 
+               Time running: (0, 9152) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 19)
+               select:          5       (0, 25)
+               stat64:          1       (0, 9)
+               write:           50      (0, 271)
+               writev:          4       (0, 29)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 66)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 21)
+               mprotect:        6       (0, 16)
+               read:            67      (0, 12104)
+               fstat64:         8       (0, 10)
+               open:            12      (0, 117)
+               old_mmap:        18      (0, 63)
+               brk:             10      (0, 27)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 257)
+               dup2:            1       (0, 3)
+               close:           10      (0, 39)
+       Process (2967, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7680) => 0.01 % 
+               Time running: (0, 11032) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 103966)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 106)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 20)
+               read:            7       (0, 59)
+               close:           9       (0, 20)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 90)
+               old_mmap:        16      (0, 57)
+               brk:             8       (0, 15)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 245)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 747)
+               rt_sigprocmask:  508     (0, 284)
+               getpid:          1       (0, 1)
+       Process (2966, 2965): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30908 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6807) => 0.01 % 
+               Time running: (0, 9264) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 19)
+               select:          6       (0, 12295)
+               stat64:          1       (0, 9)
+               write:           50      (0, 274)
+               writev:          4       (0, 27)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 64)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 23)
+               mprotect:        6       (0, 19)
+               read:            68      (0, 12038)
+               fstat64:         8       (0, 9)
+               open:            12      (0, 119)
+               old_mmap:        18      (0, 61)
+               brk:             10      (0, 27)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 247)
+               dup2:            1       (0, 2)
+               close:           10      (0, 43)
+       Process (2965, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7657) => 0.01 % 
+               Time running: (0, 10951) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 119861)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 3)
+               fork:            1       (0, 106)
+               pipe:            1       (0, 22)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 0)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 34)
+               mprotect:        7       (0, 24)
+               read:            7       (0, 59)
+               close:           9       (0, 22)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 89)
+               old_mmap:        16      (0, 57)
+               brk:             8       (0, 14)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 221)
+               ioctl:           2       (0, 23)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 725)
+               rt_sigprocmask:  508     (0, 295)
+               getpid:          1       (0, 1)
+       Process (2964, 2963): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6717) => 0.01 % 
+               Time running: (0, 9196) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 21)
+               select:          5       (0, 22)
+               stat64:          1       (0, 10)
+               write:           50      (0, 272)
+               writev:          4       (0, 30)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 65)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 21)
+               mprotect:        6       (0, 18)
+               read:            67      (0, 11918)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 147)
+               old_mmap:        18      (0, 62)
+               brk:             10      (0, 24)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 262)
+               dup2:            1       (0, 3)
+               close:           10      (0, 44)
+       Process (2963, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7675) => 0.01 % 
+               Time running: (0, 10961) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 91941)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 106)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 21)
+               read:            7       (0, 58)
+               close:           9       (0, 20)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 91)
+               old_mmap:        16      (0, 53)
+               brk:             8       (0, 13)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 208)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 730)
+               rt_sigprocmask:  508     (0, 302)
+               getpid:          1       (0, 1)
+       Process (2962, 2961): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30884 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6763) => 0.01 % 
+               Time running: (0, 9251) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 22)
+               stat64:          1       (0, 9)
+               write:           50      (0, 281)
+               select:          6       (0, 27544)
+               writev:          4       (0, 27)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 61)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 18)
+               read:            68      (0, 11894)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 121)
+               old_mmap:        18      (0, 64)
+               brk:             10      (0, 28)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 238)
+               dup2:            1       (0, 2)
+               close:           10      (0, 42)
+       Process (2961, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7617) => 0.01 % 
+               Time running: (0, 10964) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 125193)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 106)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 24)
+               read:            7       (0, 58)
+               close:           9       (0, 19)
+               fstat64:         8       (0, 10)
+               open:            9       (0, 91)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 14)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 216)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 722)
+               rt_sigprocmask:  508     (0, 346)
+               getpid:          1       (0, 1)
+       Process (2960, 2959): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30908 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6885) => 0.01 % 
+               Time running: (0, 9389) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 22)
+               stat64:          1       (0, 9)
+               select:          6       (0, 63303)
+               write:           50      (0, 278)
+               writev:          4       (0, 29)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 66)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 24)
+               mprotect:        6       (0, 17)
+               read:            68      (0, 24318)
+               fstat64:         8       (0, 10)
+               open:            12      (0, 119)
+               old_mmap:        18      (0, 63)
+               brk:             10      (0, 27)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 268)
+               dup2:            1       (0, 3)
+               close:           10      (0, 42)
+       Process (2959, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7800) => 0.01 % 
+               Time running: (0, 11163) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 85902)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 103)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 24)
+               read:            7       (0, 61)
+               close:           9       (0, 17)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 89)
+               old_mmap:        16      (0, 60)
+               brk:             8       (0, 14)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 234)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 760)
+               rt_sigprocmask:  508     (0, 292)
+               getpid:          1       (0, 1)
+       Process (2958, 2957): gnuplot_x11: 
+               Number of system calls: 201 
+               Number of traps: 235 
+               Quantity of data read from files: 30652 
+               Quantity of data written to files: 9658 
+               Time executing process code: (0, 6413) => 0.01 % 
+               Time running: (0, 8838) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               select:          6       (0, 30462)
+               stat64:          1       (0, 8)
+               write:           46      (0, 242)
+               writev:          4       (0, 31)
+               access:          1       (0, 17)
+               fcntl64:         3       (0, 7)
+               socketcall:      3       (0, 64)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 25)
+               mprotect:        6       (0, 19)
+               read:            60      (0, 16474)
+               fstat64:         8       (0, 12)
+               open:            12      (0, 122)
+               old_mmap:        18      (0, 71)
+               brk:             10      (0, 21)
+               newuname:        6       (0, 14)
+               execve:          1       (0, 267)
+               dup2:            1       (0, 3)
+               close:           10      (0, 48)
+       Process (2957, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7705) => 0.01 % 
+               Time running: (0, 11053) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 135013)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 105)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 0)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 37)
+               mprotect:        7       (0, 21)
+               read:            7       (0, 59)
+               close:           9       (0, 20)
+               fstat64:         8       (0, 13)
+               open:            9       (0, 87)
+               old_mmap:        16      (0, 56)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 215)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 747)
+               rt_sigprocmask:  508     (0, 286)
+               getpid:          1       (0, 0)
+       Process (2956, 2955): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6694) => 0.01 % 
+               Time running: (0, 9145) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 21)
+               select:          5       (0, 24)
+               stat64:          1       (0, 8)
+               write:           50      (0, 268)
+               writev:          4       (0, 30)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 62)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 21)
+               mprotect:        6       (0, 18)
+               read:            67      (0, 15377)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 119)
+               old_mmap:        18      (0, 62)
+               brk:             10      (0, 25)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 261)
+               dup2:            1       (0, 3)
+               close:           10      (0, 39)
+       Process (2955, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7655) => 0.01 % 
+               Time running: (0, 10959) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 61918)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 105)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 23)
+               read:            7       (0, 58)
+               close:           9       (0, 16)
+               fstat64:         8       (0, 13)
+               open:            9       (0, 88)
+               old_mmap:        16      (0, 59)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 222)
+               ioctl:           2       (0, 23)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 707)
+               rt_sigprocmask:  508     (0, 328)
+               getpid:          1       (0, 0)
+       Process (2954, 2953): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 41116 
+               Quantity of data written to files: 9678 
+               Time executing process code: (0, 6729) => 0.01 % 
+               Time running: (0, 9189) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 18)
+               select:          6       (0, 3265)
+               stat64:          1       (0, 8)
+               write:           50      (0, 276)
+               writev:          4       (0, 29)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 62)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 21)
+               mprotect:        6       (0, 15)
+               read:            68      (0, 10580)
+               fstat64:         8       (0, 12)
+               open:            12      (0, 114)
+               old_mmap:        18      (0, 56)
+               brk:             10      (0, 19)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 258)
+               dup2:            1       (0, 2)
+               close:           10      (0, 45)
+       Process (2953, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7634) => 0.01 % 
+               Time running: (0, 10959) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 60)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 101)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 59)
+               mprotect:        7       (0, 20)
+               read:            7       (0, 59)
+               close:           9       (0, 21)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 86)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 219)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 747)
+               rt_sigprocmask:  508     (0, 300)
+               getpid:          1       (0, 1)
+       Process (2952, 2951): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 41116 
+               Quantity of data written to files: 9678 
+               Time executing process code: (0, 6802) => 0.01 % 
+               Time running: (0, 9348) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 21)
+               select:          6       (0, 9878)
+               stat64:          1       (0, 9)
+               write:           50      (0, 283)
+               writev:          4       (0, 28)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 65)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 24)
+               mprotect:        6       (0, 20)
+               read:            68      (0, 136044)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 117)
+               old_mmap:        18      (0, 64)
+               brk:             10      (0, 25)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 270)
+               dup2:            1       (0, 3)
+               close:           10      (0, 41)
+       Process (2951, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7700) => 0.01 % 
+               Time running: (0, 11058) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 143270)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 104)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 0)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 20)
+               read:            7       (0, 57)
+               close:           9       (0, 17)
+               fstat64:         8       (0, 10)
+               open:            9       (0, 85)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 214)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 725)
+               rt_sigprocmask:  508     (0, 310)
+               getpid:          1       (0, 1)
+       Process (2950, 2949): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6797) => 0.01 % 
+               Time running: (0, 9235) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 21)
+               select:          5       (0, 26)
+               stat64:          1       (0, 8)
+               write:           50      (0, 262)
+               writev:          4       (0, 34)
+               access:          1       (0, 13)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 71)
+               rt_sigaction:    2       (0, 3)
+               munmap:          2       (0, 25)
+               mprotect:        6       (0, 19)
+               read:            67      (0, 22037)
+               fstat64:         8       (0, 12)
+               open:            12      (0, 122)
+               old_mmap:        18      (0, 70)
+               brk:             10      (0, 27)
+               newuname:        6       (0, 13)
+               execve:          1       (0, 245)
+               dup2:            1       (0, 3)
+               close:           10      (0, 41)
+       Process (2949, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7749) => 0.01 % 
+               Time running: (0, 10996) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 6812)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 107)
+               pipe:            1       (0, 23)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 0)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 21)
+               read:            7       (0, 62)
+               close:           9       (0, 19)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 90)
+               old_mmap:        16      (0, 62)
+               brk:             8       (0, 14)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 229)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 743)
+               rt_sigprocmask:  508     (0, 297)
+               getpid:          1       (0, 1)
+       Process (2948, 627): gs-gnu: 
+               Number of system calls: 22598 
+               Number of traps: 2501 
+               Quantity of data read from files: 39575101 
+               Quantity of data written to files: 3366983 
+               Time executing process code: (5, 457657) => 4.55 % 
+               Time running: (5, 634160) => 4.70 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          1579    (0, 19957)
+               access:          6       (0, 50)
+               fcntl64:         6       (0, 6)
+               socketcall:      6       (0, 111)
+               write:           1903    (0, 23245)
+               llseek:          7615    (0, 13996)
+               stat64:          2       (0, 25)
+               times:           1       (0, 2)
+               sysctl:          1       (0, 6)
+               setrlimit:       1       (0, 2)
+               getrlimit:       1       (0, 1)
+               munmap:          65      (0, 498)
+               mprotect:        14      (0, 38)
+               read:            10159   (0, 71626)
+               close:           80      (0, 282)
+               fstat64:         136     (0, 172)
+               open:            496     (0, 2869)
+               old_mmap:        99      (0, 340)
+               brk:             397     (0, 3637)
+               newuname:        10      (0, 16)
+               execve:          1       (0, 237)
+               ioctl:           2       (0, 17)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    10      (0, 13)
+               rt_sigprocmask:  4       (0, 3)
+               getpid:          2       (0, 2)
+       Process (2947, 627): gs-gnu: 
+               Number of system calls: 22598 
+               Number of traps: 2501 
+               Quantity of data read from files: 39575101 
+               Quantity of data written to files: 3366983 
+               Time executing process code: (5, 456386) => 4.55 % 
+               Time running: (5, 635810) => 4.70 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          1579    (0, 20419)
+               access:          6       (0, 56)
+               fcntl64:         6       (0, 6)
+               socketcall:      6       (0, 110)
+               write:           1903    (0, 23570)
+               llseek:          7615    (0, 14168)
+               stat64:          2       (0, 27)
+               times:           1       (0, 1)
+               sysctl:          1       (0, 7)
+               setrlimit:       1       (0, 1)
+               getrlimit:       1       (0, 2)
+               munmap:          65      (0, 510)
+               mprotect:        14      (0, 39)
+               read:            10159   (0, 71289)
+               close:           80      (0, 282)
+               fstat64:         136     (0, 174)
+               open:            496     (0, 2966)
+               old_mmap:        99      (0, 361)
+               brk:             397     (0, 3621)
+               newuname:        10      (0, 16)
+               execve:          1       (0, 219)
+               ioctl:           2       (0, 16)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    10      (0, 9)
+               rt_sigprocmask:  4       (0, 4)
+               getpid:          2       (0, 2)
+       Process (2946, 627): getTime: 
+               Number of system calls: 47 
+               Number of traps: 114 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 14 
+               Time executing process code: (0, 1058) => 0.00 % 
+               Time running: (0, 2044) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 9)
+               gettimeofday:    1       (0, 1)
+               munmap:          2       (0, 12)
+               mprotect:        1       (0, 5)
+               read:            1       (0, 7)
+               fstat64:         3       (0, 6)
+               open:            3       (0, 25)
+               old_mmap:        6       (0, 23)
+               brk:             1       (0, 1)
+               newuname:        1       (0, 2)
+               execve:          1       (0, 276)
+               close:           4       (0, 6)
+               dup2:            1       (0, 4)
+               setpgid:         1       (0, 12)
+               rt_sigaction:    13      (0, 14)
+               rt_sigprocmask:  5       (0, 6)
+               getpid:          1       (0, 1)
+       Process (2945, 627): expr: 
+               Number of system calls: 54 
+               Number of traps: 123 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 6 
+               Time executing process code: (0, 1136) => 0.00 % 
+               Time running: (0, 2141) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 10)
+               munmap:          2       (0, 15)
+               mprotect:        1       (0, 6)
+               read:            1       (0, 6)
+               fstat64:         3       (0, 5)
+               open:            3       (0, 25)
+               old_mmap:        6       (0, 24)
+               brk:             4       (0, 3)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 231)
+               stat64:          4       (0, 25)
+               close:           5       (0, 10)
+               dup2:            1       (0, 1)
+               setpgid:         1       (0, 11)
+               rt_sigaction:    13      (0, 12)
+               rt_sigprocmask:  5       (0, 4)
+               getpid:          1       (0, 0)
+       Process (2944, 627): getTime: 
+               Number of system calls: 47 
+               Number of traps: 115 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 14 
+               Time executing process code: (0, 1034) => 0.00 % 
+               Time running: (0, 1983) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 9)
+               gettimeofday:    1       (0, 2)
+               munmap:          2       (0, 15)
+               mprotect:        1       (0, 6)
+               read:            1       (0, 7)
+               fstat64:         3       (0, 5)
+               open:            3       (0, 25)
+               old_mmap:        6       (0, 24)
+               brk:             1       (0, 1)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 239)
+               close:           4       (0, 6)
+               dup2:            1       (0, 2)
+               setpgid:         1       (0, 11)
+               rt_sigaction:    13      (0, 10)
+               rt_sigprocmask:  5       (0, 3)
+               getpid:          1       (0, 1)
+       Process (2943, 2942): gnuplot_x11: 
+               Number of system calls: 201 
+               Number of traps: 235 
+               Quantity of data read from files: 30652 
+               Quantity of data written to files: 9658 
+               Time executing process code: (0, 6231) => 0.01 % 
+               Time running: (0, 8557) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               select:          6       (0, 59483)
+               stat64:          1       (0, 10)
+               write:           46      (0, 228)
+               writev:          4       (0, 31)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 64)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 17)
+               read:            60      (0, 11996)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 114)
+               old_mmap:        18      (0, 65)
+               brk:             10      (0, 22)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 254)
+               dup2:            1       (0, 3)
+               close:           10      (0, 48)
+       Process (2942, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7763) => 0.01 % 
+               Time running: (0, 11114) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 54742)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 105)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 34)
+               mprotect:        7       (0, 21)
+               read:            7       (0, 62)
+               close:           9       (0, 17)
+               fstat64:         8       (0, 10)
+               open:            9       (0, 90)
+               old_mmap:        16      (0, 59)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 7)
+               execve:          1       (0, 230)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 734)
+               rt_sigprocmask:  508     (0, 299)
+               getpid:          1       (0, 1)
+       Process (2941, 2940): gnuplot_x11: 
+               Number of system calls: 229 
+               Number of traps: 237 
+               Quantity of data read from files: 51364 
+               Quantity of data written to files: 9682 
+               Time executing process code: (0, 6831) => 0.01 % 
+               Time running: (0, 9360) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 21)
+               stat64:          1       (0, 10)
+               write:           50      (0, 284)
+               select:          8       (0, 24923)
+               writev:          4       (0, 28)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 63)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 18)
+               read:            70      (0, 23505)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 127)
+               old_mmap:        18      (0, 63)
+               brk:             10      (0, 31)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 239)
+               dup2:            1       (0, 2)
+               close:           10      (0, 42)
+       Process (2940, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7774) => 0.01 % 
+               Time running: (0, 11241) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 104566)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 105)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 74)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 63)
+               close:           9       (0, 19)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 87)
+               old_mmap:        16      (0, 57)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 239)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 747)
+               rt_sigprocmask:  508     (0, 334)
+               getpid:          1       (0, 1)
+       Process (2939, 2938): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30884 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6789) => 0.01 % 
+               Time running: (0, 9361) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 17)
+               stat64:          1       (0, 9)
+               write:           50      (0, 277)
+               select:          6       (0, 75961)
+               writev:          4       (0, 26)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 6)
+               socketcall:      3       (0, 61)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 26)
+               mprotect:        6       (0, 17)
+               read:            68      (0, 12035)
+               fstat64:         8       (0, 12)
+               open:            12      (0, 122)
+               old_mmap:        18      (0, 66)
+               brk:             10      (0, 30)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 274)
+               dup2:            1       (0, 3)
+               close:           10      (0, 40)
+       Process (2938, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7667) => 0.01 % 
+               Time running: (0, 11056) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 88048)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 3)
+               fork:            1       (0, 107)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 63)
+               close:           9       (0, 22)
+               fstat64:         8       (0, 12)
+               open:            9       (0, 91)
+               old_mmap:        16      (0, 59)
+               brk:             8       (0, 14)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 232)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 758)
+               rt_sigprocmask:  508     (0, 312)
+               getpid:          1       (0, 1)
+       Process (2937, 2936): gnuplot_x11: 
+               Number of system calls: 209 
+               Number of traps: 237 
+               Quantity of data read from files: 40988 
+               Quantity of data written to files: 9666 
+               Time executing process code: (0, 6441) => 0.01 % 
+               Time running: (0, 8835) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           2       (0, 4)
+               select:          7       (0, 51875)
+               stat64:          1       (0, 10)
+               write:           47      (0, 246)
+               writev:          4       (0, 29)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 87)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 23)
+               mprotect:        6       (0, 17)
+               read:            64      (0, 10671)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 113)
+               old_mmap:        18      (0, 57)
+               brk:             10      (0, 21)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 249)
+               dup2:            1       (0, 3)
+               close:           10      (0, 48)
+       Process (2936, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7617) => 0.01 % 
+               Time running: (0, 10998) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 60)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 102)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 33)
+               mprotect:        7       (0, 20)
+               read:            7       (0, 60)
+               close:           9       (0, 17)
+               fstat64:         8       (0, 16)
+               open:            9       (0, 89)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 235)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 763)
+               rt_sigprocmask:  508     (0, 302)
+               getpid:          1       (0, 1)
+       Process (2935, 2934): gnuplot_x11: 
+               Number of system calls: 227 
+               Number of traps: 237 
+               Quantity of data read from files: 41124 
+               Quantity of data written to files: 9678 
+               Time executing process code: (0, 6856) => 0.01 % 
+               Time running: (0, 9342) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 18)
+               stat64:          1       (0, 10)
+               write:           50      (0, 277)
+               select:          7       (0, 24806)
+               writev:          4       (0, 27)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 60)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 18)
+               read:            69      (0, 1586)
+               fstat64:         8       (0, 12)
+               open:            12      (0, 119)
+               old_mmap:        18      (0, 61)
+               brk:             10      (0, 34)
+               newuname:        6       (0, 12)
+               execve:          1       (0, 225)
+               dup2:            1       (0, 2)
+               close:           10      (0, 41)
+       Process (2934, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7983) => 0.01 % 
+               Time running: (0, 11377) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 29895)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 104)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 61)
+               close:           9       (0, 21)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 87)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 15)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 225)
+               ioctl:           2       (0, 23)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 768)
+               rt_sigprocmask:  508     (0, 278)
+               getpid:          1       (0, 1)
+       Process (2933, 2932): gnuplot_x11: 
+               Number of system calls: 227 
+               Number of traps: 237 
+               Quantity of data read from files: 41124 
+               Quantity of data written to files: 9678 
+               Time executing process code: (0, 6977) => 0.01 % 
+               Time running: (0, 9576) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 22)
+               stat64:          1       (0, 11)
+               write:           50      (0, 299)
+               select:          7       (0, 25451)
+               writev:          4       (0, 28)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 5)
+               socketcall:      3       (0, 61)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 21)
+               mprotect:        6       (0, 19)
+               read:            69      (0, 59276)
+               fstat64:         8       (0, 11)
+               open:            12      (0, 130)
+               old_mmap:        18      (0, 66)
+               brk:             10      (0, 31)
+               newuname:        6       (0, 13)
+               execve:          1       (0, 269)
+               dup2:            1       (0, 3)
+               close:           10      (0, 39)
+       Process (2932, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7723) => 0.01 % 
+               Time running: (0, 11094) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 83643)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 104)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 35)
+               mprotect:        7       (0, 20)
+               read:            7       (0, 58)
+               close:           9       (0, 20)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 90)
+               old_mmap:        16      (0, 58)
+               brk:             8       (0, 15)
+               newuname:        2       (0, 7)
+               execve:          1       (0, 227)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    1017    (0, 741)
+               rt_sigprocmask:  508     (0, 313)
+               getpid:          1       (0, 1)
+       Process (2931, 2930): gnuplot_x11: 
+               Number of system calls: 215 
+               Number of traps: 237 
+               Quantity of data read from files: 41052 
+               Quantity of data written to files: 9666 
+               Time executing process code: (0, 6483) => 0.01 % 
+               Time running: (0, 8825) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           6       (0, 10)
+               select:          7       (0, 26989)
+               stat64:          1       (0, 10)
+               write:           47      (0, 237)
+               writev:          4       (0, 30)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 66)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 22)
+               mprotect:        6       (0, 18)
+               read:            66      (0, 14282)
+               fstat64:         8       (0, 10)
+               open:            12      (0, 113)
+               old_mmap:        18      (0, 64)
+               brk:             10      (0, 20)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 266)
+               dup2:            1       (0, 2)
+               close:           10      (0, 44)
+       Process (2930, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 273 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7681) => 0.01 % 
+               Time running: (0, 10998) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 56)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 106)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 1)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 59)
+               close:           9       (0, 17)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 92)
+               old_mmap:        16      (0, 61)
+               brk:             8       (0, 16)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 232)
+               ioctl:           2       (0, 21)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 749)
+               rt_sigprocmask:  508     (0, 305)
+               getpid:          1       (0, 1)
+       Process (2929, 2928): gnuplot_x11: 
+               Number of system calls: 225 
+               Number of traps: 237 
+               Quantity of data read from files: 30908 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6810) => 0.01 % 
+               Time running: (0, 9293) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 20)
+               select:          6       (0, 4911)
+               stat64:          1       (0, 11)
+               write:           50      (0, 291)
+               writev:          4       (0, 30)
+               access:          1       (0, 9)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 67)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 24)
+               mprotect:        6       (0, 17)
+               read:            68      (0, 11326)
+               fstat64:         8       (0, 10)
+               open:            12      (0, 116)
+               old_mmap:        18      (0, 60)
+               brk:             10      (0, 26)
+               newuname:        6       (0, 10)
+               execve:          1       (0, 248)
+               dup2:            1       (0, 2)
+               close:           10      (0, 44)
+       Process (2928, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7701) => 0.01 % 
+               Time running: (0, 10959) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 2053)
+               llseek:          1       (0, 3)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 104)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 0)
+               munmap:          3       (0, 34)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 59)
+               close:           9       (0, 20)
+               fstat64:         8       (0, 11)
+               open:            9       (0, 89)
+               old_mmap:        16      (0, 59)
+               brk:             8       (0, 15)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 227)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 759)
+               rt_sigprocmask:  508     (0, 300)
+               getpid:          1       (0, 1)
+       Process (2927, 2926): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6768) => 0.01 % 
+               Time running: (0, 9279) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 19)
+               select:          5       (0, 24)
+               stat64:          1       (0, 11)
+               write:           50      (0, 275)
+               writev:          4       (0, 29)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 4)
+               socketcall:      3       (0, 65)
+               rt_sigaction:    2       (0, 5)
+               munmap:          2       (0, 26)
+               mprotect:        6       (0, 17)
+               read:            67      (0, 142784)
+               fstat64:         8       (0, 14)
+               open:            12      (0, 124)
+               old_mmap:        18      (0, 67)
+               brk:             10      (0, 26)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 262)
+               dup2:            1       (0, 3)
+               close:           10      (0, 43)
+       Process (2926, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7664) => 0.01 % 
+               Time running: (0, 11049) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 143646)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 3)
+               fork:            1       (0, 107)
+               pipe:            1       (0, 21)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 1)
+               geteuid:         1       (0, 0)
+               munmap:          3       (0, 33)
+               mprotect:        7       (0, 22)
+               read:            7       (0, 62)
+               close:           9       (0, 17)
+               fstat64:         8       (0, 42)
+               open:            9       (0, 92)
+               old_mmap:        16      (0, 63)
+               brk:             8       (0, 18)
+               newuname:        2       (0, 5)
+               execve:          1       (0, 236)
+               ioctl:           2       (0, 22)
+               setpgid:         1       (0, 0)
+               rt_sigaction:    1017    (0, 752)
+               rt_sigprocmask:  508     (0, 297)
+               getpid:          1       (0, 1)
+       Process (2925, 2924): gnuplot_x11: 
+               Number of system calls: 223 
+               Number of traps: 237 
+               Quantity of data read from files: 30876 
+               Quantity of data written to files: 9674 
+               Time executing process code: (0, 6696) => 0.01 % 
+               Time running: (0, 9147) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               ioctl:           12      (0, 22)
+               select:          5       (0, 22)
+               stat64:          1       (0, 9)
+               write:           50      (0, 264)
+               writev:          4       (0, 30)
+               access:          1       (0, 10)
+               fcntl64:         3       (0, 3)
+               socketcall:      3       (0, 65)
+               rt_sigaction:    2       (0, 4)
+               munmap:          2       (0, 23)
+               mprotect:        6       (0, 17)
+               read:            67      (0, 22233)
+               fstat64:         8       (0, 10)
+               open:            12      (0, 126)
+               old_mmap:        18      (0, 65)
+               brk:             10      (0, 27)
+               newuname:        6       (0, 11)
+               execve:          1       (0, 273)
+               dup2:            1       (0, 3)
+               close:           10      (0, 38)
+       Process (2924, 627): gnuplot: 
+               Number of system calls: 1612 
+               Number of traps: 274 
+               Quantity of data read from files: 13312 
+               Quantity of data written to files: 9177 
+               Time executing process code: (0, 7797) => 0.01 % 
+               Time running: (0, 11161) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           5       (0, 10103)
+               llseek:          1       (0, 2)
+               fcntl64:         1       (0, 2)
+               fork:            1       (0, 105)
+               pipe:            1       (0, 20)
+               setuid:          1       (0, 2)
+               getuid:          1       (0, 0)
+               geteuid:         1       (0, 1)
+               munmap:          3       (0, 36)
+               mprotect:        7       (0, 24)
+               read:            7       (0, 62)
+               close:           9       (0, 19)
+               fstat64:         8       (0, 13)
+               open:            9       (0, 90)
+               old_mmap:        16      (0, 63)
+               brk:             8       (0, 13)
+               newuname:        2       (0, 6)
+               execve:          1       (0, 240)
+               ioctl:           2       (0, 20)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    1017    (0, 744)
+               rt_sigprocmask:  508     (0, 296)
+               getpid:          1       (0, 1)
+       Process (2923, 627): gs-gnu: 
+               Number of system calls: 22598 
+               Number of traps: 2501 
+               Quantity of data read from files: 39575101 
+               Quantity of data written to files: 3366983 
+               Time executing process code: (5, 439174) => 4.53 % 
+               Time running: (5, 617980) => 4.68 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          1579    (0, 21048)
+               access:          6       (0, 51)
+               fcntl64:         6       (0, 8)
+               socketcall:      6       (0, 111)
+               write:           1903    (0, 24074)
+               llseek:          7615    (0, 14120)
+               stat64:          2       (0, 28)
+               times:           1       (0, 2)
+               sysctl:          1       (0, 6)
+               setrlimit:       1       (0, 1)
+               getrlimit:       1       (0, 1)
+               munmap:          65      (0, 505)
+               mprotect:        14      (0, 41)
+               read:            10159   (0, 71739)
+               close:           80      (0, 282)
+               fstat64:         136     (0, 182)
+               open:            496     (0, 3003)
+               old_mmap:        99      (0, 384)
+               brk:             397     (0, 3620)
+               newuname:        10      (0, 16)
+               execve:          1       (0, 257)
+               ioctl:           2       (0, 16)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    10      (0, 11)
+               rt_sigprocmask:  4       (0, 3)
+               getpid:          2       (0, 1)
+       Process (2922, 627): gs-gnu: 
+               Number of system calls: 22598 
+               Number of traps: 2501 
+               Quantity of data read from files: 39575101 
+               Quantity of data written to files: 3366983 
+               Time executing process code: (5, 455072) => 4.55 % 
+               Time running: (5, 631611) => 4.69 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          1579    (0, 19632)
+               access:          6       (0, 51)
+               fcntl64:         6       (0, 7)
+               socketcall:      6       (0, 112)
+               write:           1903    (0, 22468)
+               llseek:          7615    (0, 14041)
+               stat64:          2       (0, 40)
+               times:           1       (0, 2)
+               sysctl:          1       (0, 6)
+               setrlimit:       1       (0, 1)
+               getrlimit:       1       (0, 1)
+               munmap:          65      (0, 505)
+               mprotect:        14      (0, 37)
+               read:            10159   (0, 71182)
+               close:           80      (0, 275)
+               fstat64:         136     (0, 180)
+               open:            496     (0, 2966)
+               old_mmap:        99      (0, 394)
+               brk:             397     (0, 3654)
+               newuname:        10      (0, 16)
+               execve:          1       (0, 227)
+               ioctl:           2       (0, 16)
+               setpgid:         1       (0, 1)
+               rt_sigaction:    10      (0, 11)
+               rt_sigprocmask:  4       (0, 4)
+               getpid:          2       (0, 1)
+       Process (2921, 627): getTime: 
+               Number of system calls: 47 
+               Number of traps: 115 
+               Quantity of data read from files: 1024 
+               Quantity of data written to files: 14 
+               Time executing process code: (0, 1067) => 0.00 % 
+               Time running: (0, 2051) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               write:           1       (0, 9)
+               gettimeofday:    1       (0, 2)
+               munmap:          2       (0, 11)
+               mprotect:        1       (0, 5)
+               read:            1       (0, 8)
+               fstat64:         3       (0, 6)
+               open:            3       (0, 23)
+               old_mmap:        6       (0, 21)
+               brk:             1       (0, 1)
+               newuname:        1       (0, 3)
+               execve:          1       (0, 273)
+               close:           4       (0, 5)
+               dup2:            1       (0, 3)
+               setpgid:         1       (0, 13)
+               rt_sigaction:    13      (0, 13)
+               rt_sigprocmask:  5       (0, 6)
+               getpid:          1       (0, 1)
+       Process (2920, 1): tracedaemon: 
+               Number of system calls: 345 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 86000000 
+               Time executing process code: (0, 2240) => 0.00 % 
+               Time running: (0, 553237) => 0.46 % 
+               Time waiting for I/O: (0, 11970) => 0.01 % 
+               System call usage: 
+               pause:           86      (110, 303110)
+               sigreturn:       86      (0, 233)
+               ioctl:           86      (0, 526)
+               write:           86      (0, 561114)
+       Process (2716, 619): bash: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (627, 621): bash: 
+               Number of system calls: 2401 
+               Number of traps: 1373 
+               Quantity of data read from files: 5885 
+               Quantity of data written to files: 1330 
+               Time executing process code: (0, 18769) => 0.02 % 
+               Time running: (0, 49406) => 0.04 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               kill:            1       (0, 17)
+               stat64:          2       (0, 17)
+               dup2:            10      (0, 15)
+               getdents64:      20      (0, 121)
+               fcntl64:         35      (0, 58)
+               fstat64:         10      (0, 16)
+               open:            15      (0, 239)
+               wait4:           150     (72, 556964)
+               close:           50      (0, 216)
+               setpgid:         75      (0, 272)
+               fork:            75      (0, 9752)
+               pipe:            15      (0, 304)
+               read:            170     (17, 700361)
+               write:           66      (0, 482)
+               ioctl:           291     (0, 6291)
+               time:            8       (0, 5)
+               rt_sigprocmask:  1171    (0, 946)
+               sigreturn:       76      (0, 137)
+               rt_sigaction:    161     (0, 168)
+       Process (621, 619): bash: 
+               Number of system calls: 97 
+               Number of traps: 3 
+               Quantity of data read from files: 3 
+               Quantity of data written to files: 203 
+               Time executing process code: (0, 562) => 0.00 % 
+               Time running: (0, 873) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               stat64:          1       (0, 14)
+               time:            2       (0, 1)
+               sigreturn:       1       (0, 2)
+               wait4:           2       (90, 305040)
+               kill:            1       (0, 18)
+               rt_sigaction:    24      (0, 24)
+               ioctl:           13      (0, 1197)
+               read:            2       (0, 426115)
+               rt_sigprocmask:  42      (0, 38)
+               write:           8       (0, 55)
+       Process (620, 619): gnome-pty-helpe: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (619, 1): gnome-terminal: 
+               Number of system calls: 20989 
+               Number of traps: 0 
+               Quantity of data read from files: 3290304 
+               Quantity of data written to files: 2154194 
+               Time executing process code: (1, 611475) => 1.34 % 
+               Time running: (1, 818763) => 1.52 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          99      (0, 1942)
+               select:          13      (0, 83320)
+               write:           3063    (0, 35643)
+               poll:            3405    (115, 810968)
+               gettimeofday:    6811    (0, 6042)
+               ioctl:           3445    (0, 8163)
+               read:            4152    (0, 21946)
+       Process (617, 1): mixer_applet2: 
+               Number of system calls: 1193 
+               Number of traps: 0 
+               Quantity of data read from files: 96 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 18078) => 0.02 % 
+               Time running: (0, 30493) => 0.03 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               read:            3       (0, 22)
+               poll:            237     (119, 319666)
+               ioctl:           476     (0, 1786)
+               gettimeofday:    476     (0, 415)
+       Process (615, 613): nautilus: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (614, 613): nautilus: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (613, 611): nautilus: 
+               Number of system calls: 120 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 3006) => 0.00 % 
+               Time running: (0, 4023) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               poll:            59      (118, 587017)
+               getppid:         60      (0, 79)
+       Process (611, 1): nautilus: 
+               Number of system calls: 3934 
+               Number of traps: 0 
+               Quantity of data read from files: 31936 
+               Quantity of data written to files: 119064 
+               Time executing process code: (0, 146266) => 0.12 % 
+               Time running: (0, 177779) => 0.15 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               select:          9       (0, 27417)
+               write:           147     (0, 2105)
+               read:            545     (0, 2966)
+               poll:            606     (116, 315309)
+               ioctl:           1323    (0, 2457)
+               stat64:          89      (0, 1404)
+               gettimeofday:    1214    (0, 937)
+       Process (609, 1): gnome-panel: 
+               Number of system calls: 20250 
+               Number of traps: 53 
+               Quantity of data read from files: 267656 
+               Quantity of data written to files: 669950 
+               Time executing process code: (1, 800627) => 1.50 % 
+               Time running: (1, 935109) => 1.61 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               writev:          1       (0, 22)
+               brk:             17      (0, 123)
+               readv:           78      (0, 360)
+               select:          36      (0, 486025)
+               read:            7853    (0, 31474)
+               write:           4481    (0, 33018)
+               time:            119     (0, 104)
+               poll:            2005    (113, 218767)
+               ioctl:           1647    (0, 3816)
+               gettimeofday:    4012    (0, 3505)
+       Process (607, 1): bonobo-activati: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (604, 1): xscreensaver: 
+               Number of system calls: 15178 
+               Number of traps: 21 
+               Quantity of data read from files: 140724 
+               Quantity of data written to files: 5864 
+               Time executing process code: (0, 117301) => 0.10 % 
+               Time running: (0, 170689) => 0.14 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               munmap:          21      (0, 246)
+               close:           21      (0, 55)
+               llseek:          42      (0, 79)
+               old_mmap:        21      (0, 187)
+               fstat64:         21      (0, 48)
+               fcntl64:         21      (0, 47)
+               dup:             21      (0, 62)
+               write:           939     (0, 5071)
+               select:          4165    (118, 179466)
+               time:            95      (0, 79)
+               gettimeofday:    4707    (0, 3495)
+               read:            1896    (0, 10195)
+               ioctl:           3207    (0, 5517)
+       Process (591, 1): metacity: 
+               Number of system calls: 45418 
+               Number of traps: 0 
+               Quantity of data read from files: 837196 
+               Quantity of data written to files: 689098 
+               Time executing process code: (0, 775787) => 0.65 % 
+               Time running: (1, 29732) => 0.86 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               gettimeofday:    63      (0, 55)
+               writev:          1       (0, 28)
+               readv:           60      (0, 273)
+               select:          40      (0, 230937)
+               poll:            2118    (114, 466213)
+               write:           16239   (0, 79403)
+               read:            24478   (0, 94030)
+               ioctl:           2418    (0, 4420)
+       Process (589, 1): gnome-settings-: 
+               Number of system calls: 18 
+               Number of traps: 0 
+               Quantity of data read from files: 192 
+               Quantity of data written to files: 24 
+               Time executing process code: (0, 375) => 0.00 % 
+               Time running: (0, 557) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               poll:            2       (112, 361339)
+               write:           3       (0, 16)
+               read:            6       (0, 31)
+               ioctl:           6       (0, 12)
+       Process (587, 1): gnome-smproxy: 
+               Number of system calls: 17197 
+               Number of traps: 0 
+               Quantity of data read from files: 167280 
+               Quantity of data written to files: 14160 
+               Time executing process code: (0, 194025) => 0.16 % 
+               Time running: (0, 260338) => 0.22 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               readv:           60      (0, 276)
+               write:           660     (0, 2872)
+               gettimeofday:    1597    (0, 1285)
+               select:          6158    (118, 943289)
+               read:            3709    (0, 15157)
+               ioctl:           5012    (0, 7930)
+       Process (584, 1): gconfd-2: 
+               Number of system calls: 11 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 145) => 0.00 % 
+               Time running: (0, 263) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               poll:            1       (0, 159951)
+               time:            5       (0, 4)
+               gettimeofday:    4       (0, 1)
+       Process (581, 577): gnome-session: 
+               Number of system calls: 12 
+               Number of traps: 0 
+               Quantity of data read from files: 96 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 240) => 0.00 % 
+               Time running: (0, 425) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               poll:            2       (112, 361571)
+               read:            3       (0, 18)
+               ioctl:           6       (0, 13)
+       Process (578, 577): XFree86: 
+               Number of system calls: 253693 
+               Number of traps: 4284 
+               Quantity of data read from files: 509059136 
+               Quantity of data written to files: 35008 
+               Time executing process code: (7, 584706) => 6.32 % 
+               Time running: (11, 318284) => 9.43 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               getegid:         50      (0, 26)
+               geteuid:         50      (0, 43)
+               close:           70      (0, 1196)
+               fcntl64:         140     (0, 222)
+               socketcall:      140     (0, 1189)
+               munmap:          119     (0, 5821)
+               old_mmap:        119     (0, 1412)
+               rt_sigprocmask:  1650    (0, 1638)
+               setitimer:       6875    (0, 18961)
+               sigreturn:       4972    (0, 14278)
+               select:          73194   (111, 538333)
+               gettimeofday:    5945    (0, 4955)
+               writev:          35008   (0, 159348)
+               read:            125360          (0, 509895)
+       Process (577, 340): xinit: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (345, 1): getty: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (344, 1): getty: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (343, 1): getty: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (342, 1): getty: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (341, 1): getty: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (340, 1): bash: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (338, 1): miniserv.pl: 
+               Number of system calls: 72 
+               Number of traps: 0 
+               Quantity of data read from files: 24576 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 2005) => 0.00 % 
+               Time running: (0, 2494) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               select:          11      (109, 997962)
+               read:            24      (0, 168)
+               llseek:          12      (0, 42)
+               wait4:           12      (0, 30)
+               time:            12      (0, 8)
+       Process (337, 1): miniserv.pl: 
+               Number of system calls: 36 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 1475) => 0.00 % 
+               Time running: (0, 1731) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               select:          11      (109, 998630)
+               wait4:           12      (0, 32)
+               time:            12      (0, 11)
+       Process (331, 1): cron: 
+               Number of system calls: 22 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 124) => 0.00 % 
+               Time running: (0, 216) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               nanosleep:       1       (60, 9619)
+               rt_sigaction:    2       (0, 5)
+               rt_sigprocmask:  4       (0, 7)
+               stat64:          10      (0, 64)
+               time:            4       (0, 3)
+       Process (328, 1): atd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (326, 1): xfs: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (315, 1): sshd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (251, 1): rpc.mountd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (248, 1): nfsd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (247, 1): nfsd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (246, 1): nfsd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (245, 1): nfsd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (244, 1): nfsd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (243, 1): nfsd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (242, 1): nfsd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (241, 240): rpciod: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (240, 1): lockd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (239, 1): nfsd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (233, 1): cfd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (231, 1): cupsd: 
+               Number of system calls: 492 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 4215) => 0.00 % 
+               Time running: (0, 6606) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               select:          119     (118, 992494)
+               time:            372     (0, 253)
+       Process (228, 1): inetd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (213, 1): rpc.statd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (209, 1): named: 
+               Number of system calls: 6 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 38) => 0.00 % 
+               Time running: (0, 73) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               gettimeofday:    3       (0, 2)
+               rt_sigprocmask:  2       (0, 3)
+       Process (206, 1): klogd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (203, 1): syslogd: 
+               Number of system calls: 20 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 102) => 0.00 % 
+               Time running: (0, 211) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               select:          3       (89, 999467)
+               sigreturn:       4       (0, 5)
+               alarm:           4       (0, 12)
+               rt_sigaction:    4       (0, 11)
+               time:            4       (0, 3)
+       Process (125, 1): portmap: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (7, 1): khubd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (6, 0): kupdated: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 27491) => 0.02 % 
+               Time waiting for I/O: (0, 31924) => 0.03 % 
+               System call usage: 
+       Process (5, 0): bdflush: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (4, 0): kswapd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (3, 0): ksoftirqd_CPU0: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 0) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (2, 1): keventd: 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (0, 1290) => 0.00 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       Process (1, 0): init: 
+               Number of system calls: 515 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 2767) => 0.00 % 
+               Time running: (0, 6464) => 0.01 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+               sigreturn:       50      (0, 97)
+               wait4:           100     (0, 995)
+               select:          72      (118, 474784)
+               fstat64:         73      (0, 80)
+               stat64:          146     (0, 1260)
+               time:            73      (0, 68)
+       Process (0, -1): 
+               Number of system calls: 0 
+               Number of traps: 0 
+               Quantity of data read from files: 0 
+               Quantity of data written to files: 0 
+               Time executing process code: (0, 0) => 0.00 % 
+               Time running: (45, 210377) => 37.68 % 
+               Time waiting for I/O: (0, 0) => 0.00 % 
+               System call usage: 
+       System-wide:
+               Total process time: (67, 561725) => 56.31 % 
+               Total system time: (52, 425038) => 43.69 % 
+               System idle: (45, 210377) => 37.68 % 
+               System call usage: 
+               alarm:           4       (0, 12)
+               nanosleep:       1       (60, 9619)
+               setitimer:       6875    (0, 18961)
+               getegid:         50      (0, 26)
+               dup:             21      (0, 62)
+               readv:           198     (0, 909)
+               getppid:         60      (0, 79)
+               poll:            8435    (922, 600801)
+               time:            706     (0, 539)
+               wait4:           276     (162, 863061)
+               getdents64:      20      (0, 121)
+               kill:            2       (0, 35)
+               sigreturn:       5189    (0, 14752)
+               pause:           86      (110, 303110)
+               getrlimit:       10      (0, 13)
+               setrlimit:       10      (0, 11)
+               sysctl:          10      (0, 63)
+               times:           10      (0, 13)
+               ioctl:           18512   (0, 44175)
+               geteuid:         100     (0, 87)
+               getuid:          50      (0, 42)
+               setuid:          50      (0, 88)
+               pipe:            65      (0, 1361)
+               fork:            125     (0, 15057)
+               llseek:          76254   (0, 141737)
+               socketcall:      350     (0, 5517)
+               fcntl64:         456     (0, 714)
+               access:          110     (0, 1024)
+               writev:          51099   (0, 364190)
+               select:          84137   (898, 435436)
+               gettimeofday:    24842   (0, 20708)
+               getpid:          85      (0, 70)
+               rt_sigprocmask:  28384   (0, 18256)
+               rt_sigaction:    51436   (0, 37697)
+               setpgid:         150     (0, 498)
+               dup2:            75      (0, 180)
+               close:           1956    (0, 7503)
+               stat64:          338     (0, 3661)
+               execve:          125     (0, 30517)
+               newuname:        515     (0, 1063)
+               brk:             4917    (0, 38528)
+               old_mmap:        2920    (0, 11776)
+               open:            6070    (0, 40653)
+               fstat64:         2309    (0, 3163)
+               read:            273487          (20, 610407)
+               mprotect:        805     (0, 2445)
+               munmap:          1070    (0, 14273)
+               write:           47436   (4, 158743)
+
+####################################################################
+Event                  Time                    PID     Length  Description
+####################################################################
+Syscall exit           1,042,824,617,654,658   N/A     7       
+Trap entry             1,042,824,617,654,663   N/A     13      TRAP : page fault; EIP : 0x400E6448
This page took 0.103591 seconds and 4 git commands to generate.