ps: Add OOM and OOMADJ fields
top has had the OOMs and OOMa fields since 2011. Ten years its
probably time that ps had these fields added too.
ps output options have oom and oomadj for OOM Score and OOM Adjustment
respectively.
References:
procps-ng/procps#198
commit 367fd902da
https://www.freelists.org/post/procps/PATCH-12-Add-missed-oom-support-to-libproc
This commit is contained in:
parent
add01998e4
commit
9ddbc82000
1
NEWS
1
NEWS
@ -2,6 +2,7 @@ procps-ng-NEXT
|
||||
---------------
|
||||
* Rename pwait to pidwait
|
||||
* library: renamed to libproc-2 and reset to 0:0:0
|
||||
* ps: Add OOM and OOMADJ fields issue #198
|
||||
|
||||
procps-ng-3.3.17
|
||||
---------------
|
||||
|
@ -116,6 +116,8 @@ makEXT(NS_NET)
|
||||
makEXT(NS_PID)
|
||||
makEXT(NS_USER)
|
||||
makEXT(NS_UTS)
|
||||
makEXT(OOM_ADJ)
|
||||
makEXT(OOM_SCORE)
|
||||
makEXT(PRIORITY)
|
||||
makEXT(PRIORITY_RT)
|
||||
makEXT(PROCESSOR)
|
||||
|
@ -103,6 +103,8 @@ makREL(NS_NET)
|
||||
makREL(NS_PID)
|
||||
makREL(NS_USER)
|
||||
makREL(NS_UTS)
|
||||
makREL(OOM_ADJ)
|
||||
makREL(OOM_SCORE)
|
||||
makREL(PRIORITY)
|
||||
makREL(PRIORITY_RT)
|
||||
makREL(PROCESSOR)
|
||||
|
11
ps/output.c
11
ps/output.c
@ -704,6 +704,15 @@ setREL2(NICE,SCHED_CLASS)
|
||||
return snprintf(outbuf, COLWID, "%d", rSv(NICE, s_int, pp));
|
||||
}
|
||||
|
||||
static int pr_oom_adj(char *restrict const outbuf, const proc_t *restrict const pp){
|
||||
setREL1(OOM_ADJ)
|
||||
return snprintf(outbuf, COLWID, "%d", rSv(OOM_ADJ, s_int, pp));
|
||||
}
|
||||
|
||||
static int pr_oom(char *restrict const outbuf, const proc_t *restrict const pp){
|
||||
setREL1(OOM_SCORE)
|
||||
return snprintf(outbuf, COLWID, "%d", rSv(OOM_SCORE, s_int, pp));
|
||||
}
|
||||
// HP-UX "cls": RT RR RR2 ???? HPUX FIFO KERN
|
||||
// Solaris "class": SYS TS FX IA RT FSS (FIFO is RR w/ Inf quant)
|
||||
// FIFO+RR share RT; FIFO has Inf quant
|
||||
@ -1634,6 +1643,8 @@ static const format_struct format_array[] = { /*
|
||||
{"numa", "NUMA", pr_numa, PIDS_PROCESSOR_NODE, 4, XXX, AN|RIGHT},
|
||||
{"nvcsw", "VCSW", pr_nop, PIDS_noop, 5, XXX, AN|RIGHT},
|
||||
{"nwchan", "WCHAN", pr_nop, PIDS_noop, 6, XXX, TO|RIGHT},
|
||||
{"oom", "OOM", pr_oom, PIDS_OOM_SCORE, 4, XXX, TO|RIGHT},
|
||||
{"oomadj", "OOMADJ", pr_oom_adj, PIDS_OOM_ADJ, 5, XXX, TO|RIGHT},
|
||||
{"opri", "PRI", pr_opri, PIDS_PRIORITY, 3, SUN, TO|RIGHT},
|
||||
{"osz", "SZ", pr_nop, PIDS_noop, 2, SUN, PO|RIGHT},
|
||||
{"oublk", "OUBLK", pr_nop, PIDS_noop, 5, BSD, AN|RIGHT}, /*oublock*/
|
||||
|
13
ps/ps.1
13
ps/ps.1
@ -4,7 +4,7 @@
|
||||
.\" Quick hack conversion by Albert Cahalan, 1998.
|
||||
.\" Licensed under version 2 of the Gnu General Public License.
|
||||
.\"
|
||||
.TH PS "1" "2020-06-04" "procps-ng" "User Commands"
|
||||
.TH PS "1" "2021-03-05" "procps-ng" "User Commands"
|
||||
.\"
|
||||
.\" To render this page:
|
||||
.\" groff -t -b -man -X -P-resolution -P100 -Tps ps.1 &
|
||||
@ -1421,6 +1421,17 @@ address of the kernel function where the process is sleeping (use
|
||||
if you want the kernel function name).
|
||||
T}
|
||||
|
||||
oom OOM T{
|
||||
Out of Memory Score. The value, ranging from 0 to +1000, used to select
|
||||
task(s) to kill when memory is exhausted.
|
||||
T}
|
||||
|
||||
oomadj OOMADJ T{
|
||||
Out of Memory Adjustment Factor. The value is added to the current out of
|
||||
memory score which is then used to determine which task to kill when memory
|
||||
is exhausted.
|
||||
T}
|
||||
|
||||
ouid OWNER T{
|
||||
displays the Unix user identifier of the owner of the session of a process,
|
||||
if systemd support has been included.
|
||||
|
Loading…
Reference in New Issue
Block a user