Use proper metric to detect kernel threads

Querying kernel threads with `ps -o pid,lid,flags,state,lname -sp 0`
gives that kernel threads have state `K` and flags have mask `0x20000` set.
This corresponds to `LW_SYSTEM` in kernel which is mapped as `L_SYSTEM`/`P_SYSTEM` for userspace.
This commit is contained in:
Benny Baumann 2021-08-15 10:15:16 +02:00 committed by BenBE
parent 68123adb6f
commit b42c441ee0
1 changed files with 1 additions and 1 deletions

View File

@ -281,7 +281,7 @@ static void NetBSDProcessList_scanProcs(NetBSDProcessList* this) {
proc->session = kproc->p_sid; proc->session = kproc->p_sid;
proc->tty_nr = kproc->p_tdev; proc->tty_nr = kproc->p_tdev;
proc->pgrp = kproc->p__pgid; proc->pgrp = kproc->p__pgid;
proc->isKernelThread = proc->pgrp == 0; proc->isKernelThread = !!(kproc->p_flag & P_SYSTEM);
proc->isUserlandThread = proc->pid != proc->tgid; proc->isUserlandThread = proc->pid != proc->tgid;
proc->starttime_ctime = kproc->p_ustart_sec; proc->starttime_ctime = kproc->p_ustart_sec;
Process_fillStarttimeBuffer(proc); Process_fillStarttimeBuffer(proc);