[BACK]Return to vmstat.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / systat

Diff for /src/usr.bin/systat/vmstat.c between version 1.86 and 1.87

version 1.86, 2018/06/22 14:22:06 version 1.87, 2018/09/26 17:23:13
Line 98 
Line 98 
 static  double etime;  static  double etime;
 static  float hertz;  static  float hertz;
 static  int nintr;  static  int nintr;
   static  int ncpu;
 static  long *intrloc;  static  long *intrloc;
 static  char **intrname;  static  char **intrname;
 static  int ipktsrow;  static  int ipktsrow;
Line 200 
Line 201 
                         return (-1);                          return (-1);
         }          }
   
           mib[0] = CTL_HW;
           mib[1] = HW_NCPU;
           size = sizeof(ncpu);
           if (sysctl(mib, 2, &ncpu, &size, NULL, 0) < 0)
                   return (-1);
   
         allocinfo(&s);          allocinfo(&s);
         allocinfo(&s1);          allocinfo(&s1);
         allocinfo(&s2);          allocinfo(&s2);
Line 592 
Line 599 
 static void  static void
 getinfo(struct Info *si)  getinfo(struct Info *si)
 {  {
         static int cp_time_mib[] = { CTL_KERN, KERN_CPTIME };          static int cp_time2_mib[3] = { CTL_KERN, KERN_CPTIME2, 0 };
         static int nchstats_mib[2] = { CTL_KERN, KERN_NCHSTATS };          static int nchstats_mib[2] = { CTL_KERN, KERN_NCHSTATS };
         static int uvmexp_mib[2] = { CTL_VM, VM_UVMEXP };          static int uvmexp_mib[2] = { CTL_VM, VM_UVMEXP };
         static int vmtotal_mib[2] = { CTL_VM, VM_METER };          static int vmtotal_mib[2] = { CTL_VM, VM_METER };
         int mib[4], i;          int mib[4], cpu, i;
           long cpu_time[CPUSTATES];
         size_t size;          size_t size;
   
         dkreadstats();          dkreadstats();
Line 612 
Line 620 
                 }                  }
         }          }
   
         size = sizeof(si->time);          memset(&si->time, 0, sizeof(si->time));
         if (sysctl(cp_time_mib, 2, &si->time, &size, NULL, 0) < 0) {          for (cpu = 0; cpu < ncpu; cpu++) {
                 error("Can't get KERN_CPTIME: %s\n", strerror(errno));                  cp_time2_mib[2] = cpu;
                 memset(&si->time, 0, sizeof(si->time));                  size = sizeof(cpu_time);
                   if (sysctl(cp_time2_mib, 3, &cpu_time, &size, NULL, 0) < 0) {
                           if (errno != ENODEV) {
                                   error("Can't get KERN_CPTIME2: %s\n",
                                       strerror(errno));
                                   memset(&si->time, 0, sizeof(si->time));
                                   break;
                           }
                           continue;       /* ignore offline CPUs */
                   }
                   for (i = 0; i < nitems(si->time); i++)
                           si->time[i] += cpu_time[i];
         }          }
   
         size = sizeof(si->nchstats);          size = sizeof(si->nchstats);

Legend:
Removed from v.1.86  
changed lines
  Added in v.1.87