From 3e43795a7a21a21ba53f04ea258e3e79a7a34e9d Mon Sep 17 00:00:00 2001 From: jhb Date: Tue, 31 May 2011 15:11:23 +0000 Subject: Add a new option to toggle the display of the system idle process (per-CPU idle threads). The process is displayed by default (subject to whether or not system processes are displayed) to preserve existing behavior. The system idle process can be hidden via the '-z' command line argument or the 'z' key while top is running. When it is hidden, top more closely matches the behavior of FreeBSD <= 4.x where idle time was not accounted to any process. MFC after: 2 weeks --- usr.bin/top/machine.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'usr.bin') diff --git a/usr.bin/top/machine.c b/usr.bin/top/machine.c index f98f64e..4c55682 100644 --- a/usr.bin/top/machine.c +++ b/usr.bin/top/machine.c @@ -624,6 +624,7 @@ get_process_info(struct system_info *si, struct process_select *sel, int show_system; int show_uid; int show_command; + int show_kidle; /* * Save the previous process info. @@ -664,6 +665,7 @@ get_process_info(struct system_info *si, struct process_select *sel, show_system = sel->system; show_uid = sel->uid != -1; show_command = sel->command != NULL; + show_kidle = sel->kidle; /* count up process states and get pointers to interesting procs */ total_procs = 0; @@ -705,6 +707,11 @@ get_process_info(struct system_info *si, struct process_select *sel, /* skip idle or non-running processes */ continue; + if (displaymode == DISP_CPU && !show_kidle && + pp->ki_tdflags & TDF_IDLETD) + /* skip kernel idle process */ + continue; + if (displaymode == DISP_IO && !show_idle && p_io == 0) /* skip processes that aren't doing I/O */ continue; -- cgit v1.1