This makes the "ps -g xxx" give us more information.
It is very useful when the "xxx" has many threads,
and the threads are in different NUMA nodes.
Also update the "help ps" output message.
Signed-off-by: Huang Shijie <huangsj(a)hygon.cn>
---
help.c | 381 ++++++++++++++++++++++++++++-----------------------------
task.c | 12 +-
2 files changed, 190 insertions(+), 203 deletions(-)
diff --git a/help.c b/help.c
index 79bfa5b..05ce6f4 100644
--- a/help.c
+++ b/help.c
@@ -1477,111 +1477,95 @@ char *help_ps[] = {
"\nEXAMPLES",
" Show the process status of all current tasks:\n",
" %s> ps",
-" PID PPID CPU TASK ST %MEM VSZ RSS COMM",
-" > 0 0 3 c024c000 RU 0.0 0 0 [swapper]",
-" > 0 0 0 c0dce000 RU 0.0 0 0 [swapper]",
-" 0 0 1 c0fa8000 RU 0.0 0 0 [swapper]",
-" > 0 0 2 c009a000 RU 0.0 0 0 [swapper]",
-" 1 0 1 c0098000 IN 0.0 1096 476 init",
-" 2 1 1 c0090000 IN 0.0 0 0 [kflushd]",
-" 3 1 1 c000e000 IN 0.0 0 0 [kpiod]",
-" 4 1 3 c000c000 IN 0.0 0 0 [kswapd]",
-" 5 1 1 c0008000 IN 0.0 0 0 [mdrecoveryd]",
-" 253 1 2 fbc4c000 IN 0.0 1088 376 portmap",
-" 268 1 2 fbc82000 IN 0.1 1232 504 ypbind",
-" 274 268 2 fa984000 IN 0.1 1260 556 ypbind",
-" 321 1 1 fabf6000 IN 0.1 1264 608 syslogd",
-" 332 1 1 fa9be000 RU 0.1 1364 736 klogd",
-" 346 1 2 fae88000 IN 0.0 1112 472 atd",
-" 360 1 2 faeb2000 IN 0.1 1284 592 crond",
-" 378 1 2 fafd6000 IN 0.1 1236 560 inetd",
-" 392 1 0 fb710000 IN 0.1 2264 1468 named",
-" 406 1 3 fb768000 IN 0.1 1284 560 lpd",
-" 423 1 1 fb8ac000 IN 0.1 1128 528 rpc.statd",
-" 434 1 2 fb75a000 IN 0.0 1072 376 rpc.rquotad",
-" 445 1 2 fb4a4000 IN 0.0 1132 456 rpc.mountd",
-" 460 1 1 fa938000 IN 0.0 0 0 [nfsd]",
-" 461 1 1 faa86000 IN 0.0 0 0 [nfsd]",
-" 462 1 0 fac48000 IN 0.0 0 0 [nfsd]",
-" 463 1 0 fb4ca000 IN 0.0 0 0 [nfsd]",
-" 464 1 0 fb4c8000 IN 0.0 0 0 [nfsd]",
-" 465 1 2 fba6e000 IN 0.0 0 0 [nfsd]",
-" 466 1 1 fba6c000 IN 0.0 0 0 [nfsd]",
-" 467 1 2 fac04000 IN 0.0 0 0 [nfsd]",
-" 468 461 2 fa93a000 IN 0.0 0 0 [lockd]",
-" 469 468 2 fa93e000 IN 0.0 0 0 [rpciod]",
-" 486 1 0 fab54000 IN 0.1 1596 880 amd",
-" 523 1 2 fa84e000 IN 0.1 1884 1128 sendmail",
-" 538 1 0 fa82c000 IN 0.0 1112 416 gpm",
-" 552 1 3 fa70a000 IN 0.1 2384 1220 httpd",
-" 556 552 3 fa776000 IN 0.1 2572 1352 httpd",
-" 557 552 2 faba4000 IN 0.1 2572 1352 httpd",
-" 558 552 1 fa802000 IN 0.1 2572 1352 httpd",
-" 559 552 3 fa6ee000 IN 0.1 2572 1352 httpd",
-" 560 552 3 fa700000 IN 0.1 2572 1352 httpd",
-" 561 552 0 fa6f0000 IN 0.1 2572 1352 httpd",
-" 562 552 3 fa6ea000 IN 0.1 2572 1352 httpd",
-" 563 552 0 fa67c000 IN 0.1 2572 1352 httpd",
-" 564 552 3 fa674000 IN 0.1 2572 1352 httpd",
-" 565 552 3 fa66a000 IN 0.1 2572 1352 httpd",
-" 582 1 2 fa402000 IN 0.2 2968 1916 xfs",
-" 633 1 2 fa1ec000 IN 0.2 5512 2248 innd",
-" 636 1 3 fa088000 IN 0.1 2536 804 actived",
-" 676 1 0 fa840000 IN 0.0 1060 384 mingetty",
-" 677 1 1 fa590000 IN 0.0 1060 384 mingetty",
-" 678 1 2 fa3b8000 IN 0.0 1060 384 mingetty",
-" 679 1 0 fa5b8000 IN 0.0 1060 384 mingetty",
-" 680 1 1 fa3a4000 IN 0.0 1060 384 mingetty",
-" 681 1 2 fa30a000 IN 0.0 1060 384 mingetty",
-" 683 1 3 fa5d8000 IN 0.0 1052 280 update",
-" 686 378 1 fa3aa000 IN 0.1 2320 1136 in.rlogind",
-" 687 686 2 f9e52000 IN 0.1 2136 1000 login",
-" 688 687 0 f9dec000 IN 0.1 1732 976 bash",
-" > 700 688 1 f9d62000 RU 0.0 1048 256 gen12",
+" PID PPID CPU/NUMA TASK ST %MEM VSZ RSS
COMM",
+"> 0 0 0/0 ffffffff9f018840 RU 0.0 0 0
[swapper/0]",
+"> 0 0 1/0 ffff9b8e83728000 RU 0.0 0 0
[swapper/1]",
+"> 0 0 2/0 ffff9b8e83750000 RU 0.0 0 0
[swapper/2]",
+"> 0 0 3/0 ffff9b8e83755000 RU 0.0 0 0
[swapper/3]",
+"> 0 0 4/0 ffff9b8e83752800 RU 0.0 0 0
[swapper/4]",
+"> 0 0 5/0 ffff9b8e83762800 RU 0.0 0 0
[swapper/5]",
+"> 0 0 6/0 ffff9b8e83760000 RU 0.0 0 0
[swapper/6]",
+"> 0 0 7/0 ffff9b8e83765000 RU 0.0 0 0
[swapper/7]",
+"> 0 0 8/0 ffff9b8e83778000 RU 0.0 0 0
[swapper/8]",
+"> 0 0 9/0 ffff9b8e8377d000 RU 0.0 0 0
[swapper/9]",
+" 0 0 10/0 ffff9b8e8377a800 RU 0.0 0 0
[swapper/10]",
+"> 0 0 11/0 ffff9b8e83790000 RU 0.0 0 0
[swapper/11]",
+"> 0 0 12/0 ffff9b8e83795000 RU 0.0 0 0
[swapper/12]",
+"> 0 0 13/0 ffff9b8e83792800 RU 0.0 0 0
[swapper/13]",
+"> 0 0 14/0 ffff9b8e837aa800 RU 0.0 0 0
[swapper/14]",
+"> 0 0 15/0 ffff9b8e837a8000 RU 0.0 0 0
[swapper/15]",
+"> 0 0 16/1 ffff9bbdf315a800 RU 0.0 0 0
[swapper/16]",
+"> 0 0 17/1 ffff9bbdf3158000 RU 0.0 0 0
[swapper/17]",
+"> 0 0 18/1 ffff9bbdf315d000 RU 0.0 0 0
[swapper/18]",
+"> 0 0 19/1 ffff9bbdf3178000 RU 0.0 0 0
[swapper/19]",
+"> 0 0 20/1 ffff9bbdf317d000 RU 0.0 0 0
[swapper/20]",
+"> 0 0 21/1 ffff9bbdf317a800 RU 0.0 0 0
[swapper/21]",
+"> 0 0 22/1 ffff9bbdf318d000 RU 0.0 0 0
[swapper/22]",
+"> 0 0 23/1 ffff9bbdf318a800 RU 0.0 0 0
[swapper/23]",
+"> 0 0 24/1 ffff9bbdf3188000 RU 0.0 0 0
[swapper/24]",
+"> 0 0 25/1 ffff9bbdf319d000 RU 0.0 0 0
[swapper/25]",
+"> 0 0 26/1 ffff9bbdf319a800 RU 0.0 0 0
[swapper/26]",
+"> 0 0 27/1 ffff9bbdf3198000 RU 0.0 0 0
[swapper/27]",
+"> 0 0 28/1 ffff9bbdf31b0000 RU 0.0 0 0
[swapper/28]",
+"> 0 0 29/1 ffff9bbdf31b5000 RU 0.0 0 0
[swapper/29]",
+"> 0 0 30/1 ffff9bbdf31b2800 RU 0.0 0 0
[swapper/30]",
+"> 0 0 31/1 ffff9bbdf31c8000 RU 0.0 0 0
[swapper/31]",
+"> 0 0 32/2 ffff9bedd3162800 RU 0.0 0 0
[swapper/32]",
+"> 0 0 33/2 ffff9bedd3160000 RU 0.0 0 0
[swapper/33]",
+"> 0 0 34/2 ffff9bedd3165000 RU 0.0 0 0
[swapper/34]",
+"> 0 0 35/2 ffff9bedd3178000 RU 0.0 0 0
[swapper/35]",
+" 356841 356742 138/0 ffff9b9205bb8000 IN 0.0 64480 5576
dbus-daemon",
+" 356855 2 138/0 ffff9b8e83a28000 ID 0.0 0 0
[kworker/138:2]",
+" 356878 1 135/0 ffff9b8eb8412800 IN 0.0 835448 179824
packagekitd",
+" 356879 1 13/0 ffff9b8e8ae3a800 IN 0.0 835448 179824
gmain",
+" 356880 1 4/0 ffff9b8eb8410000 IN 0.0 835448 179824
gdbus",
+" 356899 1 7/0 ffff9b8f66390000 IN 0.0 168316 2472
gpg-agent",
+" 356950 2 7/0 ffff9b8e8435a800 ID 0.0 0 0
[kworker/7:0]",
+" 356991 4002 137/0 ffff9b8f68905000 IN 0.0 217156 1724
sleep",
+" 357038 3978 10/0 ffff9cadea01a800 IN 0.0 136900 9984
sshd",
+" 357042 357038 9/0 ffff9b8e8481d000 IN 0.0 136900 5904
sshd",
+" 357043 357042 128/0 ffff9b8e8481a800 IN 0.0 222880 3988
bash",
+" 357078 357043 11/0 ffff9b8e839e0000 IN 0.0 348356 9228
sudo",
+"> 357080 357078 10/0 ffff9b919abf5000 RU 0.0 217352 2152
tee",
" ",
" Display the parental hierarchy of the \"%s\" process on a live
system:\n",
-" %s> ps -p 4249",
-" PID: 0 TASK: c0252000 CPU: 0 COMMAND: \"swapper\"",
-" PID: 1 TASK: c009a000 CPU: 1 COMMAND: \"init\"",
-" PID: 632 TASK: c73b6000 CPU: 1 COMMAND: \"prefdm\"",
-" PID: 637 TASK: c5a4a000 CPU: 1 COMMAND: \"prefdm\"",
-" PID: 649 TASK: c179a000 CPU: 0 COMMAND: \"kwm\"",
-" PID: 683 TASK: c1164000 CPU: 0 COMMAND: \"kfm\"",
-" PID: 1186 TASK: c165a000 CPU: 0 COMMAND: \"xterm\"",
-" PID: 1188 TASK: c705e000 CPU: 1 COMMAND: \"bash\"",
-" PID: 4249 TASK: c6b9a000 CPU: 0 COMMAND:
\"crash\"",
-" ",
-" Display all children of the \"kwm\" window manager:\n",
-" %s> ps -c kwm",
-" PID: 649 TASK: c179a000 CPU: 0 COMMAND: \"kwm\"",
-" PID: 682 TASK: c2d58000 CPU: 1 COMMAND: \"kwmsound\"",
-" PID: 683 TASK: c1164000 CPU: 1 COMMAND: \"kfm\"",
-" PID: 685 TASK: c053c000 CPU: 0 COMMAND: \"krootwm\"",
-" PID: 686 TASK: c13fa000 CPU: 0 COMMAND: \"kpanel\"",
-" PID: 687 TASK: c13f0000 CPU: 1 COMMAND: \"kbgndwm\"",
+" %s> ps -p 19737",
+" PID: 0 TASK: ffffffff98418840 CPU/NUMA: 0/0 COMMAND:
\"swapper/0\"",
+" PID: 1 TASK: ffff93f9036c5000 CPU/NUMA: 173/2 COMMAND:
\"systemd\"",
+" PID: 4098 TASK: ffff93f912b45000 CPU/NUMA: 98/6 COMMAND:
\"sshd\"",
+" PID: 19273 TASK: ffff945854182800 CPU/NUMA: 33/2 COMMAND:
\"sshd\"",
+" PID: 19277 TASK: ffff94585419d000 CPU/NUMA: 167/2 COMMAND:
\"sshd\"",
+" PID: 19278 TASK: ffff945854198000 CPU/NUMA: 166/2 COMMAND:
\"bash\"",
+" PID: 19735 TASK: ffff9458575dd000 CPU/NUMA: 160/2 COMMAND:
\"sudo\"",
+" PID: 19737 TASK: ffff94588cac8000 CPU/NUMA: 171/2 COMMAND:
\"crash\"",
+" ",
+" Display all children of the \"vim\" editor:\n",
+" %s> ps -c vim",
+" PID: 20334 TASK: ffff9458617aa800 CPU/NUMA: 32/2 COMMAND:
\"vim\"",
+" PID: 20335 TASK: ffff945856fa8000 CPU/NUMA: 163/2 COMMAND:
\"cscope\"",
" ",
" Display all threads in a firefox session:\n",
" %s> ps firefox",
-" PID PPID CPU TASK ST %MEM VSZ RSS COMM",
-" 21273 21256 6 ffff81003ec15080 IN 46.3 1138276 484364 firefox",
-" 21276 21256 6 ffff81003f49e7e0 IN 46.3 1138276 484364 firefox",
-" 21280 21256 0 ffff81003ec1d7e0 IN 46.3 1138276 484364 firefox",
-" 21286 21256 6 ffff81000b0d1820 IN 46.3 1138276 484364 firefox",
-" 21287 21256 2 ffff81000b0d10c0 IN 46.3 1138276 484364 firefox",
-" 26975 21256 5 ffff81003b5c1820 IN 46.3 1138276 484364 firefox",
-" 26976 21256 5 ffff810023232820 IN 46.3 1138276 484364 firefox",
-" 26977 21256 4 ffff810021a11820 IN 46.3 1138276 484364 firefox",
-" 26978 21256 5 ffff810003159040 IN 46.3 1138276 484364 firefox",
-" 26979 21256 5 ffff81003a058820 IN 46.3 1138276 484364 firefox",
+" PID PPID CPU/NUMA TASK ST %MEM VSZ RSS
COMM",
+" 21273 21256 6/0 ffff81003ec15080 IN 46.3 1138276 484364
firefox",
+" 21276 21256 6/0 ffff81003f49e7e0 IN 46.3 1138276 484364
firefox",
+" 21280 21256 0/0 ffff81003ec1d7e0 IN 46.3 1138276 484364
firefox",
+" 21286 21256 6/0 ffff81000b0d1820 IN 46.3 1138276 484364
firefox",
+" 21287 21256 2/0 ffff81000b0d10c0 IN 46.3 1138276 484364
firefox",
+" 26975 21256 5/0 ffff81003b5c1820 IN 46.3 1138276 484364
firefox",
+" 26976 21256 5/0 ffff810023232820 IN 46.3 1138276 484364
firefox",
+" 26977 21256 4/0 ffff810021a11820 IN 46.3 1138276 484364
firefox",
+" 26978 21256 5/0 ffff810003159040 IN 46.3 1138276 484364
firefox",
+" 26979 21256 5/0 ffff81003a058820 IN 46.3 1138276 484364
firefox",
" ",
" Display only the thread group leader in the firefox session:\n",
" %s> ps -G firefox",
-" PID PPID CPU TASK ST %MEM VSZ RSS COMM",
-" 21273 21256 0 ffff81003ec15080 IN 46.3 1138276 484364 firefox",
+" PID PPID CPU/NUMA TASK ST %MEM VSZ RSS
COMM",
+" 21273 21256 0/0 ffff81003ec15080 IN 46.3 1138276 484364
firefox",
" ",
" Show the time usage data for pid 10318:\n",
" %s> ps -t 10318",
-" PID: 10318 TASK: f7b85550 CPU: 5 COMMAND: \"bash\"",
+" PID: 10318 TASK: f7b85550 CPU/NUMA: 5/0 COMMAND:
\"bash\"",
" RUN TIME: 1 days, 01:35:32",
" START TIME: 5209",
" UTIME: 95",
@@ -1589,37 +1573,42 @@ char *help_ps[] = {
" ",
" Show the process status of PID 1, task f9dec000, and all nfsd tasks:\n",
" %s> ps 1 f9dec000 nfsd",
-" PID PPID CPU TASK ST %MEM VSZ RSS COMM",
-" 1 0 1 c0098000 IN 0.0 1096 476 init",
-" 688 687 0 f9dec000 IN 0.1 1732 976 bash",
-" 460 1 1 fa938000 IN 0.0 0 0 [nfsd]",
-" 461 1 1 faa86000 IN 0.0 0 0 [nfsd]",
-" 462 1 0 fac48000 IN 0.0 0 0 [nfsd]",
-" 463 1 0 fb4ca000 IN 0.0 0 0 [nfsd]",
-" 464 1 0 fb4c8000 IN 0.0 0 0 [nfsd]",
-" 465 1 2 fba6e000 IN 0.0 0 0 [nfsd]",
-" 466 1 1 fba6c000 IN 0.0 0 0 [nfsd]",
-" 467 1 2 fac04000 IN 0.0 0 0 [nfsd]",
+" PID PPID CPU/NUMA TASK ST %MEM VSZ RSS COMM",
+" 1 0 1/0 c0098000 IN 0.0 1096 476 init",
+" 688 687 0/0 f9dec000 IN 0.1 1732 976 bash",
+" 460 1 1/0 fa938000 IN 0.0 0 0 [nfsd]",
+" 461 1 1/0 faa86000 IN 0.0 0 0 [nfsd]",
+" 462 1 0/0 fac48000 IN 0.0 0 0 [nfsd]",
+" 463 1 0/0 fb4ca000 IN 0.0 0 0 [nfsd]",
+" 464 1 0/0 fb4c8000 IN 0.0 0 0 [nfsd]",
+" 465 1 2/0 fba6e000 IN 0.0 0 0 [nfsd]",
+" 466 1 1/0 fba6c000 IN 0.0 0 0 [nfsd]",
+" 467 1 2/0 fac04000 IN 0.0 0 0 [nfsd]",
" ",
" Show all kernel threads:\n",
" %s> ps -k",
-" PID PPID CPU TASK ST %MEM VSZ RSS COMM",
-" 0 0 1 c0fac000 RU 0.0 0 0 [swapper]",
-" 0 0 0 c0252000 RU 0.0 0 0 [swapper]",
-" 2 1 1 c0fa0000 IN 0.0 0 0 [kflushd]",
-" 3 1 1 c03de000 IN 0.0 0 0 [kpiod]",
-" 4 1 1 c03dc000 IN 0.0 0 0 [kswapd]",
-" 5 1 0 c0092000 IN 0.0 0 0 [mdrecoveryd]",
-" 336 1 0 c4a9a000 IN 0.0 0 0 [rpciod]",
-" 337 1 0 c4830000 IN 0.0 0 0 [lockd]",
-" 487 1 1 c4ba6000 IN 0.0 0 0 [nfsd]",
-" 488 1 0 c18c6000 IN 0.0 0 0 [nfsd]",
-" 489 1 0 c0cac000 IN 0.0 0 0 [nfsd]",
-" 490 1 0 c056a000 IN 0.0 0 0 [nfsd]",
-" 491 1 0 c0860000 IN 0.0 0 0 [nfsd]",
-" 492 1 1 c0254000 IN 0.0 0 0 [nfsd]",
-" 493 1 0 c0a86000 IN 0.0 0 0 [nfsd]",
-" 494 1 0 c0968000 IN 0.0 0 0 [nfsd]",
+" PID PPID CPU/NUMA TASK ST %MEM VSZ RSS
COMM",
+"> 0 0 0/0 ffffffff98418840 RU 0.0 0 0
[swapper/0]",
+"> 0 0 1/0 ffff93f903730000 RU 0.0 0 0
[swapper/1]",
+"> 0 0 2/0 ffff93f903750000 RU 0.0 0 0
[swapper/2]",
+"> 0 0 3/0 ffff93f903752800 RU 0.0 0 0
[swapper/3]",
+"> 0 0 4/0 ffff93f903755000 RU 0.0 0 0
[swapper/4]",
+"> 0 0 5/0 ffff93f903760000 RU 0.0 0 0
[swapper/5]",
+"> 0 0 6/0 ffff93f903762800 RU 0.0 0 0
[swapper/6]",
+"> 0 0 7/0 ffff93f903765000 RU 0.0 0 0
[swapper/7]",
+"> 0 0 8/0 ffff93f90377d000 RU 0.0 0 0
[swapper/8]",
+"> 0 0 9/0 ffff93f903778000 RU 0.0 0 0
[swapper/9]",
+"> 0 0 10/0 ffff93f90377a800 RU 0.0 0 0
[swapper/10]",
+" 258 2 40/2 ffff9458538d5000 IN 0.0 0 0
[ksoftirqd/40]",
+" 260 2 40/2 ffff9458538d2800 ID 0.0 0 0
[kworker/40:0H]",
+" 261 2 41/2 ffff945853905000 IN 0.0 0 0
[cpuhp/41]",
+" 262 2 41/2 ffff945853900000 IN 0.0 0 0
[watchdog/41]",
+" 263 2 41/2 ffff945853902800 IN 0.0 0 0
[migration/41]",
+" 264 2 41/2 ffff94585391d000 IN 0.0 0 0
[ksoftirqd/41]",
+" 266 2 41/2 ffff94585391a800 ID 0.0 0 0
[kworker/41:0H]",
+" 267 2 42/2 ffff94585394a800 IN 0.0 0 0
[cpuhp/42]",
+" 268 2 42/2 ffff94585394d000 IN 0.0 0 0
[watchdog/42]",
+" 269 2 42/2 ffff945853948000 IN 0.0 0 0
[migration/42]",
" ",
" Display a summary consisting of the number of tasks in a task state:\n",
" %s> ps -S",
@@ -1630,79 +1619,73 @@ char *help_ps[] = {
" ",
" Display only the active task, on each cpu:\n",
" %s> ps -A",
-" PID PPID CPU TASK ST %MEM VSZ RSS COMM",
-" > 10 2 1 ffff880212969710 IN 0.0 0 0
[migration/1]",
-" > 0 0 3 ffff884026d43520 RU 0.0 0 0
[swapper]",
-" > 6582 1 2 ffff880f49c52040 RU 0.0 42202472 33368
oracle",
-" > 9497 1 0 ffff880549ec2ab0 RU 0.0 42314692 138664
oracle",
+" PID PPID CPU/NUMA TASK ST %MEM VSZ RSS
COMM",
+"> 0 0 0/0 ffffffff98418840 RU 0.0 0 0
[swapper/0]",
+"> 0 0 1/0 ffff93f903730000 RU 0.0 0 0
[swapper/1]",
+"> 0 0 255/7 ffff9547b325d000 RU 0.0 0 0
[swapper/255]",
+"> 23410 23408 43/2 ffff9458ad41a800 RU 0.1 1433268 823684
crash",
" ",
" Show all tasks sorted by their task_struct's last_run, timestamp, or",
" sched_entity last_arrival timestamp value, whichever applies:\n",
" %s> ps -l",
-" [20811245123] [IN] PID: 37 TASK: f7153030 CPU: 2 COMMAND:
\"events/2\"",
-" [20811229959] [IN] PID: 1756 TASK: f2a5a570 CPU: 2 COMMAND:
\"ntpd\"",
-" [20800696644] [IN] PID: 1456 TASK: f2b1f030 CPU: 4 COMMAND:
\"irqbalance\"",
-" [20617047229] [IN] PID: 2324 TASK: f57f9570 CPU: 5 COMMAND:
\"flush-253:0\"",
-" [20617029209] [IN] PID: 49 TASK: f7167030 CPU: 4 COMMAND:
\"bdi-default\"",
-" [20438025365] [IN] PID: 345 TASK: f55c7ab0 CPU: 3 COMMAND:
\"mpt_poll_0\"",
-" [20103026046] [IN] PID: 728 TASK: f72ba570 CPU: 3 COMMAND:
\"edac-poller\"",
-" [20000189409] [IN] PID: 35 TASK: f7153ab0 CPU: 0 COMMAND:
\"events/0\"",
-" [20000179905] [IN] PID: 48 TASK: f7167570 CPU: 0 COMMAND:
\"sync_supers\"",
-" [19997120354] [IN] PID: 36 TASK: f7153570 CPU: 1 COMMAND:
\"events/1\"",
-" [19991059209] [IN] PID: 38 TASK: f715fab0 CPU: 3 COMMAND:
\"events/3\"",
-" [19988091608] [IN] PID: 39 TASK: f715f570 CPU: 4 COMMAND:
\"events/4\"",
-" [19985076530] [IN] PID: 40 TASK: f715f030 CPU: 5 COMMAND:
\"events/5\"",
-" [19982019106] [IN] PID: 41 TASK: f7161ab0 CPU: 6 COMMAND:
\"events/6\"",
-" [19982016294] [IN] PID: 29 TASK: f7109ab0 CPU: 6 COMMAND:
\"ksoftirqd/6\"",
-" [19838402345] [RU] PID: 2331 TASK: f297f570 CPU: 7 COMMAND:
\"bash\"",
-" [19837129436] [IN] PID: 2326 TASK: f2ad5030 CPU: 6 COMMAND:
\"sshd\"",
-" [19289476417] [IN] PID: 1772 TASK: f5665570 CPU: 5 COMMAND:
\"sendmail\"",
+" [85358194225683] [ID] PID: 2241 TASK: ffff93f907f7a800 CPU/NUMA: 0/0
COMMAND: \"kworker/0:2\"",
+" [85358237174471] [IN] PID: 4123 TASK: ffff945895b82800 CPU/NUMA: 170/2
COMMAND: \"tuned\"",
+" [85358235771968] [IN] PID: 4370 TASK: ffff94586a102800 CPU/NUMA: 163/2
COMMAND: \"tuned\"",
+" [85358007948958] [IN] PID: 4984 TASK: ffff94615b3ad000 CPU/NUMA: 38/2
COMMAND: \"in:imjournal\"",
+" [85357980225122] [ID] PID: 15 TASK: ffff93f903718000 CPU/NUMA: 179/3
COMMAND: \"rcu_sched\"",
+" [85357975777350] [ID] PID: 18926 TASK: ffff9458810f8000 CPU/NUMA: 47/2
COMMAND: \"kworker/47:0\"",
+" [85357975775720] [RU] PID: 23653 TASK: ffff94585453a800 CPU/NUMA: 175/2
COMMAND: \"crash\"",
+" [85357975772220] [IN] PID: 299 TASK: ffff945853ac5000 CPU/NUMA: 47/2
COMMAND: \"migration/47\"",
+" [85357969829645] [IN] PID: 19277 TASK: ffff94585419d000 CPU/NUMA: 166/2
COMMAND: \"sshd\"",
+" [85357969826125] [ID] PID: 22849 TASK: ffff945856f95000 CPU/NUMA: 37/2
COMMAND: \"kworker/u515:1\"",
+" [85357858230262] [ID] PID: 21721 TASK: ffff9547bb0ba800 CPU/NUMA: 241/7
COMMAND: \"kworker/241:0\"",
+" [85357666247625] [ID] PID: 21541 TASK: ffff9547bb0b8000 CPU/NUMA: 242/7
COMMAND: \"kworker/242:2\"",
" ...\n",
" Show the most-recently run tasks on cpu 0 using both the -l and the -m",
" options:\n",
" %s> ps -m -C0",
" CPU: 0",
-" [ 0 00:00:00.003] [RU] PID: 1205 TASK: dee03f20 CPU: 0 COMMAND:
\"insmod\"",
-" [ 0 00:00:00.006] [RU] PID: 770 TASK: df9e9940 CPU: 0 COMMAND:
\"rsyslogd\"",
-" [ 0 00:00:00.009] [IN] PID: 603 TASK: df9bcbc0 CPU: 0 COMMAND:
\"udevd\"",
-" [ 0 00:00:00.010] [IN] PID: 348 TASK: df9ecbc0 CPU: 0 COMMAND:
\"udevd\"",
-" [ 0 00:00:00.013] [IN] PID: 934 TASK: df9171a0 CPU: 0 COMMAND:
\"hald\"",
-" [ 0 00:00:00.023] [IN] PID: 6 TASK: df443f20 CPU: 0 COMMAND:
\"events/0\"",
-" [ 0 00:00:00.029] [IN] PID: 15 TASK: df46b280 CPU: 0 COMMAND:
\"kblockd/0\"",
-" [ 0 00:00:00.101] [IN] PID: 1168 TASK: dee01940 CPU: 0 COMMAND:
\"bash\"",
-" [ 0 00:00:01.404] [IN] PID: 272 TASK: dfa48ca0 CPU: 0 COMMAND:
\"flush-8:0\"",
+" [0 00:00:00.094] [ID] PID: 2241 TASK: ffff93f907f7a800 CPU/NUMA: 0/0
COMMAND: \"kworker/0:2\"",
+" [0 00:00:02.921] [IN] PID: 17 TASK: ffff93f903735000 CPU/NUMA: 0/0
COMMAND: \"watchdog/0\"",
+" [0 00:01:09.150] [IN] PID: 14 TASK: ffff93f90371d000 CPU/NUMA: 0/0
COMMAND: \"ksoftirqd/0\"",
+" [0 00:05:45.005] [IN] PID: 16 TASK: ffff93f903732800 CPU/NUMA: 0/0
COMMAND: \"migration/0\"",
+" [0 00:36:43.601] [ID] PID: 2339 TASK: ffff93f90802a800 CPU/NUMA: 0/0
COMMAND: \"kworker/0:1H\"",
+" [0 11:46:38.233] [IN] PID: 4111 TASK: ffff93f916be0000 CPU/NUMA: 0/0
COMMAND: \"JS Helper\"",
+" [0 23:48:15.033] [IN] PID: 4130 TASK: ffff9488372bd000 CPU/NUMA: 0/0
COMMAND: \"gssproxy\"",
+" [0 23:48:16.981] [IN] PID: 4091 TASK: ffff93f908e55000 CPU/NUMA: 0/0
COMMAND: \"dbus-daemon\"",
+" [0 23:48:22.042] [IN] PID: 18 TASK: ffff93f903848000 CPU/NUMA: 0/0
COMMAND: \"cpuhp/0\"",
" ...",
" ",
" %s> ps -l -C0",
" CPU: 0",
-" [137146164748] [RU] PID: 1205 TASK: dee03f20 CPU: 0 COMMAND:
\"insmod\"",
-" [137142534372] [RU] PID: 770 TASK: df9e9940 CPU: 0 COMMAND:
\"rsyslogd\"",
-" [137140168469] [IN] PID: 603 TASK: df9bcbc0 CPU: 0 COMMAND:
\"udevd\"",
-" [137138826427] [IN] PID: 348 TASK: df9ecbc0 CPU: 0 COMMAND:
\"udevd\"",
-" [137135214599] [IN] PID: 934 TASK: df9171a0 CPU: 0 COMMAND:
\"hald\"",
-" [137125651275] [IN] PID: 6 TASK: df443f20 CPU: 0 COMMAND:
\"events/0\"",
-" [137119564815] [IN] PID: 15 TASK: df46b280 CPU: 0 COMMAND:
\"kblockd/0\"",
-" [137047715027] [IN] PID: 1168 TASK: dee01940 CPU: 0 COMMAND:
\"bash\"",
-" [135744209052] [IN] PID: 272 TASK: dfa48ca0 CPU: 0 COMMAND:
\"flush-8:0\"",
+" [85952247246856] [IN] PID: 17 TASK: ffff93f903735000 CPU/NUMA: 0/0
COMMAND: \"watchdog/0\"",
+" [85952242248180] [ID] PID: 2241 TASK: ffff93f907f7a800 CPU/NUMA: 0/0
COMMAND: \"kworker/0:2\"",
+" [85929986250353] [IN] PID: 14 TASK: ffff93f90371d000 CPU/NUMA: 0/0
COMMAND: \"ksoftirqd/0\"",
+" [85841507399634] [IN] PID: 16 TASK: ffff93f903732800 CPU/NUMA: 0/0
COMMAND: \"migration/0\"",
+" [83515567248834] [ID] PID: 2339 TASK: ffff93f90802a800 CPU/NUMA: 0/0
COMMAND: \"kworker/0:1H\"",
+" [43320934650278] [IN] PID: 4111 TASK: ffff93f916be0000 CPU/NUMA: 0/0
COMMAND: \"JS Helper\"",
+" [ 24134425302] [IN] PID: 4130 TASK: ffff9488372bd000 CPU/NUMA: 0/0
COMMAND: \"gssproxy\"",
+" [ 22186688288] [IN] PID: 4091 TASK: ffff93f908e55000 CPU/NUMA: 0/0
COMMAND: \"dbus-daemon\"",
" ... ",
" ",
" Show the kernel stack pointer of each user task:\n",
" %s> ps -us",
-" PID PPID CPU KSTACKP ST %MEM VSZ RSS COMM",
-" 1 0 0 c009bedc IN 0.0 1096 52 init",
-" 239 1 0 c15e7ed8 IN 0.2 1332 224 pump",
-" 280 1 1 c7cbdedc IN 0.2 1092 208 portmap",
-" 295 1 0 c7481edc IN 0.0 1232 0 ypbind",
-" 301 295 0 c7c7bf28 IN 0.1 1260 124 ypbind",
-" 376 1 1 c5053f28 IN 0.0 1316 40 automount",
-" 381 1 0 c34ddf28 IN 0.2 1316 224 automount",
-" 391 1 1 c2777f28 IN 0.2 1316 224 automount",
+" PID PPID CPU/NUMA KSTACKP ST %MEM VSZ RSS
COMM",
+" 1 0 174/2 ffffa36298937d20 IN 0.0 241748 14696
systemd",
+" 2982 1 45/2 ffffa3629fb17d20 IN 0.0 213292 112524
systemd-journal",
+" 3041 1 18/1 ffffa3629fe87d20 IN 0.0 102408 13596
systemd-udevd",
+" 4048 1 38/2 ffffa3629ecdf9c0 IN 0.0 67328 5508
rpcbind",
+" 4058 1 47/2 ffffa362b1dab9c0 IN 0.0 58348 4936
avahi-daemon",
+" 4059 1 175/2 ffffa3629eb43d20 IN 0.0 65364 5992
dbus-daemon",
+" 4060 1 61/3 ffffa3629eb739c0 IN 0.0 606888 20440
NetworkManager",
+" 4061 1 160/2 ffffa3629eb939c0 IN 0.0 125408 5712
irqbalance",
+" 4063 1 35/2 ffffa3629fddb9c0 IN 0.0 125408 5712
gmain",
" ...",
" ",
" Display the argument and environment data for the automount task:\n",
" %s> ps -a automount",
-" PID: 3948 TASK: f722ee30 CPU: 0 COMMAND: \"automount\"",
+" PID: 3948 TASK: f722ee30 CPU/NUMA: 0/0 COMMAND:
\"automount\"",
" ARG: /usr/sbin/automount --timeout=60 /net program /etc/auto.net",
" ENV: SELINUX_INIT=YES",
" CONSOLE=/dev/console",
@@ -1720,33 +1703,36 @@ char *help_ps[] = {
" SHLVL=2",
" _=/usr/sbin/automount",
" ",
-" Display the tasks in the thread group containing task c20ab0b0:\n",
-" %s> ps -g c20ab0b0",
-" PID: 6425 TASK: f72f50b0 CPU: 0 COMMAND: \"firefox-bin\"",
-" PID: 6516 TASK: f71bf1b0 CPU: 0 COMMAND:
\"firefox-bin\"",
-" PID: 6518 TASK: d394b930 CPU: 0 COMMAND:
\"firefox-bin\"",
-" PID: 6520 TASK: c20aa030 CPU: 0 COMMAND:
\"firefox-bin\"",
-" PID: 6523 TASK: c20ab0b0 CPU: 0 COMMAND:
\"firefox-bin\"",
-" PID: 6614 TASK: f1f181b0 CPU: 0 COMMAND:
\"firefox-bin\"",
+" Display the tasks in the thread group containing task ffff94586a062800:\n",
+" %s> ps -g ffff94586a062800",
+" PID: 24916 TASK: ffff94585453d000 CPU/NUMA: 45/2 COMMAND:
\"crash\"",
+" PID: 24922 TASK: ffff945875b50000 CPU/NUMA: 46/2 COMMAND: \"gdb
worker\"",
+" PID: 24923 TASK: ffff945875b55000 CPU/NUMA: 44/2 COMMAND: \"gdb
worker\"",
+" PID: 24924 TASK: ffff945875b52800 CPU/NUMA: 40/2 COMMAND: \"gdb
worker\"",
+" PID: 24925 TASK: ffff945856f92800 CPU/NUMA: 160/2 COMMAND: \"gdb
worker\"",
+" PID: 24926 TASK: ffff94586a062800 CPU/NUMA: 38/2 COMMAND: \"gdb
worker\"",
+" PID: 24927 TASK: ffff94586a065000 CPU/NUMA: 43/2 COMMAND: \"gdb
worker\"",
+" PID: 24928 TASK: ffff94586a060000 CPU/NUMA: 165/2 COMMAND: \"gdb
worker\"",
+" PID: 24929 TASK: ffff9458945b2800 CPU/NUMA: 163/2 COMMAND: \"gdb
worker\"",
" ",
" Display the tasks in the thread group for each instance of the",
" program named \"multi-thread\":\n",
" %s> ps -g multi-thread",
-" PID: 2522 TASK: 1003f0dc7f0 CPU: 1 COMMAND:
\"multi-thread\"",
-" PID: 2523 TASK: 10037b13030 CPU: 1 COMMAND:
\"multi-thread\"",
-" PID: 2524 TASK: 1003e064030 CPU: 1 COMMAND:
\"multi-thread\"",
-" PID: 2525 TASK: 1003e13a7f0 CPU: 1 COMMAND:
\"multi-thread\"",
+" PID: 2522 TASK: 1003f0dc7f0 CPU/NUMA: 1/0 COMMAND:
\"multi-thread\"",
+" PID: 2523 TASK: 10037b13030 CPU/NUMA: 1/0 COMMAND:
\"multi-thread\"",
+" PID: 2524 TASK: 1003e064030 CPU/NUMA: 1/0 COMMAND:
\"multi-thread\"",
+" PID: 2525 TASK: 1003e13a7f0 CPU/NUMA: 1/0 COMMAND:
\"multi-thread\"",
" ",
-" PID: 2526 TASK: 1002f82b7f0 CPU: 1 COMMAND:
\"multi-thread\"",
-" PID: 2527 TASK: 1003e1737f0 CPU: 1 COMMAND:
\"multi-thread\"",
-" PID: 2528 TASK: 10035b4b7f0 CPU: 1 COMMAND:
\"multi-thread\"",
-" PID: 2529 TASK: 1003f0c37f0 CPU: 1 COMMAND:
\"multi-thread\"",
-" PID: 2530 TASK: 10035597030 CPU: 1 COMMAND:
\"multi-thread\"",
-" PID: 2531 TASK: 100184be7f0 CPU: 1 COMMAND:
\"multi-thread\"",
+" PID: 2526 TASK: 1002f82b7f0 CPU/NUMA: 1/0 COMMAND:
\"multi-thread\"",
+" PID: 2527 TASK: 1003e1737f0 CPU/NUMA: 1/0 COMMAND:
\"multi-thread\"",
+" PID: 2528 TASK: 10035b4b7f0 CPU/NUMA: 1/0 COMMAND:
\"multi-thread\"",
+" PID: 2529 TASK: 1003f0c37f0 CPU/NUMA: 1/0 COMMAND:
\"multi-thread\"",
+" PID: 2530 TASK: 10035597030 CPU/NUMA: 1/0 COMMAND:
\"multi-thread\"",
+" PID: 2531 TASK: 100184be7f0 CPU/NUMA: 1/0 COMMAND:
\"multi-thread\"",
" ",
" Display the resource limits of \"bash\" task 13896:\n",
" %s> ps -r 13896",
-" PID: 13896 TASK: cf402000 CPU: 0 COMMAND: \"bash\"",
+" PID: 13896 TASK: cf402000 CPU/NUMA: 128/0 COMMAND:
\"bash\"",
" RLIMIT CURRENT MAXIMUM",
" CPU (unlimited) (unlimited)",
" FSIZE (unlimited) (unlimited)",
@@ -1762,11 +1748,12 @@ char *help_ps[] = {
" ",
" Search for task names matching a POSIX regular expression:\n",
" %s> ps 'migration*'",
-" PID PPID CPU TASK ST %MEM VSZ RSS COMM",
-" 8 2 0 ffff8802128a2e20 IN 0.0 0 0
[migration/0]",
-" 10 2 1 ffff880212969710 IN 0.0 0 0
[migration/1]",
-" 15 2 2 ffff880212989710 IN 0.0 0 0
[migration/2]",
-" 20 2 3 ffff8802129a9710 IN 0.0 0 0
[migration/3]",
+" PID PPID CPU/NUMA TASK ST %MEM VSZ RSS
COMM",
+" 16 2 0/0 ffff9b8e8372d000 IN 0.0 0 0
[migration/0]",
+" 21 2 1/0 ffff9b8e8384a800 IN 0.0 0 0
[migration/1]",
+" 27 2 2/0 ffff9b8e83898000 IN 0.0 0 0
[migration/2]",
+" 33 2 3/0 ffff9b8e838f5000 IN 0.0 0 0
[migration/3]",
+" 39 2 4/0 ffff9b8e83938000 IN 0.0 0 0
[migration/4]",
NULL
};
diff --git a/task.c b/task.c
index a411876..d9d592e 100644
--- a/task.c
+++ b/task.c
@@ -3929,14 +3929,14 @@ show_ps(ulong flag, struct psinfo *psi)
if (!(flag & ((PS_EXCLUSIVE & ~PS_ACTIVE)|PS_NO_HEADER)))
fprintf(fp,
- " PID PPID CPU %s ST %%MEM VSZ RSS COMM\n",
+ " PID PPID CPU/NUMA %s ST %%MEM VSZ RSS COMM\n",
flag & PS_KSTACKP ?
mkstring(buf, VADDR_PRLEN, CENTER|RJUST, "KSTACKP") :
mkstring(buf, VADDR_PRLEN, CENTER, "TASK"));
if ((flag & PS_POLICY_DATA) && !(flag & PS_NO_HEADER)) {
fprintf(fp,
- " PID PPID CPU %s POLICY PRIO COMM\n",
+ " PID PPID CPU/NUMA %s POLICY PRIO COMM\n",
flag & PS_KSTACKP ?
mkstring(buf, VADDR_PRLEN, CENTER|RJUST, "KSTACKP") :
mkstring(buf, VADDR_PRLEN, CENTER, "TASK"));
@@ -5464,8 +5464,7 @@ show_context(struct task_context *tc)
if (tt->flags & THREAD_INFO)
fprintf(fp, "[THREAD_INFO: %lx]", tc->thread_info);
fprintf(fp, "\n");
- INDENT(indent);
- fprintf(fp, " CPU: %s\n", task_cpu(tc->processor, buf, VERBOSE));
+ fprintf(fp, " CPU/NUMA: %s\n", task_cpu(tc->processor, buf, VERBOSE));
INDENT(indent);
fprintf(fp, " STATE: %s ",
task_state_string(tc->task, buf, VERBOSE));
@@ -6180,8 +6179,9 @@ task_mm(ulong task, int fill)
char *
task_cpu(int processor, char *buf, int verbose)
{
+ int nid = cpu_to_nid(processor);
if (processor < NR_CPUS)
- sprintf(buf, "%d", processor);
+ sprintf(buf, "%4d/%-3d", processor, nid);
else
sprintf(buf, verbose ? "(unknown)" : "?");
@@ -7808,7 +7808,7 @@ print_task_header(FILE *out, struct task_context *tc, int newline)
char buf[BUFSIZE];
char buf1[BUFSIZE];
- fprintf(out, "%sPID: %-7ld TASK: %s CPU: %-3s COMMAND:
\"%s\"\n",
+ fprintf(out, "%sPID: %-7ld TASK: %s CPU/NUMA: %-8s COMMAND:
\"%s\"\n",
newline ? "\n" : "", tc->pid,
mkstring(buf1, VADDR_PRLEN, LJUST|LONG_HEX, MKSTR(tc->task)),
task_cpu(tc->processor, buf, !VERBOSE), tc->comm);
--
2.53.0