Hi Aaron,
I cannot apply your patch, all of the command names are double quoted in my local tree,
anything wrong?
On 8/3/26 6:17 AM, Aaron Tomlin wrote:
> In the crash utility, the default output of the 'ps' command (as well as
> options such as 'ps -k') displays kernel thread command names enclosed
> in square brackets (e.g. [kworker/6:1]) to easily distinguish kernel
> tasks from user tasks.
>
> However, task listing options that rely on print_task_header() (such as
> 'ps -l' and 'ps -m') previously displayed kernel task command names
> without square brackets (e.g. COMMAND: kworker/6:1).
>
> To maintain consistency across all 'ps' command options, update
> print_task_header() to check if a task is a kernel thread via
> is_kernel_thread() and enclose its command name in square brackets. Also
> update the corresponding help page examples to reflect this formatting.
> ---
> help.c | 42 +++++++++++++++++++++---------------------
> task.c | 7 +++++--
> 2 files changed, 26 insertions(+), 23 deletions(-)
>
> diff --git a/help.c b/help.c
> index 6b9e3d8..09cab73 100644
> --- a/help.c
> +++ b/help.c
> @@ -913,18 +913,18 @@ char *help_foreach[] = {
> " ...\n",
> " Display the state of tasks whose name contains a match to
\"event.*\":\n",
> " %s> foreach 'event.*' task -R state",
> -" PID: 99 TASK: ffff8804750d5500 CPU: 0 COMMAND: events/0",
> +" PID: 99 TASK: ffff8804750d5500 CPU: 0 COMMAND: [events/0]",
> " state = 1,",
> " ",
> -" PID: 100 TASK: ffff8804750d4ac0 CPU: 1 COMMAND: events/1",
> +" PID: 100 TASK: ffff8804750d4ac0 CPU: 1 COMMAND: [events/1]",
> " state = 1,",
> " ",
> -" PID: 101 TASK: ffff8804750d4080 CPU: 2 COMMAND: events/2",
> +" PID: 101 TASK: ffff8804750d4080 CPU: 2 COMMAND: [events/2]",
> " state = 1,",
> " ...\n",
> " Display the stack traces for all blocked (TASK_UNINTERRUPTIBLE)
tasks:\n",
> " %s> foreach UN bt",
> -" PID: 428 TASK: ffff880036b6c560 CPU: 1 COMMAND: jbd2/dm-1-8",
> +" PID: 428 TASK: ffff880036b6c560 CPU: 1 COMMAND:
[jbd2/dm-1-8]",
> " #0 [ffff880035779a70] __schedule at ffffffff815df272",
> " #1 [ffff880035779b08] schedule at ffffffff815dfacf",
> " #2 [ffff880035779b18] io_schedule at ffffffff815dfb7f",
> @@ -1541,7 +1541,7 @@ char *help_ps[] = {
> " ",
> " 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: 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",
> @@ -1639,21 +1639,21 @@ char *help_ps[] = {
> " 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",
> +" [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",
> +" [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",
> @@ -1667,10 +1667,10 @@ char *help_ps[] = {
> " [ 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.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:01.404] [IN] PID: 272 TASK: dfa48ca0 CPU: 0 COMMAND:
[flush-8:0]",
> " ...",
> " ",
> " %s> ps -l -C0",
> diff --git a/task.c b/task.c
> index 5c33c4a..b1b2fde 100644
> --- a/task.c
> +++ b/task.c
> @@ -7808,10 +7808,13 @@ 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: %-3s COMMAND:
%s%s%s\n",
> newline ? "\n" : "", tc->pid,
> mkstring(buf1, VADDR_PRLEN, LJUST|LONG_HEX, MKSTR(tc->task)),
> - task_cpu(tc->processor, buf, !VERBOSE), tc->comm);
> + task_cpu(tc->processor, buf, !VERBOSE),
> + is_kernel_thread(tc->task) ? "[" : "",
> + tc->comm,
> + is_kernel_thread(tc->task) ? "]" : "");
> }
>
> /*