diff options
author | Thomas De Schampheleire | 2019-03-26 13:10:21 +0100 |
---|---|---|
committer | Denys Vlasenko | 2019-04-04 14:14:24 +0200 |
commit | 2b6282117f026cfa2a3e7efee7caa054b6265264 (patch) | |
tree | 1127f82c0841cf66600501362f94f0e9d38b8883 /procps | |
parent | a3ce161363380899ae45716c70714cfcc93a7755 (diff) | |
download | busybox-2b6282117f026cfa2a3e7efee7caa054b6265264.zip busybox-2b6282117f026cfa2a3e7efee7caa054b6265264.tar.gz |
top: provide cmdline argument '-H' to enable thread scanning by default
In particular useful when you want to evaluate the threads in batch mode:
top -Hbn1
function old new delta
top_main 928 941 +13
packed_usage 33317 33319 +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 15/0) Total: 15 bytes
Signed-off-by: Philippe Belet <philippe.belet@nokia.com>
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'procps')
-rw-r--r-- | procps/top.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/procps/top.c b/procps/top.c index 6254097..89f9d23 100644 --- a/procps/top.c +++ b/procps/top.c @@ -222,8 +222,9 @@ enum { OPT_d = (1 << 0), OPT_n = (1 << 1), OPT_b = (1 << 2), - OPT_m = (1 << 3), - OPT_EOF = (1 << 4), /* pseudo: "we saw EOF in stdin" */ + OPT_H = (1 << 3), + OPT_m = (1 << 4), + OPT_EOF = (1 << 5), /* pseudo: "we saw EOF in stdin" */ }; #define OPT_BATCH_MODE (option_mask32 & OPT_b) @@ -1043,7 +1044,8 @@ static unsigned handle_input(unsigned scan_mask, duration_t interval) //usage:# define IF_SHOW_THREADS_OR_TOP_SMP(...) //usage:#endif //usage:#define top_trivial_usage -//usage: "[-b"IF_FEATURE_TOPMEM("m")"] [-n COUNT] [-d SECONDS]" +//usage: "[-b"IF_FEATURE_TOPMEM("m")IF_FEATURE_SHOW_THREADS("H")"]" +//usage: " [-n COUNT] [-d SECONDS]" //usage:#define top_full_usage "\n\n" //usage: "Provide a view of process activity in real time." //usage: "\n""Read the status of all processes from /proc each SECONDS" @@ -1076,6 +1078,9 @@ static unsigned handle_input(unsigned scan_mask, duration_t interval) //usage: IF_FEATURE_TOPMEM( //usage: "\n"" -m Same as 's' key" //usage: ) +//usage: IF_FEATURE_SHOW_THREADS( +//usage: "\n"" -H Show threads" +//usage: ) /* Interactive testing: * echo sss | ./busybox top @@ -1110,7 +1115,8 @@ int top_main(int argc UNUSED_PARAM, char **argv) /* all args are options; -n NUM */ make_all_argv_opts(argv); /* options can be specified w/o dash */ - col = getopt32(argv, "d:n:b"IF_FEATURE_TOPMEM("m"), &str_interval, &str_iterations); + col = getopt32(argv, "d:n:bHm", &str_interval, &str_iterations); + /* NB: -m and -H are accepted even if not configured */ #if ENABLE_FEATURE_TOPMEM if (col & OPT_m) /* -m (busybox specific) */ scan_mask = TOPMEM_MASK; @@ -1129,6 +1135,11 @@ int top_main(int argc UNUSED_PARAM, char **argv) str_iterations++; iterations = xatou(str_iterations); } +#if ENABLE_FEATURE_SHOW_THREADS + if (col & OPT_H) { + scan_mask |= PSSCAN_TASKS; + } +#endif /* change to /proc */ xchdir("/proc"); |