コード例 #1
0
ファイル: disksim_ctlrsmart.c プロジェクト: 915086731/disksim
void controller_smart_printstats (controller *currctlr, char *prefix)
{
   ctlrinfo_t *ctlrinfo = disksim->ctlrinfo;
   int devno;
   char devprefix[181];
   struct ioq **queueset = DISKSIM_malloc (currctlr->numdevices * sizeof(void *));

   if (ctlrinfo->ctl_printcachestats) {
      currctlr->cache->cache_printstats(currctlr->cache, prefix);
   }

   for (devno=0; devno<currctlr->numdevices; devno++) {
      queueset[devno] = currctlr->devices[devno].queue;
   }
   sprintf (devprefix, "%sdevices ", prefix);
   ioqueue_printstats (queueset, currctlr->numdevices, devprefix);

   if ((ctlrinfo->ctl_printperdiskstats) && (currctlr->numdevices > 1)) {
      for (devno=0; devno<currctlr->numdevices; devno++) {
         struct ioq *queue = currctlr->devices[devno].queue;
         if (ioqueue_get_number_of_requests(queue)) {
            sprintf(devprefix, "%sdevice #%d ", prefix, devno);
            ioqueue_printstats(&queue, 1, devprefix);
         }
      }
   }
}
コード例 #2
0
ファイル: disksim_iodriver.c プロジェクト: LJBR802303/DiskSim
void iodriver_printstats()
{
   int i;
   int j;
   struct ioq **queueset;
   int setsize = 0;
   char prefix[80];

   fprintf (outputfile, "\nOVERALL I/O SYSTEM STATISTICS\n");
   fprintf (outputfile, "-----------------------------\n\n");
   sprintf (prefix, "Overall I/O System ");
   ioqueue_printstats (&OVERALLQUEUE, 1, prefix);

   fprintf (outputfile, "\nSYSTEM-LEVEL LOGORG STATISTICS\n");
   fprintf (outputfile, "------------------------------\n\n");
   sprintf(prefix, "System ");
   logorg_printstats(sysorgs, numsysorgs, prefix);

   fprintf (outputfile, "\nIODRIVER STATISTICS\n");
   fprintf (outputfile, "-------------------\n\n");
   for (i = 0; i < numiodrivers; i++) {
      setsize += iodrivers[i]->numdevices;
   }

   queueset = (struct ioq **)DISKSIM_malloc(setsize*sizeof(struct ioq *));

   setsize = 0;
   for (i = 0; i < numiodrivers; i++) {
      for (j = 0; j < iodrivers[i]->numdevices; j++) {
         queueset[setsize] = iodrivers[i]->devices[j].queue;
         setsize++;
      }
   }
   sprintf(prefix, "IOdriver ");
   if (stat_get_count(&emptyqueuestats) > 0) {
      stat_print(&emptyqueuestats, prefix);
   }
   if (stat_get_count(&initiatenextstats) > 0) {
      stat_print(&initiatenextstats, prefix);
   }
   ioqueue_printstats(queueset, setsize, prefix);
   if ((drv_printperdiskstats == TRUE) && ((numiodrivers > 1) || (iodrivers[0]->numdevices > 1))) {
      for (i = 0; i < numiodrivers; i++) {
         for (j = 0; j < iodrivers[i]->numdevices; j++) {
            fprintf (outputfile, "\nI/O Driver #%d - Device #%d\n", i, j);
            sprintf(prefix, "IOdriver #%d device #%d ", i, j);
            ioqueue_printstats(&iodrivers[i]->devices[j].queue, 1, prefix);
         }
      }
   }

   free(queueset);
   queueset = NULL;
}
コード例 #3
0
ファイル: ssd.c プロジェクト: vishnu89/gijoe
void ssd_printsetstats (int *set, int setsize, char *sourcestr)
{
   int i;
   struct ioq * queueset[MAXDEVICES*SSD_MAX_ELEMENTS];
   int queuecnt = 0;
   int reqcnt = 0;
   char prefix[80];

   //using more secure functions
   sprintf_s4(prefix, 80, "%sssd ", sourcestr);
   for (i=0; i<setsize; i++) {
      ssd_t *currdisk = getssd (set[i]);
      struct ioq *q = currdisk->queue;
      queueset[queuecnt] = q;
      queuecnt++;
      reqcnt += ioqueue_get_number_of_requests(q);
   }
   if (reqcnt == 0) {
      fprintf (outputfile, "\nNo ssd requests for members of this set\n\n");
      return;
   }
   ioqueue_printstats(queueset, queuecnt, prefix);

   ssd_acctime_printstats(set, setsize, prefix);
   ssd_other_printstats(set, setsize, prefix);
}
コード例 #4
0
ファイル: mems_disksim.c プロジェクト: LJBR802303/DiskSim
/* Print statistics */
void
mems_printstats (void)
{
  struct ioq *queueset[MAXDEVICES];
  int set[MAXDEVICES];
  int i;
  int reqcnt = 0;
  char prefix[80];
  int devcnt;

  mems_t *dev;

  fprintf(outputfile, "\nMEMS STATISTICS\n----------------\n\n");
  sprintf(prefix, "Mems ");

  if (!disksim->memsinfo) {
    fprintf(outputfile, "No mems requests encountered (1)\n");
    return;
  }    

  devcnt = 0;
  for (i = 0; i < disksim->memsinfo->devices_len; i++) {
    dev = getmems(i);
    if (dev) {
      // SCHLOS - this has been hard-coded to the first sled since
      //  mems_event doesn't use the device queues anymore.
      queueset[devcnt] = dev->sled[0].queue;
      reqcnt += ioqueue_get_number_of_requests(dev->queue);
      devcnt++;
    }
  }
  assert(devcnt == disksim->memsinfo->numdevices);

  /*
  if (reqcnt == 0) {
    fprintf(outputfile, "No mems requests encountered (2)\n");
    return;
  }
  */

  ioqueue_printstats(queueset, devcnt, prefix);

  devcnt = 0;
  for (i=0; i < disksim->memsinfo->devices_len; i++) {
    dev = getmems(i);
    if (dev) {
      set[devcnt] = i;
      devcnt++;
    }
  }
  assert(devcnt == disksim->memsinfo->numdevices);

  mems_prefetch_printstats(set, devcnt, prefix);
  mems_seektime_printstats(set, devcnt, prefix);
  mems_other_printstats(set, devcnt, prefix);
  mems_inactive_printstats(set, devcnt, prefix);
  mems_buffer_printstats(set, devcnt, prefix);
  mems_energy_printstats(set, devcnt, prefix);
  fprintf(outputfile, "\n\n");
}
コード例 #5
0
ファイル: mems_disksim.c プロジェクト: LJBR802303/DiskSim
/* Print set statistics */
void
mems_printsetstats (int *set, int setsize, char *sourcestr)
{
  int i;
  struct ioq *queueset[MAXDEVICES];
  int reqcnt = 0;
  char prefix[80];

  sprintf(prefix, "%smems ", sourcestr);
  for (i=0; i<setsize; i++) {
    mems_t *dev = getmems(set[i]);
    queueset[i] = dev->queue;
    reqcnt += ioqueue_get_number_of_requests(dev->queue);
  }
  if (reqcnt == 0) {
    fprintf(outputfile, "\nNo mems requests for members of this set\n\n");
    return;
  }
  ioqueue_printstats(queueset, setsize, prefix);

  mems_prefetch_printstats(set, setsize, prefix);
  mems_seektime_printstats(set, setsize, prefix);
  mems_other_printstats(set, setsize, prefix);
  mems_inactive_printstats(set, setsize, prefix);
  mems_buffer_printstats(set, setsize, prefix);
  mems_energy_printstats(set, setsize, prefix);
}
コード例 #6
0
void simpledisk_printsetstats (int *set, int setsize, char *sourcestr)
{
   int i;
   struct ioq * queueset[MAXDEVICES];
   int reqcnt = 0;
   char prefix[80];

   sprintf(prefix, "%ssimpledisk ", sourcestr);
   for (i=0; i<setsize; i++) {
      simpledisk_t *currdisk = getsimpledisk (set[i]);
      queueset[i] = currdisk->queue;
      reqcnt += ioqueue_get_number_of_requests(currdisk->queue);
   }
   if (reqcnt == 0) {
      fprintf (outputfile, "\nNo simpledisk requests for members of this set\n\n");
      return;
   }
   ioqueue_printstats(queueset, setsize, prefix);

   simpledisk_acctime_printstats(set, setsize, prefix);
   simpledisk_other_printstats(set, setsize, prefix);
}
コード例 #7
0
void simpledisk_printstats (void)
{
   struct ioq * queueset[MAXDEVICES];
   int set[MAXDEVICES];
   int i;
   int reqcnt = 0;
   char prefix[80];
   int diskcnt;

   fprintf(outputfile, "\nSIMPLEDISK STATISTICS\n");
   fprintf(outputfile, "---------------------\n\n");

   sprintf(prefix, "Simpledisk ");

   diskcnt = 0;
   for (i=0; i<MAXDEVICES; i++) {
      simpledisk_t *currdisk = getsimpledisk (i);
      if (currdisk) {
         queueset[diskcnt] = currdisk->queue;
         reqcnt += ioqueue_get_number_of_requests(currdisk->queue);
         diskcnt++;
      }
   }
   assert (diskcnt == numsimpledisks);

   if (reqcnt == 0) {
      fprintf(outputfile, "No simpledisk requests encountered\n");
      return;
   }

   ioqueue_printstats(queueset, numsimpledisks, prefix);

   diskcnt = 0;
   for (i=0; i<MAXDEVICES; i++) {
      simpledisk_t *currdisk = getsimpledisk (i);
      if (currdisk) {
         set[diskcnt] = i;
         diskcnt++;
      }
   }
   assert (diskcnt == numsimpledisks);

   simpledisk_acctime_printstats(set, numsimpledisks, prefix);
   simpledisk_other_printstats(set, numsimpledisks, prefix);
   fprintf (outputfile, "\n\n");

   if (numsimpledisks <= 1) {
      return;
   }

   for (i=0; i<numsimpledisks; i++) {
      simpledisk_t *currdisk = getsimpledisk (set[i]);
      if (currdisk->printstats == FALSE) {
	 continue;
      }
      if (ioqueue_get_number_of_requests(currdisk->queue) == 0) {
	 fprintf(outputfile, "No requests for simpledisk #%d\n\n\n", set[i]);
	 continue;
      }
      fprintf(outputfile, "Simpledisk #%d:\n\n", set[i]);
      sprintf(prefix, "Simpledisk #%d ", set[i]);
      ioqueue_printstats(&currdisk->queue, 1, prefix);
      simpledisk_acctime_printstats(&set[i], 1, prefix);
      simpledisk_other_printstats(&set[i], 1, prefix);
      fprintf (outputfile, "\n\n");
   }
}
コード例 #8
0
ファイル: ssd.c プロジェクト: vishnu89/gijoe
void ssd_printstats (void)
{
   struct ioq * queueset[MAXDEVICES*SSD_MAX_ELEMENTS];
   int set[MAXDEVICES];
   int i,j;
   int reqcnt = 0;
   char prefix[80];
   int diskcnt;
   int queuecnt;

   fprintf(outputfile, "\nSSD STATISTICS\n");
   fprintf(outputfile, "---------------------\n\n");

   sprintf_s3(prefix, 80, "ssd ");

   diskcnt = 0;
   queuecnt = 0;
   for (i=0; i<MAXDEVICES; i++) {
      ssd_t *currdisk = getssd (i);
      if (currdisk) {
         struct ioq *q = currdisk->queue;
         queueset[queuecnt] = q;
         queuecnt++;
         reqcnt += ioqueue_get_number_of_requests(q);
         diskcnt++;
      }
   }
   assert (diskcnt == numssds);

   if (reqcnt == 0) {
      fprintf(outputfile, "No ssd requests encountered\n");
      return;
   }

   ioqueue_printstats(queueset, queuecnt, prefix);

   diskcnt = 0;
   for (i=0; i<MAXDEVICES; i++) {
      ssd_t *currdisk = getssd (i);
      if (currdisk) {
         set[diskcnt] = i;
         diskcnt++;
      }
   }
   assert (diskcnt == numssds);

   ssd_acctime_printstats(set, numssds, prefix);
   ssd_other_printstats(set, numssds, prefix);

   ssd_printcleanstats(set, numssds, prefix);

   fprintf (outputfile, "\n\n");

   for (i=0; i<numssds; i++) {
      ssd_t *currdisk = getssd (set[i]);
      if (currdisk->printstats == FALSE) {
          continue;
      }
      reqcnt = 0;
      {
          struct ioq *q = currdisk->queue;
          reqcnt += ioqueue_get_number_of_requests(q);
      }
      if (reqcnt == 0) {
          fprintf(outputfile, "No requests for ssd #%d\n\n\n", set[i]);
          continue;
      }
      fprintf(outputfile, "ssd #%d:\n\n", set[i]);
      sprintf_s4(prefix, 80, "ssd #%d ", set[i]);
      {
          struct ioq *q;
          q = currdisk->queue;
          ioqueue_printstats(&q, 1, prefix);
      }
      for (j=0;j<currdisk->params.nelements;j++) {
          char pprefix[100];
          struct ioq *q;
          sprintf_s5(pprefix, 100, "%s elem #%d ", prefix, j);
          q = currdisk->elements[j].queue;
          ioqueue_printstats(&q, 1, pprefix);
      }
      ssd_acctime_printstats(&set[i], 1, prefix);
      ssd_other_printstats(&set[i], 1, prefix);
      fprintf (outputfile, "\n\n");
   }
}