summaryrefslogtreecommitdiffstats
path: root/linux
Commit message (Collapse)AuthorAgeFilesLines
* Include support for legacy LXC cgroup namingBenny Baumann2021-11-281-0/+30
|
* Use helpers for parsing of cgroup labelsBenny Baumann2021-11-281-9/+21
|
* Extract string writing/buffer handling into some callbackBenny Baumann2021-11-283-131/+121
|
* Compress cgroup names based on some heuristicsBenny Baumann2021-11-286-1/+329
|
* Filter leading colons in CGROUP nameBenny Baumann2021-11-281-3/+10
|
* Ensure maximum width for CGROUP columnBenny Baumann2021-11-281-2/+2
|
* Linux: use proper way to detect kernel threadsRin Cat (鈴猫)2021-11-092-15/+23
| | | | | | Use PF_KTHREAD flag in /proc/[pid]/stat to detect kernel threads. This fixed an issue when a process's cmdline is empty, htop think it is a kernel thread.
* Tidy up process state handlingmarcluque2021-11-021-4/+20
|
* Early program termination only from main()Volodymyr Vasiutyk2021-10-312-10/+12
|
* Dynamically scale the ST_UID size to support 32-bit UIDsSilke Hofstra2021-10-271-2/+2
| | | | | | | | | | | | | | | | | | While most Unix-like systems use 16-bit user IDs, Linux supports 32-bit UIDs since version 2.6. UIDs above 65535 are used for UID namespacing of containers, where a container has its own set of 16-bit user IDs. Processes in such containers will have (much) larger UIDs than 65535. Because the current format strings for `ST_UID` and `USER` are `%5d` and `%9d` respectively, processes with such UIDs lead to misaligned columns. Dynamically scale the `ST_UID` column and increase the size of `USER` to 10 characters (length of UINT32_MAX) to ensure that the user ID always fits. Additionally: clean up how the titlebuffer size calculation and ensure the PID column has a minimum size of 5.
* Linux: restore battery state with numbered AC'sChristian Göttsche2021-10-261-1/+1
|
* Code clean up for reading battery infoaninsen2021-10-251-152/+86
|
* Linux: ignore mapped /dev/zeroChristian Hesse2021-10-251-0/+5
| | | | | Virtualbox maps /dev/zero for memory allocation. That results in false positive, so ignore.
* Fix Security Attributes column header widthLucas Werkmeister2021-10-201-2/+2
| | | | | | | | | Limit the maximum width (instead of only the minimum width), pad the header width accordingly, and also remove extra stray spaces from the format string (the main spacing should just come from the alignment of the value). Fixes #850.
* Report hugepage memory as real and used memory (as before)Nathan Scott2021-10-121-2/+2
| | | | | | This is real, physical memory available for applications to use. We should not try to pretend otherwise; its confusing for users and inconsistent with all other tools.
* Linux: improve tryRead macro safetyChristian Göttsche2021-10-011-3/+3
| | | | | | | | | | Add an explicit else clause so a following else branch for a prior if condition does not get mixed up. Also force a trailing semicolon and thereby silence current -Wextra-semi-stmt warnings. Improve readability of the hwloc_bitmap_foreach_begin loop macro.
* Merge branch 'o_path' of https://github.com/cgzones/htop into cgzones-o_pathNathan Scott2021-09-271-0/+4
|\
| * Linux: define O_PATH if not definedChristian Göttsche2021-09-241-0/+4
| | | | | | | | | | | | | | Defining O_PATH if not defined by <fcntl.h> does not really add any maintenance cost and might improve some portability. Related: #804
* | Linux: always compute procExeDeleted if already setChristian Göttsche2021-09-241-2/+2
|/ | | | | | | | A process, whose executable has been replaced and thus marked by htop, can be re-executed with the replaced executable, with the same PID, in two ways: the Linux feature checkpoint/restore or re-execution of PID 1. The actual check is just a string comparison, like the dropped condition, leading to (almost) no computation overhead.
* Update license headers to explicitly say GPLv2+Daniel Lange2021-09-2218-18/+18
|
* Linux: recalculate LRS valueChristian Göttsche2021-09-121-1/+1
| | | | | The LRS value is only zero in the first cycle; drop the check to recalculate while running.
* Linux: zero CPU data after allocationChristian Göttsche2021-09-111-7/+4
| | | | | | | | | | | | | | | | | | | | Zero all the CPU data, like totalPeriod, after its memory allocation via realloc(3). Conditional jump or move depends on uninitialised value(s) at 0x132A9B: LinuxProcessList_scanCPUTime (LinuxProcessList.c:1928) by 0x1358C3: ProcessList_goThroughEntries (LinuxProcessList.c:2079) by 0x12A79A: ProcessList_scan (ProcessList.c:627) by 0x11CA67: CommandLine_run (CommandLine.c:357) by 0x4A81E49: (below main) (libc-start.c:314) Uninitialised value was created by a heap allocation at 0x48396C5: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x12F633: xRealloc (XUtils.c:64) by 0x12F633: xReallocArray (XUtils.c:78) by 0x1325A8: LinuxProcessList_updateCPUcount (LinuxProcessList.c:207) by 0x134E0A: ProcessList_new (LinuxProcessList.c:284) by 0x11C8D0: CommandLine_run (CommandLine.c:301) by 0x4A81E49: (below main) (libc-start.c:314)
* Add a Process_printPercentage helper routineHisham Muhammad2021-09-051-19/+5
| | | | | Replace several open-coded variants of percentage formatting. This function has been ported from Hishams old 'next' branch.
* Add completion handling for dynamic meters and columnsNathan Scott2021-09-031-0/+4
| | | | | | | Be sure to free dynamic memory allocated for meters and columns strings, no-op on platforms other than pcp. Closes #774
* Linux: rework disk-io parsingChristian Göttsche2021-09-021-14/+5
| | | | | | | | | Generalize sub-diskname handling, like sdb1/sdb2, to not count the usage twice with the aggregate top-diskname, like sdb. Rely on /proc/diskstats being ordered, e.g. no sub-diskname precedes its top-diskname. Closes: #675
* linux: simplify recheck conditionChristian Göttsche2021-09-021-1/+1
| | | | | | `recheck` is calculated modulo 2048, so its maximum value is 2047. Drop the quite similar (up to 27 milliseconds) explicit check against 2000.
* linux: color void delay accounting values grayChristian Göttsche2021-09-021-4/+8
| | | | | | Use the color gray, similar to other process fields, if the delay accounting value is either 0 (or very small) or cannot be accessed, e.g. by an unprivileged user.
* linux: drop unused macro IOPriority_errorChristian Göttsche2021-09-021-2/+0
|
* linux: drop dead process field column DIRTYChristian Göttsche2021-09-024-8/+2
| | | | | The field for dirty pages in /proc/[pid]/statm is always 0 since Linux 2.6 (see man:proc(5)).
* IWYU updateChristian Göttsche2021-08-257-9/+15
|
* Linux: do not scan frequency for inactive CPUsChristian Göttsche2021-08-221-0/+3
|
* Add combined memory and swap meterChristian Göttsche2021-08-171-0/+2
| | | | Closes: #699
* Simplify Action_pickFromVector() width parameter usageChristian Göttsche2021-08-161-1/+1
| | | | Pass one less instead of subtracting one inside the function.
* Respect "Show custom thread names" setting updateChristian Göttsche2021-08-141-11/+8
| | | | | | | Update merged command-line when started with "Show custom thread names" disabled and enabling at runtime. Also only consider showThreadNames when working on userland threads.
* Merge branch 'dynamic-columns' of https://github.com/smalinux/htop into ↵Nathan Scott2021-08-133-6/+11
|\ | | | | | | smalinux-dynamic-columns
| * PCP: support for 'dynamic columns' added at runtimeSohaib Mohamed2021-08-133-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements support for arbitrary Performance Co-Pilot metrics with per-process instance domains to form new htop columns. The column-to-metric mappings are setup using configuration files which will be documented via man pages as part of a follow-up commit. We provide an initial set of column configurations so as to provide new capabilities to pcp-htop: including configs for containers, open fd counts, scheduler run queue time, tcp/udp bytes/calls sent/recv, delay acct, virtual machine guests, detailed virtual memory, swap. Note there is a change to the configuration file path resolution algorithm introduced for 'dynamic meters'. First, look in any custom PCP_HTOP_DIR location. Then iterate, in priority order, users home directory, then local sysadmins files in /etc/pcp/htop, then readonly configuration files below /usr/share/pcp/htop. This final location becomes the preferred place for our own shipped meter and column files. The Settings file (htoprc) writing code is updated to not using the numeric identifier for dynamic columns. The same strategy used for dynamic meters is used here where we write Dynamic(name) so the name can be setup once more at start. Regular (static) columns writing to htoprc - i.e. numerically indexed - is unchanged.
* | Linux: do not include zram devices in DiskIOChristian Göttsche2021-08-101-0/+3
| | | | | | | | | | The meter is intended to show *real* IO, which is significantly slower than zram.
* | The average CPU utilization value must never be marked 'offline'Nathan Scott2021-08-101-1/+2
| | | | | | | | Fixes https://github.com/htop-dev/htop/issues/729
* | Add Shift-F7, Shift-F8 keybindings for autogroupsDaniel Lange2021-08-091-0/+2
| |
* | Add columns for process autogroup identifier and nice valueNathan Scott2021-08-096-2/+129
| | | | | | | | | | | | | | | | | | | | | | | | Adds AGRP (autogroup) and ANI (autogroup nice) columns that report the information from /proc/PID/autogroup, as well as handlers for '{' and '}' to change the autogroup nice value. This is guarded by /proc/sys/kernel/sched_autogroup_enabled such that sampling and/or changing values wont be attempted unless the kernel feature is enabled. Fixes: #720
* | Fix misc typosChristian Göttsche2021-08-081-1/+1
|/ | | | [ci skip]
* Add ProcessList_isCPUonlineChristian Göttsche2021-07-182-0/+9
|
* Rework CPU countingChristian Göttsche2021-07-185-71/+163
| | | | | | | | | | | Currently htop does not support offline CPUs and hot-swapping, e.g. via echo 0 > /sys/devices/system/cpu/cpu2/online Split the current single cpuCount variable into activeCPUs and existingCPUs. Supersedes: #650 Related: #580
* Use PATH lookup for systemctl in systemd meterScott Olson2021-07-151-9/+9
| | | | | | Before this change, the systemd meter was broken on distros like NixOS, which have systemctl in PATH, but not at /bin/systemctl. After the change, it works on all my NixOS machines.
* Proper label indentationBenny Baumann2021-07-151-1/+1
|
* Pointer indication aligned to typenameBenny Baumann2021-07-154-10/+10
|
* Code indentationBenny Baumann2021-07-152-8/+8
|
* Split statements that should go onto multiple linesBenny Baumann2021-07-152-2/+5
|
* Add a new DynamicMeter class for runtime Meter extensionNathan Scott2021-07-073-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is based on exploratory work by Sohaib Mohamed. The end goal is two-fold - to support addition of Meters we build via configuration files for both the PCP platform and for scripts ( https://github.com/htop-dev/htop/issues/526 ) Here, we focus on generic code and the PCP support. A new class DynamicMeter is introduced - it uses the special case 'param' field handling that previously was used only by the CPUMeter, such that every runtime-configured Meter is given a unique identifier. Unlike with the CPUMeter this is used internally only. When reading/writing to htoprc instead of CPU(N) - where N is an integer param (CPU number) - we use the string name for each meter. For example, if we have a configuration for a DynamicMeter for some Redis metrics, we might read and write "Dynamic(redis)". This identifier is subsequently matched (back) up to the configuration file so we're able to re-create arbitrary user configurations. The PCP platform configuration file format is fairly simple. We expand configs from several directories, including the users homedir alongside htoprc (below htop/meters/) and also /etc/pcp/htop/meters. The format will be described via a new pcp-htop(5) man page, but its basically ini-style and each Meter has one or more metric expressions associated, as well as specifications for labels, color and so on via a dot separated notation for individual metrics within the Meter. A few initial sample configuration files are provided below ./pcp/meters that give the general idea. The PCP "derived" metric specification - see pmRegisterDerived(3) - is used as the syntax for specifying metrics in PCP DynamicMeters.
* Replaces WRAP_SUBTRACT with saturatingSub inline function to reduce code ↵fraggerfox2021-06-261-14/+12
| | | | duplication.

© 2014-2024 Faster IT GmbH | imprint | privacy policy