aboutsummaryrefslogtreecommitdiff
path: root/procps/top.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* libbb: make read_cmdline() replace chars 1..31 with '?', not spaceDenys Vlasenko2025-08-061-6/+10
| | | | | | Space was too inconspicuous on output Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: simplify command line readingDenys Vlasenko2025-08-061-11/+12
| | | | | | | | | | | | function old new delta cmdline_to_line_buf_and_print - 48 +48 read_cmdline 326 327 +1 display_topmem_process_list 523 505 -18 display_process_list 1186 1161 -25 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/2 up/down: 49/-43) Total: 6 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: disentangle printing logicDenys Vlasenko2025-08-061-83/+97
| | | | | | | | | | | | | | | | function old new delta print_line_buf - 78 +78 print_line_bold - 50 +50 top_main 1043 1091 +48 handle_input 708 714 +6 do_stats 186 192 +6 .rodata 115543 115526 -17 display_topmem_process_list 748 523 -225 display_process_list 1432 1186 -246 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 3/3 up/down: 188/-488) Total: -300 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: consistently NOT use the last column of the displayDenys Vlasenko2025-08-051-56/+51
| | | | | | | | | | | function old new delta .rodata 115537 115543 +6 top_main 1047 1043 -4 display_process_list 1459 1432 -27 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 6/-31) Total: -25 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top,pmap: do not use common code for reading /proc/PID/smapsDenys Vlasenko2025-08-051-8/+8
| | | | | | | | | | | | | | | | | | | | | The logic is in fact quite far from common. While at it, stop accounting "---p" mappings as mapped (e.g. VSZ in top). Nothing is mapped there (why would kernel waste RAM to map pages which can't be accessed?). function old new delta read_smaps - 562 +562 read_cmdline 315 326 +11 print_smaprec 97 101 +4 procps_scan 1219 1211 -8 .rodata 115541 115533 -8 skip_whitespace_if_prefixed_with 25 - -25 procps_read_smaps 864 577 -287 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 2/3 up/down: 577/-328) Total: 249 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: improve response time to keyboard inputDenys Vlasenko2025-08-051-14/+27
| | | | | | | | | | function old new delta handle_input 674 708 +34 top_main 1019 1047 +28 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 62/0) Total: 62 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: reduce flicker: redraw screen with "clear to EOL" commands, not one ↵Denys Vlasenko2025-08-051-14/+20
| | | | | | | | | | | | | | "clear screen" function old new delta display_topmem_process_list 680 748 +68 display_process_list 1403 1459 +56 .rodata 115512 115541 +29 top_main 1014 1019 +5 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/0 up/down: 158/0) Total: 158 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: make uppercase 'S' walk topmem in opposite directionDenys Vlasenko2025-08-051-1/+8
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: show RSS instead of VSF, virtual mapped size is often meaninglessDenys Vlasenko2025-08-051-15/+15
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: fix display of very large VSZDenys Vlasenko2025-08-051-2/+15
| | | | | | | | | | function old new delta display_process_list 1366 1403 +37 handle_input 628 636 +8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 45/0) Total: 45 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: do not rescan processes on second 's'Denys Vlasenko2025-08-051-1/+3
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: improve large PID display in memory ('s') modeDenys Vlasenko2023-11-231-13/+28
| | | | | | | | | | | | | Display VSZ[RW] fields in more compact form if PID is wider. function old new delta display_topmem_process_list 564 614 +50 ulltoa5_and_space - 14 +14 ulltoa6_and_space 14 - -14 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 1/0 up/down: 64/-14) Total: 50 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: stop using div() from libc, compilers now do it betterDenys Vlasenko2023-02-131-9/+16
| | | | | | | | | | function old new delta div 23 - -23 display_process_list 1237 1178 -59 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 0/1 up/down: 0/-82) Total: -82 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: improve large PID display in memory ('s') modeDenys Vlasenko2022-05-121-1/+4
| | | | | | | function old new delta display_topmem_process_list 530 564 +34 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: code shrinkDenys Vlasenko2022-05-101-11/+9
| | | | | | | function old new delta display_process_list 1186 1168 -18 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: code shrinkDenys Vlasenko2022-05-101-11/+14
| | | | | | | function old new delta display_process_list 1191 1186 -5 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: fix display of large PID/PPIDDenys Vlasenko2022-05-101-2/+28
| | | | | | | | | | function old new delta display_process_list 1077 1191 +114 .rodata 104803 104807 +4 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 118/0) Total: 118 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash,hush: fix handling of SIGINT while waiting for interactive inputDenys Vlasenko2022-01-171-1/+1
| | | | | | | | | | | | | | | | function old new delta lineedit_read_key 160 237 +77 __pgetc 522 589 +67 fgetc_interactive 244 309 +65 safe_read_key - 39 +39 read_key 588 607 +19 record_pending_signo 23 32 +9 signal_handler 75 81 +6 .rodata 104312 104309 -3 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 6/1 up/down: 282/-3) Total: 279 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* *: more --help tweaks, mostly expanding ts --helpDenys Vlasenko2021-06-131-2/+2
| | | | | | | function old new delta packed_usage 33554 33596 +42 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: introduce and use fputs_stdoutRon Yorston2021-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta fputs_stdout - 12 +12 zxc_vm_process 7237 7230 -7 yes_main 85 78 -7 write_block 380 373 -7 wrapf 305 298 -7 strings_main 437 430 -7 show_bridge 353 346 -7 rev_main 384 377 -7 put_prompt_custom 58 51 -7 put_cur_glyph_and_inc_cursor 168 161 -7 print_numbered_lines 152 145 -7 print_named_ascii 130 123 -7 print_name 135 128 -7 print_login_issue 386 379 -7 print_ascii 208 201 -7 powertop_main 1249 1242 -7 od_main 1789 1782 -7 logread_main 518 511 -7 head_main 804 797 -7 display_process_list 1319 1312 -7 cut_main 1002 995 -7 bb_dump_dump 1550 1543 -7 bb_ask_noecho 393 386 -7 baseNUM_main 702 695 -7 expand_main 755 745 -10 dumpleases_main 497 487 -10 write1 12 - -12 putcsi 37 23 -14 print_login_prompt 55 41 -14 paste_main 525 511 -14 cat_main 440 426 -14 print_it 245 230 -15 print_addrinfo 1188 1171 -17 print_rule 770 750 -20 print_linkinfo 842 822 -20 httpd_main 791 771 -20 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 0/34 up/down: 12/-341) Total: -329 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* randomconfig fixesDenys Vlasenko2020-06-231-0/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: do not use previous colleced data wheh "h" toggles threads displayDenys Vlasenko2019-08-111-1/+4
| | | | | | | | | This prevents first update from showing incorrect CPU usage data function old new delta handle_input 620 643 +23 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: reduce the overhead of single parameter bb_error_msg() callsJames Byrne2019-07-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Back in 2007, commit 0c97c9d43707 ("'simple' error message functions by Loic Grenie") introduced bb_simple_perror_msg() to allow for a lower overhead call to bb_perror_msg() when only a string was being printed with no parameters. This saves space for some CPU architectures because it avoids the overhead of a call to a variadic function. However there has never been a simple version of bb_error_msg(), and since 2007 many new calls to bb_perror_msg() have been added that only take a single parameter and so could have been using bb_simple_perror_message(). This changeset introduces 'simple' versions of bb_info_msg(), bb_error_msg(), bb_error_msg_and_die(), bb_herror_msg() and bb_herror_msg_and_die(), and replaces all calls that only take a single parameter, or use something like ("%s", arg), with calls to the corresponding 'simple' version. Since it is likely that single parameter calls to the variadic functions may be accidentally reintroduced in the future a new debugging config option WARN_SIMPLE_MSG has been introduced. This uses some macro magic which will cause any such calls to generate a warning, but this is turned off by default to avoid use of the unpleasant macros in normal circumstances. This is a large changeset due to the number of calls that have been replaced. The only files that contain changes other than simple substitution of function calls are libbb.h, libbb/herror_msg.c, libbb/verror_msg.c and libbb/xfuncs_printf.c. In miscutils/devfsd.c, networking/udhcp/common.h and util-linux/mdev.c additonal macros have been added for logging so that single parameter and multiple parameter logging variants exist. The amount of space saved varies considerably by architecture, and was found to be as follows (for 'defconfig' using GCC 7.4): Arm: -92 bytes MIPS: -52 bytes PPC: -1836 bytes x86_64: -938 bytes Note that for the MIPS architecture only an exception had to be made disabling the 'simple' calls for 'udhcp' (in networking/udhcp/common.h) because it made these files larger on MIPS. Signed-off-by: James Byrne <james.byrne@origamienergy.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: provide cmdline argument '-H' to enable thread scanning by defaultThomas De Schampheleire2019-04-041-4/+15
| | | | | | | | | | | | | | | 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>
* top: tweak --helpDenys Vlasenko2019-02-271-3/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* config: update size informationDenys Vlasenko2018-12-281-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* extend fractional duration support to "top -d N.N" and "timeout"Denys Vlasenko2018-08-031-6/+8
| | | | | | | | | | | | | | | | function old new delta parse_duration_str - 168 +168 sleep_for_duration - 157 +157 top_main 885 928 +43 timeout_main 269 312 +43 handle_input 571 614 +43 duration_suffixes - 40 +40 sfx 40 - -40 sleep_main 364 79 -285 ------------------------------------------------------------------------------ (add/remove: 4/1 grow/shrink: 3/1 up/down: 494/-325) Total: 169 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: fix "warning: unused variable new_mask"Denys Vlasenko2018-03-191-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: much faster cursor key navigation by avoiding process rescanDenys Vlasenko2018-03-071-6/+19
| | | | | | | | function old new delta handle_input 549 560 +11 top_main 889 891 +2 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: do unsigned rather than signed division in do_stats()Denys Vlasenko2018-03-071-3/+4
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: handle much larger VSZ valuesDenys Vlasenko2018-03-071-7/+5
| | | | | | | function old new delta display_process_list 1018 999 -19 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* *: use ESC define instead of "\033"; use ESC[m instead of ESC[0mDenys Vlasenko2017-09-131-4/+5
| | | | | | | | text data bss dec hex filename 922535 481 6832 929848 e3038 busybox_old 922534 481 6832 929847 e3037 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* *: stop using atexit in non-debug build: saves ~260 in bss with muslDenys Vlasenko2017-08-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | "builtin" below is atexit's 32-element global array of functions to call. function old new delta top_main 879 889 +10 launch_helper 185 193 +8 powertop_main 1555 1559 +4 sed_main 651 650 -1 slot 4 - -4 call 4 - -4 atexit 23 - -23 kill_helper 31 - -31 __funcs_on_exit 120 - -120 __cxa_atexit 168 - -168 builtin 260 - -260 ------------------------------------------------------------------------------ (add/remove: 0/8 grow/shrink: 3/1 up/down: 22/-611) Total: -589 bytes text data bss dec hex filename 912364 563 6132 919059 e0613 busybox_old 912035 563 5844 918442 e03aa busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: switch to malloced "globals".Denys Vlasenko2017-08-161-7/+6
| | | | | | | | | | | | | | | | | | | | | This seems to be more efficient: function old new delta clearmems - 28 +28 display_process_list 1001 1018 +17 read_cpu_jiffy 171 177 +6 do_stats 194 198 +4 reset_term 20 23 +3 topmem_sort 63 65 +2 mult_lvl_cmp 44 45 +1 get_jiffy_counts 247 248 +1 display_topmem_process_list 549 546 -3 top_main 912 879 -33 handle_input 630 549 -81 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 7/3 up/down: 62/-117) Total: -55 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* getopt32: factor out code to treat all args as optionsDenys Vlasenko2017-08-041-3/+2
| | | | | | | | | | | | | Working towards making getopt32() xmalloc-free function old new delta make_all_argv_opts - 58 +58 top_main 914 912 -2 getopt32 1517 1458 -59 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 0/2 up/down: 58/-61) Total: -3 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* config: deindent all help textsDenys Vlasenko2017-07-211-15/+15
| | | | | | Those two spaces after tab have no effect, and always a nuisance when editing. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Update menuconfig items with approximate applet sizesDenys Vlasenko2017-07-181-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Move FEATURE_USE_TERMIOS config option to two applets which use itDenys Vlasenko2017-01-111-10/+18
| | | | | | No code changes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: consolidate the code to set termios unbuffered modeDenys Vlasenko2017-01-111-8/+2
| | | | | | | | | | | | | | | | function old new delta set_termios_to_raw - 116 +116 count_lines 72 74 +2 powertop_main 1458 1430 -28 top_main 943 914 -29 more_main 759 714 -45 fsck_minix_main 2969 2921 -48 conspy_main 1197 1135 -62 rawmode 99 36 -63 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/6 up/down: 118/-275) Total: -157 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: FEATURE_USE_TERMIOS shouldn't control reading of screen sizeDenys Vlasenko2017-01-111-4/+0
| | | | | | It controls whether we take input. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: fix help text: with !TERMIOS, no keys are affected top outputDenys Vlasenko2016-12-031-1/+4
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Convert all procps/* applets to "new style" applet definitionsDenys Vlasenko2016-11-231-1/+4
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: move free(prev_hist) out of signal pathDenys Vlasenko2016-08-191-6/+6
| | | | | | | It was seen being called recursively on repeated signals, leading to double free Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* *: slap on a few ALIGN1/2s where appropriateDenys Vlasenko2016-04-221-3/+3
| | | | | | | | | | The result of looking at "grep -F -B2 '*fill*' busybox_unstripped.map" text data bss dec hex filename 829901 4086 1904 835891 cc133 busybox_before 829665 4086 1904 835655 cc047 busybox Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* *: add most of the required setup_common_bufsiz() callsDenys Vlasenko2016-04-211-0/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: make bb_common_bufsiz1 1 kbyte, add capability to use bss tail for itDenys Vlasenko2016-04-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The config item is FEATURE_USE_BSS_TAIL. When it is off (default): function old new delta read_config 210 228 +18 doCommands 2279 2294 +15 ipneigh_list_or_flush 763 772 +9 ipaddr_list_or_flush 1256 1261 +5 display_process_list 1301 1306 +5 conspy_main 1378 1383 +5 do_lzo_compress 352 355 +3 do_lzo_decompress 565 567 +2 push 46 44 -2 inetd_main 2136 2134 -2 uevent_main 421 418 -3 addLines 97 92 -5 bb_common_bufsiz1 8193 1024 -7169 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 8/5 up/down: 62/-7181) Total: -7119 bytes text data bss dec hex filename 829850 4086 9080 843016 cdd08 busybox_old 829901 4086 1904 835891 cc133 busybox_unstripped FEATURE_USE_BSS_TAIL=y: read_config 210 228 +18 doCommands 2279 2294 +15 ipneigh_list_or_flush 763 772 +9 ipaddr_list_or_flush 1256 1261 +5 display_process_list 1301 1306 +5 conspy_main 1378 1383 +5 do_lzo_compress 352 355 +3 do_lzo_decompress 565 567 +2 inetd_main 2136 2134 -2 bb_common_bufsiz1 8193 - -8193 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 8/1 up/down: 62/-8195) Total: -8133 bytes text data bss dec hex filename 829850 4086 9080 843016 cdd08 busybox_old 829911 4086 880 834877 cbd3d busybox_unstripped FIXME: setup_common_bufsiz() calls are missing. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: make sort field for 's' mode less confusingDenys Vlasenko2015-10-141-13/+14
| | | | | | | function old new delta display_topmem_process_list 542 565 +23 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* *: more BUILD_BUG_ON conversionsDenys Vlasenko2015-10-131-5/+4
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: fix memset length (sizeof(ptr) vs sizeof(array) problem)Denys Vlasenko2014-07-291-2/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* top: fix and merge code to parse /proc/meminfoTimo Teräs2014-07-271-110/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | display_header() code to parse meminfo as is was buggy: - uninitialized variables were used if meminfo was not as expected - meminfo parsing failed on new kernels (3.14+) as new field 'MemAvailable' was introduced between MemFree and Buffers - shared memory was handled only for ancient kernels (2.4.x and earlier) as result Buffers and shared memory fields were shown with bogus values on current kernels. The new code does not try to parse the old style summary header, as the separated fields are always present (it saves code size). Additionally, both Shmem (2.6+) and MemShared (2.4 and earlier) fields are now parsed and summed for shared memory usage; as only one of them exists depending on kernel version. display_topmem_header() parses also meminfo so this makes it use the same code for code shrink. function old new delta display_header - 681 +681 display_topmem_process_list 465 684 +219 parse_meminfo - 189 +189 static.fields - 106 +106 static.match 132 - -132 .rodata 120254 120117 -137 display_topmem_header 513 - -513 display_process_list 1705 667 -1038 ------------------------------------------------------------------------------ (add/remove: 3/2 grow/shrink: 1/2 up/down: 1195/-1820) Total: -625 bytes Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>