summaryrefslogtreecommitdiffstats
path: root/pcp
Commit message (Collapse)AuthorAgeFilesLines
* Auto-size (normalized) CPU usage columnsBenny Baumann2022-03-062-2/+3
|
* Use correct command field as default fieldChristian Göttsche2021-12-171-2/+2
| | | | | The default htop command process field has the enum identifier `COMM` but the name `Command` (`COMM` is the field name for /proc/<PID>/comm).
* Mark ScreenDefaults constChristian Göttsche2021-12-172-2/+2
|
* Drop unused Platform variablesChristian Göttsche2021-12-172-8/+0
|
* Fix misc styleguide issues and add missing header filesSohaib Mohamed2021-12-071-1/+1
| | | | Signed-off-by: Sohaib Mohamed <sohaib.amhmd@gmail.com>
* Introduce screen tabsHisham Muhammad2021-12-073-13/+32
| | | | This is a forward port (by nathans) of Hisham's original code.
* Fix process state handling compiler warning on PCP platformNathan Scott2021-11-031-1/+1
|
* Tidy up process state handlingmarcluque2021-11-021-7/+24
|
* Early program termination only from main()Volodymyr Vasiutyk2021-10-312-13/+17
|
* 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.
* Handle interrupted sampling from within libpcp PDU transfersNathan Scott2021-10-052-2/+6
| | | | | | | | | This situation can arise if pcp-htop screen is resized right at the same time sampling from pmcd(1) is happening. Have a couple more goes at it before giving up entirely; once there is no data available though we cannot proceed into accessing the sample result data structure (segv will result) so a new short-circuit guard is added there also.
* Update license headers to explicitly say GPLv2+Daniel Lange2021-09-2211-11/+11
|
* Add completion handling for dynamic meters and columnsNathan Scott2021-09-036-0/+44
| | | | | | | Be sure to free dynamic memory allocated for meters and columns strings, no-op on platforms other than pcp. Closes #774
* PCP: do not set exe to empty stringChristian Göttsche2021-09-021-1/+1
| | | | | | In case the executable is an empty string, e.g. if pcp is run by an unprivileged user, do not set procExe to an empty value, which breaks the formatting of the PROCEXE column and the merged-cmdline logic.
* Add combined memory and swap meterChristian Göttsche2021-08-171-0/+2
| | | | Closes: #699
* Apply suggestions from code reviewNathan Scott2021-08-171-1/+1
| | | Co-authored-by: BenBE <BenBE@geshi.org>
* PCP: ensure unsigned types used throughout CPU count detectionNathan Scott2021-08-173-7/+7
| | | | | | | This cannot be negative in these code locations, but for the purposes of static checking like Coverity scan make it clear and used the same unsigned type as ProcessList.h for the CPU count variable (matching PL activeCPUs and existingCPUs).
* Ensure DynamicColumn hash lookups never see NULL pointersNathan Scott2021-08-171-0/+3
| | | | | | This cannot happen in these code locations, but for the purposes of static checkers like Coverity scan (and for future proofing), add two more guards on NULL hash table entry pointers.
* PCP: PCPMetric.[ch] MdouleSohaib2021-08-1611-463/+525
| | | | | Split the PCP Metric API (functions `Metric_*`) into their own module. as @BenBE suggested.
* Merge branch 'dynamic-columns' of https://github.com/smalinux/htop into ↵Nathan Scott2021-08-1320-77/+692
|\ | | | | | | smalinux-dynamic-columns
| * PCP: support for 'dynamic columns' added at runtimeSohaib Mohamed2021-08-1320-77/+692
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'pcp-dynamic-cpu'Nathan Scott2021-08-091-15/+11
|\ \
| * | PCP: implement a missing piece for offline and hotplug CPUsNathan Scott2021-08-091-15/+11
| |/ | | | | | | Related: #656
* / Add columns for process autogroup identifier and nice valueNathan Scott2021-08-096-8/+59
|/ | | | | | | | | | | | 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
* Merge branch 'cpu_count' of cgzones/htopDaniel Lange2021-08-022-8/+22
|\
| * Add ProcessList_isCPUonlineChristian Göttsche2021-07-182-0/+11
| |
| * Rework CPU countingChristian Göttsche2021-07-181-8/+11
| | | | | | | | | | | | | | | | | | | | | | 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
* | PCP: fix per-process user and system time conversionsNathan Scott2021-07-291-2/+2
| |
* | PCP: use the correct metric for shared memory calculationsNathan Scott2021-07-292-7/+5
| |
* | PCP: fixup: missing setter for isUserlandThreadSohaib Mohamed2021-07-181-0/+1
|/ | | | fixes the color of PROC_COMM for PCP...
* Pointer indication aligned to typenameBenny Baumann2021-07-151-2/+2
|
* Indentation of string argumentsBenny Baumann2021-07-151-4/+4
|
* Whitespace around operatorsBenny Baumann2021-07-152-5/+5
|
* Code indentationBenny Baumann2021-07-153-19/+19
|
* Split statements that should go onto multiple linesBenny Baumann2021-07-151-1/+2
|
* PCP: cleanup: put ZFS in its rightful placeSohaib Mohamed2021-07-151-35/+36
| | | | `PCPProcessList_updateHeader` for all meters...
* Fix whitespace oddity in previous DynamicMeter updatesNathan Scott2021-07-141-1/+1
| | | | Thanks @BenBE for noticing.
* Improve the DynamicMeter_search API to make 'key' optionalNathan Scott2021-07-141-2/+2
| | | | Thanks to @BenBE for the suggestion.
* Additional pointer checks in dynamic meter code for CoverityNathan Scott2021-07-141-7/+9
|
* Ensure PCP dynamic metric configuration definition uniquenessNathan Scott2021-07-141-19/+29
| | | | | | | | | | | | | | It can happen that pcp-htop is presented multiple definitions of the same dynamic meter, e.g. if /etc/pcp/htop/meters has a definition matching one in ~/.config/htop/meters - instead of exiting with a duplicate metric error provide more meaningful diagnostics (on close) and also just skip over such entries. System files override home directories which overrides those found below the current working directory. Also fix the derived metric error diagnostic; because this is using CRT_fatalError, which is like perror(3), we must give a meaningful prefix (like program name) at the string end.
* Remove unnecessary include files from PCPDynamicMeter.cNathan Scott2021-07-094-25/+22
| | | | | Also resolve a few unintended style guide transgressions in the PCP platform code.
* Pretty-print values in the PCP DynamicMeter codeNathan Scott2021-07-085-46/+97
| | | | | | | | | | | | | | | | | Several improvements to the way values are displayed in the PCP platform DynamicMeter implementation: - handle the initial 'caption' setting as with regular meters, this required a new meter callback because we no longer have just a single meter caption for the DynamicMeter case - if no label is provided for a metric in a configuration file use the short form metric name as a fallback - honour the suffix setting in the configuration file - convert metric values to the canonical units for htop (kbyte and seconds), and use Meter_humanUnit when it makes sense to do so. Also improves the handling of fatal string error messages in a couple of places, thanks to BenBE for the review feedback.
* Add more defensive checks to PCP paths if sampling failsNathan Scott2021-07-071-2/+9
|
* PCP: use palette meter text colour for dynamic meter labelsSohaib Mohamed2021-07-071-1/+1
|
* Add a new DynamicMeter class for runtime Meter extensionNathan Scott2021-07-0715-13/+680
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix an assert on kernel process name length on the PCP platformNathan Scott2021-07-071-1/+1
|
* PCP: Fix minor cut+paste typoSohaib Mohamed2021-06-301-5/+5
|
* PCP: Always update usernameBenny Baumann2021-06-221-1/+2
|
* Fix a PCP diagnostics typo, add missing pmFreeResult null check.Nathan Scott2021-06-131-2/+3
|
* Resolve a couple of recent memory leaks in pcp-htopNathan Scott2021-06-131-0/+6
| | | | Makes the pcp-htop binary valgrind-clean once more.

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