all 2.5.xx RT info except HP-UX "cls"
This commit is contained in:
parent
533fced263
commit
bc9cdacdcc
@ -162,6 +162,8 @@ static void stat2proc(char* S, proc_t* P) {
|
|||||||
/* fill in default values for older kernels */
|
/* fill in default values for older kernels */
|
||||||
P->exit_signal = SIGCHLD;
|
P->exit_signal = SIGCHLD;
|
||||||
P->processor = 0;
|
P->processor = 0;
|
||||||
|
P->rtprio = -1;
|
||||||
|
P->sched = -1;
|
||||||
/* parse these two strings separately, skipping the leading "(". */
|
/* parse these two strings separately, skipping the leading "(". */
|
||||||
memset(P->cmd, 0, sizeof P->cmd); /* clear even though *P xcalloc'd ?! */
|
memset(P->cmd, 0, sizeof P->cmd); /* clear even though *P xcalloc'd ?! */
|
||||||
sscanf(S, "%d (%15c", &P->pid, P->cmd); /* comm[16] in kernel */
|
sscanf(S, "%d (%15c", &P->pid, P->cmd); /* comm[16] in kernel */
|
||||||
@ -177,7 +179,8 @@ static void stat2proc(char* S, proc_t* P) {
|
|||||||
"%lu %lu %lu %lu %lu %lu "
|
"%lu %lu %lu %lu %lu %lu "
|
||||||
"%*s %*s %*s %*s " /* discard, no RT signals & Linux 2.1 used hex */
|
"%*s %*s %*s %*s " /* discard, no RT signals & Linux 2.1 used hex */
|
||||||
"%lu %lu %lu "
|
"%lu %lu %lu "
|
||||||
"%d %d",
|
"%d %d "
|
||||||
|
"%lu %lu",
|
||||||
&P->state,
|
&P->state,
|
||||||
&P->ppid, &P->pgrp, &P->session, &P->tty, &P->tpgid,
|
&P->ppid, &P->pgrp, &P->session, &P->tty, &P->tpgid,
|
||||||
&P->flags, &P->min_flt, &P->cmin_flt, &P->maj_flt, &P->cmaj_flt,
|
&P->flags, &P->min_flt, &P->cmin_flt, &P->maj_flt, &P->cmaj_flt,
|
||||||
@ -190,8 +193,9 @@ static void stat2proc(char* S, proc_t* P) {
|
|||||||
/* P->signal, P->blocked, P->sigignore, P->sigcatch, */ /* can't use */
|
/* P->signal, P->blocked, P->sigignore, P->sigcatch, */ /* can't use */
|
||||||
&P->wchan, &P->nswap, &P->cnswap,
|
&P->wchan, &P->nswap, &P->cnswap,
|
||||||
/* -- Linux 2.0.35 ends here -- */
|
/* -- Linux 2.0.35 ends here -- */
|
||||||
&P->exit_signal, &P->processor /* 2.2.1 ends with "exit_signal" */
|
&P->exit_signal, &P->processor, /* 2.2.1 ends with "exit_signal" */
|
||||||
/* -- Linux 2.2.8 and 2.3.47 end here -- */
|
/* -- Linux 2.2.8 to 2.5.17 end here -- */
|
||||||
|
&P->rtprio, &P->sched /* both added to 2.5.18 */
|
||||||
);
|
);
|
||||||
|
|
||||||
/* fprintf(stderr, "stat2proc converted %d fields.\n",num); */
|
/* fprintf(stderr, "stat2proc converted %d fields.\n",num); */
|
||||||
|
@ -76,6 +76,8 @@ typedef struct proc_t {
|
|||||||
vm_stack, /* stack size */
|
vm_stack, /* stack size */
|
||||||
vm_exe, /* executable size */
|
vm_exe, /* executable size */
|
||||||
vm_lib, /* library size (all pages, not just used ones) */
|
vm_lib, /* library size (all pages, not just used ones) */
|
||||||
|
rtprio, /* real-time priority */
|
||||||
|
sched, /* scheduling class */
|
||||||
vsize, /* number of pages of virtual memory ... */
|
vsize, /* number of pages of virtual memory ... */
|
||||||
rss_rlim, /* resident set size limit? */
|
rss_rlim, /* resident set size limit? */
|
||||||
flags, /* kernel flags for the process */
|
flags, /* kernel flags for the process */
|
||||||
|
33
ps/output.c
33
ps/output.c
@ -127,6 +127,8 @@ static int sr_ ## NAME (const proc_t* P, const proc_t* Q) { \
|
|||||||
return 0; \
|
return 0; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CMP_INT(rtprio)
|
||||||
|
CMP_INT(sched)
|
||||||
CMP_INT(cutime)
|
CMP_INT(cutime)
|
||||||
CMP_INT(cstime)
|
CMP_INT(cstime)
|
||||||
CMP_INT(priority) /* nice */
|
CMP_INT(priority) /* nice */
|
||||||
@ -729,6 +731,11 @@ static int pr_swapable(void) {
|
|||||||
return snprintf(outbuf, COLWID, "%ld", pp->vm_data + pp->vm_stack);
|
return snprintf(outbuf, COLWID, "%ld", pp->vm_data + pp->vm_stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* nasty old Debian thing */
|
||||||
|
static int pr_size(void) {
|
||||||
|
return snprintf(outbuf, COLWID, "%ld", pp->size);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int pr_minflt(void){
|
static int pr_minflt(void){
|
||||||
long flt = pp->min_flt;
|
long flt = pp->min_flt;
|
||||||
@ -780,6 +787,24 @@ static int pr_pmem(void){
|
|||||||
return snprintf(outbuf, COLWID, "%2u.%u", (unsigned)(pmem/10), (unsigned)(pmem%10));
|
return snprintf(outbuf, COLWID, "%2u.%u", (unsigned)(pmem/10), (unsigned)(pmem%10));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int pr_class(void){
|
||||||
|
switch(pp->sched){
|
||||||
|
case -1: return snprintf(outbuf, COLWID, "-"); /* not reported */
|
||||||
|
case 0: return snprintf(outbuf, COLWID, "TS"); /* SCHED_OTHER */
|
||||||
|
case 1: return snprintf(outbuf, COLWID, "FF"); /* SCHED_FIFO */
|
||||||
|
case 2: return snprintf(outbuf, COLWID, "RR"); /* SCHED_RR */
|
||||||
|
default: return snprintf(outbuf, COLWID, "?"); /* unknown value */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static int pr_rtprio(void){
|
||||||
|
if(pp->sched==0 || pp->sched==-1) return snprintf(outbuf, COLWID, "-");
|
||||||
|
return snprintf(outbuf, COLWID, "%ld", pp->rtprio);
|
||||||
|
}
|
||||||
|
static int pr_sched(void){
|
||||||
|
if(pp->sched==-1) return snprintf(outbuf, COLWID, "-");
|
||||||
|
return snprintf(outbuf, COLWID, "%ld", pp->sched);
|
||||||
|
}
|
||||||
|
|
||||||
static int pr_lstart(void){
|
static int pr_lstart(void){
|
||||||
time_t t;
|
time_t t;
|
||||||
t = time_of_boot + pp->start_time / Hertz;
|
t = time_of_boot + pp->start_time / Hertz;
|
||||||
@ -1132,7 +1157,7 @@ static const format_struct format_array[] = {
|
|||||||
{"bsdtime", "TIME", pr_bsdtime, sr_nop, 6, 0, LNX, RIGHT},
|
{"bsdtime", "TIME", pr_bsdtime, sr_nop, 6, 0, LNX, RIGHT},
|
||||||
{"c", "C", pr_c, sr_pcpu, 2, 0, SUN, RIGHT},
|
{"c", "C", pr_c, sr_pcpu, 2, 0, SUN, RIGHT},
|
||||||
{"caught", "CAUGHT", pr_sigcatch, sr_nop, 9, 0, BSD, SIGNAL}, /*sigcatch*/
|
{"caught", "CAUGHT", pr_sigcatch, sr_nop, 9, 0, BSD, SIGNAL}, /*sigcatch*/
|
||||||
{"class", "CLS", pr_nop, sr_nop, 5, 0, XXX, RIGHT},
|
{"class", "CLS", pr_class, sr_sched, 3, 0, XXX, LEFT},
|
||||||
{"cls", "-", pr_nop, sr_nop, 1, 0, HPU, RIGHT},
|
{"cls", "-", pr_nop, sr_nop, 1, 0, HPU, RIGHT},
|
||||||
{"cmaj_flt", "-", pr_nop, sr_cmaj_flt, 1, 0, LNX, RIGHT},
|
{"cmaj_flt", "-", pr_nop, sr_cmaj_flt, 1, 0, LNX, RIGHT},
|
||||||
{"cmd", "CMD", pr_args, sr_cmd, 16, 0, DEC, UNLIMITED}, /*ucomm*/
|
{"cmd", "CMD", pr_args, sr_cmd, 16, 0, DEC, UNLIMITED}, /*ucomm*/
|
||||||
@ -1226,7 +1251,7 @@ static const format_struct format_array[] = {
|
|||||||
{"pid", "PID", pr_pid, sr_pid, 5, 0, U98, RIGHT},
|
{"pid", "PID", pr_pid, sr_pid, 5, 0, U98, RIGHT},
|
||||||
{"pmem", "%MEM", pr_pmem, sr_nop, 4, 0, XXX, RIGHT}, /*%mem*/
|
{"pmem", "%MEM", pr_pmem, sr_nop, 4, 0, XXX, RIGHT}, /*%mem*/
|
||||||
{"poip", "-", pr_nop, sr_nop, 1, 0, BSD, RIGHT},
|
{"poip", "-", pr_nop, sr_nop, 1, 0, BSD, RIGHT},
|
||||||
{"policy", "POL", pr_nop, sr_nop, 3, 0, DEC, RIGHT},
|
{"policy", "POL", pr_class, sr_sched, 3, 0, DEC, LEFT},
|
||||||
{"ppid", "PPID", pr_ppid, sr_ppid, 5, 0, U98, RIGHT},
|
{"ppid", "PPID", pr_ppid, sr_ppid, 5, 0, U98, RIGHT},
|
||||||
{"pri", "PRI", pr_pri, sr_nop, 3, 0, XXX, RIGHT},
|
{"pri", "PRI", pr_pri, sr_nop, 3, 0, XXX, RIGHT},
|
||||||
{"priority", "PRI", pr_priority, sr_priority, 3, 0, LNX, RIGHT}, /*ni,nice*/ /* from Linux sorting names */
|
{"priority", "PRI", pr_priority, sr_priority, 3, 0, LNX, RIGHT}, /*ni,nice*/ /* from Linux sorting names */
|
||||||
@ -1243,11 +1268,11 @@ static const format_struct format_array[] = {
|
|||||||
{"rss", "RSS", pr_rss, sr_rss, 4, 0, XXX, RIGHT}, /* was 5 wide */
|
{"rss", "RSS", pr_rss, sr_rss, 4, 0, XXX, RIGHT}, /* was 5 wide */
|
||||||
{"rssize", "RSS", pr_rss, sr_vm_rss, 4, 0, DEC, RIGHT}, /*rsz*/
|
{"rssize", "RSS", pr_rss, sr_vm_rss, 4, 0, DEC, RIGHT}, /*rsz*/
|
||||||
{"rsz", "RSZ", pr_rss, sr_vm_rss, 4, 0, BSD, RIGHT}, /*rssize*/
|
{"rsz", "RSZ", pr_rss, sr_vm_rss, 4, 0, BSD, RIGHT}, /*rssize*/
|
||||||
{"rtprio", "RTPRIO", pr_nop, sr_nop, 7, 0, BSD, RIGHT},
|
{"rtprio", "RTPRIO", pr_rtprio, sr_rtprio, 6, 0, BSD, RIGHT},
|
||||||
{"ruid", "RUID", pr_ruid, sr_ruid, 5, 0, XXX, RIGHT},
|
{"ruid", "RUID", pr_ruid, sr_ruid, 5, 0, XXX, RIGHT},
|
||||||
{"ruser", "RUSER", pr_ruser, sr_ruser, 8, USR, U98, USER},
|
{"ruser", "RUSER", pr_ruser, sr_ruser, 8, USR, U98, USER},
|
||||||
{"s", "S", pr_s, sr_state, 1, 0, SUN, LEFT}, /*stat,state*/
|
{"s", "S", pr_s, sr_state, 1, 0, SUN, LEFT}, /*stat,state*/
|
||||||
{"sched", "SCH", pr_nop, sr_nop, 1, 0, AIX, RIGHT},
|
{"sched", "SCH", pr_sched, sr_sched, 3, 0, AIX, RIGHT},
|
||||||
{"scnt", "SCNT", pr_nop, sr_nop, 4, 0, DEC, RIGHT}, /* man page misspelling of scount? */
|
{"scnt", "SCNT", pr_nop, sr_nop, 4, 0, DEC, RIGHT}, /* man page misspelling of scount? */
|
||||||
{"scount", "SC", pr_nop, sr_nop, 4, 0, AIX, RIGHT}, /* scnt==scount, DEC claims both */
|
{"scount", "SC", pr_nop, sr_nop, 4, 0, AIX, RIGHT}, /* scnt==scount, DEC claims both */
|
||||||
{"secsid", "SID", pr_secsid, sr_secsid, 6, 0, LNX, RIGHT}, /* Flask Linux */
|
{"secsid", "SID", pr_secsid, sr_secsid, 6, 0, LNX, RIGHT}, /* Flask Linux */
|
||||||
|
Loading…
Reference in New Issue
Block a user