keep better track of /proc/*/stat fields
This commit is contained in:
parent
543412434a
commit
547a30b20b
|
@ -43,31 +43,31 @@
|
|||
* 12 - majflt
|
||||
* 13 - cmajflt
|
||||
* 14 - utime
|
||||
* 14 - stime
|
||||
* 15 - cutime
|
||||
* 16 - cstime
|
||||
* 17 - priority
|
||||
* 18 - nice
|
||||
* 19 - 0 (removed field)
|
||||
* 20 - itrealvalue
|
||||
* 21 - starttime
|
||||
* 22 - vsize
|
||||
* 23 - rss
|
||||
* 24 - rlim
|
||||
* 25 - startcode
|
||||
* 26 - endcode
|
||||
* 27 - startstack
|
||||
* 28 - kstkesp
|
||||
* 29 - kstkeip
|
||||
* 30 - signal
|
||||
* 31 - blocked
|
||||
* 32 - sigignore
|
||||
* 33 - sigcache
|
||||
* 34 - wchan
|
||||
* 35 - nswap
|
||||
* 36 - cnswap
|
||||
* 37 - exit_signal <-- looking for this.
|
||||
* 38 - processor
|
||||
* 15 - stime
|
||||
* 16 - cutime
|
||||
* 17 - cstime
|
||||
* 18 - priority
|
||||
* 19 - nice
|
||||
* 20 - 0 (removed field)
|
||||
* 21 - itrealvalue
|
||||
* 22 - starttime
|
||||
* 23 - vsize
|
||||
* 24 - rss
|
||||
* 25 - rlim
|
||||
* 26 - startcode
|
||||
* 27 - endcode
|
||||
* 28 - startstack
|
||||
* 29 - kstkesp
|
||||
* 30 - kstkeip
|
||||
* 31 - signal
|
||||
* 32 - blocked
|
||||
* 33 - sigignore
|
||||
* 34 - sigcache
|
||||
* 35 - wchan
|
||||
* 36 - nswap
|
||||
* 37 - cnswap
|
||||
* 38 - exit_signal <-- looking for this.
|
||||
* 39 - processor
|
||||
* ... more for newer RH
|
||||
*/
|
||||
|
||||
|
@ -587,62 +587,63 @@ static int proc_stat_read(sigar_t *sigar, sigar_pid_t pid)
|
|||
len = sizeof(pstat->name)-1;
|
||||
}
|
||||
|
||||
/* (1,2) */
|
||||
memcpy(pstat->name, ptr, len);
|
||||
pstat->name[len] = '\0';
|
||||
ptr = tmp+1;
|
||||
|
||||
SIGAR_SKIP_SPACE(ptr);
|
||||
pstat->state = *ptr++;
|
||||
pstat->state = *ptr++; /* (3) */
|
||||
SIGAR_SKIP_SPACE(ptr);
|
||||
|
||||
pstat->ppid = sigar_strtoul(ptr);
|
||||
ptr = sigar_skip_token(ptr); /* pgrp */
|
||||
ptr = sigar_skip_token(ptr); /* session */
|
||||
pstat->tty = sigar_strtoul(ptr);
|
||||
ptr = sigar_skip_token(ptr); /* tty pgrp */
|
||||
pstat->ppid = sigar_strtoul(ptr); /* (4) */
|
||||
ptr = sigar_skip_token(ptr); /* (5) pgrp */
|
||||
ptr = sigar_skip_token(ptr); /* (6) session */
|
||||
pstat->tty = sigar_strtoul(ptr); /* (7) */
|
||||
ptr = sigar_skip_token(ptr); /* (8) tty pgrp */
|
||||
|
||||
ptr = sigar_skip_token(ptr); /* flags */
|
||||
pstat->minor_faults = sigar_strtoul(ptr);
|
||||
ptr = sigar_skip_token(ptr); /* cmin flt */
|
||||
pstat->major_faults = sigar_strtoul(ptr);
|
||||
ptr = sigar_skip_token(ptr); /* cmaj flt */
|
||||
ptr = sigar_skip_token(ptr); /* (9) flags */
|
||||
pstat->minor_faults = sigar_strtoul(ptr); /* (10) */
|
||||
ptr = sigar_skip_token(ptr); /* (11) cmin flt */
|
||||
pstat->major_faults = sigar_strtoul(ptr); /* (12) */
|
||||
ptr = sigar_skip_token(ptr); /* (13) cmaj flt */
|
||||
|
||||
pstat->utime = sigar_strtoul(ptr) / sigar->ticks;
|
||||
pstat->stime = sigar_strtoul(ptr) / sigar->ticks;
|
||||
pstat->utime = sigar_strtoul(ptr) / sigar->ticks; /* (14) */
|
||||
pstat->stime = sigar_strtoul(ptr) / sigar->ticks; /* (15) */
|
||||
|
||||
ptr = sigar_skip_token(ptr); /* cutime */
|
||||
ptr = sigar_skip_token(ptr); /* cstime */
|
||||
ptr = sigar_skip_token(ptr); /* (16) cutime */
|
||||
ptr = sigar_skip_token(ptr); /* (17) cstime */
|
||||
|
||||
pstat->priority = sigar_strtoul(ptr);
|
||||
pstat->nice = sigar_strtoul(ptr);
|
||||
pstat->priority = sigar_strtoul(ptr); /* (18) */
|
||||
pstat->nice = sigar_strtoul(ptr); /* (19) */
|
||||
|
||||
ptr = sigar_skip_token(ptr); /* timeout */
|
||||
ptr = sigar_skip_token(ptr); /* it_real_value */
|
||||
ptr = sigar_skip_token(ptr); /* (20) timeout */
|
||||
ptr = sigar_skip_token(ptr); /* (21) it_real_value */
|
||||
|
||||
pstat->start_time = sigar_strtoul(ptr);
|
||||
pstat->start_time = sigar_strtoul(ptr); /* (22) */
|
||||
pstat->start_time /= sigar->ticks;
|
||||
pstat->start_time += sigar->boot_time; /* seconds */
|
||||
pstat->start_time *= 1000; /* milliseconds */
|
||||
|
||||
pstat->vsize = sigar_strtoul(ptr);
|
||||
pstat->rss = pageshift(sigar_strtoul(ptr));
|
||||
pstat->vsize = sigar_strtoul(ptr); /* (23) */
|
||||
pstat->rss = pageshift(sigar_strtoul(ptr)); /* (24) */
|
||||
|
||||
ptr = sigar_skip_token(ptr); /* startcode */
|
||||
ptr = sigar_skip_token(ptr); /* endcode */
|
||||
ptr = sigar_skip_token(ptr); /* startstack */
|
||||
ptr = sigar_skip_token(ptr); /* kstkesp */
|
||||
ptr = sigar_skip_token(ptr); /* kstkeip */
|
||||
ptr = sigar_skip_token(ptr); /* signal */
|
||||
ptr = sigar_skip_token(ptr); /* blocked */
|
||||
ptr = sigar_skip_token(ptr); /* sigignore */
|
||||
ptr = sigar_skip_token(ptr); /* sigcache */
|
||||
ptr = sigar_skip_token(ptr); /* wchan */
|
||||
ptr = sigar_skip_token(ptr); /* nswap */
|
||||
ptr = sigar_skip_token(ptr); /* cnswap */
|
||||
ptr = sigar_skip_token(ptr); /* exit_signal */
|
||||
ptr = sigar_skip_token(ptr); /* (25) rlim */
|
||||
ptr = sigar_skip_token(ptr); /* (26) startcode */
|
||||
ptr = sigar_skip_token(ptr); /* (27) endcode */
|
||||
ptr = sigar_skip_token(ptr); /* (28) startstack */
|
||||
ptr = sigar_skip_token(ptr); /* (29) kstkesp */
|
||||
ptr = sigar_skip_token(ptr); /* (30) kstkeip */
|
||||
ptr = sigar_skip_token(ptr); /* (31) signal */
|
||||
ptr = sigar_skip_token(ptr); /* (32) blocked */
|
||||
ptr = sigar_skip_token(ptr); /* (33) sigignore */
|
||||
ptr = sigar_skip_token(ptr); /* (34) sigcache */
|
||||
ptr = sigar_skip_token(ptr); /* (35) wchan */
|
||||
ptr = sigar_skip_token(ptr); /* (36) nswap */
|
||||
ptr = sigar_skip_token(ptr); /* (37) cnswap */
|
||||
ptr = sigar_skip_token(ptr); /* (38) exit_signal */
|
||||
|
||||
ptr = sigar_skip_token(ptr);
|
||||
pstat->processor = sigar_strtoul(ptr);
|
||||
pstat->processor = sigar_strtoul(ptr); /* (39) */
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue