[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.87 and 1.88

version 1.87, 2018/09/26 17:23:13 version 1.88, 2018/10/05 18:56:57
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 201 
Line 200 
                         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 599 
Line 592 
 static void  static void
 getinfo(struct Info *si)  getinfo(struct Info *si)
 {  {
         static int cp_time2_mib[3] = { CTL_KERN, KERN_CPTIME2, 0 };          static int cp_time_mib[] = { CTL_KERN, KERN_CPTIME };
         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], cpu, i;          int mib[4], i;
         long cpu_time[CPUSTATES];  
         size_t size;          size_t size;
   
         dkreadstats();          dkreadstats();
Line 620 
Line 612 
                 }                  }
         }          }
   
         memset(&si->time, 0, sizeof(si->time));          size = sizeof(si->time);
         for (cpu = 0; cpu < ncpu; cpu++) {          if (sysctl(cp_time_mib, 2, &si->time, &size, NULL, 0) < 0) {
                 cp_time2_mib[2] = cpu;                  error("Can't get KERN_CPTIME: %s\n", strerror(errno));
                 size = sizeof(cpu_time);                  memset(&si->time, 0, sizeof(si->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.87  
changed lines
  Added in v.1.88