1 /* 2 ** structure containing only relevant process-info extracted 3 ** from kernel's process-administration 4 */ 5 struct tstat_25 { 6 /* GENERAL TASK INFO */ 7 struct gen_25 { 8 int tgid; /* threadgroup identification */ 9 int pid; /* process identification */ 10 int ppid; /* parent process identification*/ 11 int ruid; /* real user identification */ 12 int euid; /* eff. user identification */ 13 int suid; /* saved user identification */ 14 int fsuid; /* fs user identification */ 15 int rgid; /* real group identification */ 16 int egid; /* eff. group identification */ 17 int sgid; /* saved group identification */ 18 int fsgid; /* fs group identification */ 19 int nthr; /* number of threads in tgroup */ 20 char name[PNAMLEN+1];/* process name string */ 21 char isproc; /* boolean: process level? */ 22 char state; /* process state ('E' = exited) */ 23 int excode; /* process exit status */ 24 time_t btime; /* process start time (epoch) */ 25 time_t elaps; /* process elaps time (hertz) */ 26 char cmdline[CMDLEN+1];/* command-line string */ 27 int nthrslpi; /* # threads in state 'S' */ 28 int nthrslpu; /* # threads in state 'D' */ 29 int nthrrun; /* # threads in state 'R' */ 30 31 int ctid; /* OpenVZ container ID */ 32 int vpid; /* OpenVZ virtual PID */ 33 34 int wasinactive; /* boolean: task inactive */ 35 36 char container[16]; /* Docker container id (12 pos) */ 37 } gen; 38 39 /* CPU STATISTICS */ 40 struct cpu_25 { 41 count_t utime; /* time user text (ticks) */ 42 count_t stime; /* time system text (ticks) */ 43 int nice; /* nice value */ 44 int prio; /* priority */ 45 int rtprio; /* realtime priority */ 46 int policy; /* scheduling policy */ 47 int curcpu; /* current processor */ 48 int sleepavg; /* sleep average percentage */ 49 int ifuture[4]; /* reserved for future use */ 50 count_t cfuture[4]; /* reserved for future use */ 51 } cpu; 52 53 /* DISK STATISTICS */ 54 struct dsk_25 { 55 count_t rio; /* number of read requests */ 56 count_t rsz; /* cumulative # sectors read */ 57 count_t wio; /* number of write requests */ 58 count_t wsz; /* cumulative # sectors written */ 59 count_t cwsz; /* cumulative # written sectors */ 60 /* being cancelled */ 61 count_t cfuture[4]; /* reserved for future use */ 62 } dsk; 63 64 /* MEMORY STATISTICS */ 65 struct mem_25 { 66 count_t minflt; /* number of page-reclaims */ 67 count_t majflt; /* number of page-faults */ 68 count_t vexec; /* virtmem execfile (Kb) */ 69 count_t vmem; /* virtual memory (Kb) */ 70 count_t rmem; /* resident memory (Kb) */ 71 count_t pmem; /* resident memory (Kb) */ 72 count_t vgrow; /* virtual growth (Kb) */ 73 count_t rgrow; /* resident growth (Kb) */ 74 count_t vdata; /* virtmem data (Kb) */ 75 count_t vstack; /* virtmem stack (Kb) */ 76 count_t vlibs; /* virtmem libexec (Kb) */ 77 count_t vswap; /* swap space used (Kb) */ 78 count_t cfuture[4]; /* reserved for future use */ 79 } mem; 80 81 /* NETWORK STATISTICS */ 82 struct net_25 { 83 count_t tcpsnd; /* number of TCP-packets sent */ 84 count_t tcpssz; /* cumulative size packets sent */ 85 count_t tcprcv; /* number of TCP-packets recved */ 86 count_t tcprsz; /* cumulative size packets rcvd */ 87 count_t udpsnd; /* number of UDP-packets sent */ 88 count_t udpssz; /* cumulative size packets sent */ 89 count_t udprcv; /* number of UDP-packets recved */ 90 count_t udprsz; /* cumulative size packets sent */ 91 count_t avail1; /* */ 92 count_t avail2; /* */ 93 count_t cfuture[4]; /* reserved for future use */ 94 } net; 95 96 struct gpu_25 { 97 char state; // A - active, E - Exit, '\0' - no use 98 char cfuture[3]; // 99 short nrgpus; // number of GPUs for this process 100 int32_t gpulist; // bitlist with GPU numbers 101 102 int gpubusy; // gpu busy perc process lifetime -1 = n/a 103 int membusy; // memory busy perc process lifetime -1 = n/a 104 count_t timems; // milliseconds accounting -1 = n/a 105 // value 0 for active process, 106 // value > 0 after termination 107 108 count_t memnow; // current memory consumption in KiB 109 count_t memcum; // cumulative memory consumption in KiB 110 count_t sample; // number of samples 111 } gpu; 112 };