diff --git a/ps/common.h b/ps/common.h index 197f9c21..62b96c55 100644 --- a/ps/common.h +++ b/ps/common.h @@ -113,6 +113,7 @@ makEXT(NS_USER) makEXT(NS_UTS) makEXT(PRIORITY) makEXT(PROCESSOR) +makEXT(PROCESSOR_NODE) makEXT(RSS) makEXT(RSS_RLIM) makEXT(RTPRIO) diff --git a/ps/global.c b/ps/global.c index adffd35f..46a85c85 100644 --- a/ps/global.c +++ b/ps/global.c @@ -103,6 +103,7 @@ makREL(NS_USER) makREL(NS_UTS) makREL(PRIORITY) makREL(PROCESSOR) +makREL(PROCESSOR_NODE) makREL(RSS) makREL(RSS_RLIM) makREL(RTPRIO) diff --git a/ps/output.c b/ps/output.c index 304beebf..948dfd61 100644 --- a/ps/output.c +++ b/ps/output.c @@ -853,6 +853,11 @@ setREL1(PROCESSOR) return snprintf(outbuf, COLWID, "%d", rSv(PROCESSOR, u_int, pp)); } +static int pr_numa(char *restrict const outbuf, const proc_t *restrict const pp){ +setREL1(PROCESSOR_NODE) + return snprintf(outbuf, COLWID, "%d", rSv(PROCESSOR_NODE, s_int, pp)); +} + static int pr_rss(char *restrict const outbuf, const proc_t *restrict const pp){ setREL1(VM_RSS) return snprintf(outbuf, COLWID, "%lu", rSv(VM_RSS, ul_int, pp)); @@ -1449,6 +1454,7 @@ static const format_struct format_array[] = { /* {"nsignals", "NSIGS", pr_nop, PIDS_noop, 5, DEC, AN|RIGHT}, /*nsigs*/ {"nsigs", "NSIGS", pr_nop, PIDS_noop, 5, BSD, AN|RIGHT}, /*nsignals*/ {"nswap", "NSWAP", pr_nop, PIDS_noop, 5, XXX, AN|RIGHT}, +{"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}, {"opri", "PRI", pr_opri, PIDS_PRIORITY, 3, SUN, TO|RIGHT}, diff --git a/ps/ps.1 b/ps/ps.1 index f2fb7f08..241f2575 100644 --- a/ps/ps.1 +++ b/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 "August 2015" "procps-ng" "User Commands" +.TH PS 1 "May 2017" "procps-ng" "User Commands" .\" .\" To render this page: .\" groff -t -b -man -X -P-resolution -P100 -Tps ps.1 & @@ -1379,6 +1379,11 @@ number of lwps (threads) in the process. (alias .BR thcount ). T} +numa NUMA T{ +The node assocated with the most recently used processor. +A -1 means that NUMA information is unavailable. +T} + nwchan WCHAN T{ address of the kernel function where the process is sleeping (use .B wchan