Sohaib
407d32e121
Fix PCP ZramMeter in presense of missing zram metrics
2021-06-09 17:09:29 +10:00
Sohaib
e1d1a5cec6
Add ZFS ARC statistics and meters to the PCP platform
2021-06-09 17:09:29 +10:00
Nathan Scott
6bb59f8881
Fix cut+paste typo in --enable-pcp error message
2021-06-09 17:09:29 +10:00
Nathan Scott
5ef8706d72
Add new CI workflow to check pcp-enabled builds
2021-06-09 17:09:29 +10:00
Nathan Scott
c14a45ba35
Add a platform for Performance Co-Pilot (PCP) metrics
...
This introduces an initial platform for extracting metrics
using the PCP performance metrics API - PMAPI(3). It can
be used via the --enable-pcp=yes configure option.
So far I've added support for live localhost metrics only,
and only using pre-defined metrics already found in htop.
If available, all sampling is performed by pmcd(1) - else,
we fallback to htop doing the metric sampling itself (all
below the PMAPI). When pmcd is used, it may be configured
to run children with elevated privileges, so htop does not
need to be setuid (authentication with pmcd is available).
Additionally, the PMAPI allows us to support archives (for
historical analysis and for automated regression tests in
htop). We'll need platform-specific command line argument
additions, which isn't yet feasible in htop (not difficult
to add though).
The goal of this first version is minimal impact in terms
of modifying the htop codebase, to introduce key ideas in
PCP (metric namespace, metadata, APIs and so on) and give
us something to discuss, experiment with and build on.
2021-06-09 17:09:29 +10:00
Varik Valefor
d075d49a0c
htop.1.in: Some grammatical errors are fixed.
2021-05-30 11:15:45 +02:00
Varik Valefor
f171e360e0
htop.1.in: A grammatical error is fixed.
2021-05-30 11:15:45 +02:00
Benny Baumann
c752c542fe
Unsupported: Implement CWD column
2021-05-25 21:55:04 +02:00
Benny Baumann
8420df62eb
Solaris: Implement CWD column
2021-05-25 21:55:04 +02:00
Benny Baumann
5e92956abc
OpenBSD: Implement CWD column
2021-05-25 21:55:04 +02:00
Benny Baumann
90f42695d2
FreeBSD: Implement CWD column
2021-05-25 21:55:04 +02:00
Benny Baumann
c2e2556403
DragonFlyBSD: Implement CWD column
2021-05-25 21:55:04 +02:00
Benny Baumann
06073699ba
Darwin: Implement CWD column
2021-05-25 21:55:04 +02:00
Benny Baumann
b6ff5c8a2e
Move CWD field handling to platform-neutral code
2021-05-25 21:55:04 +02:00
Christian Göttsche
c408add108
Linux: add reset to heuristic
...
On hard to parse command lines tokenStart might be computed to be bigger
than tokenEnd.
Reset both values in such cases.
2021-05-25 18:20:09 +02:00
Christian Göttsche
550a141860
Add ELAPSED process column
...
Add process columns showing the elapsed time since the process was
started.
Similar to STARTTIME, but shows the time passed since the process start
instead of the fixed start time of the process.
Closes https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=782636
2021-05-23 15:43:23 +02:00
Christian Göttsche
3d5b6d9282
Fix assert failure on short running thread
...
The following assert failure might happen on short running threads with
an empty comm value in /proc/${pid}/stat:
htop: Process.c:1159: void Process_updateCmdline(Process *, const char *, int, int): Assertion `(cmdline && basenameStart < (int)strlen(cmdline)) || (!cmdline && basenameStart == 0)' failed.
The specific task is:
comm=''
exe='(null)'
cmdline='/usr/bin/ruby /usr/bin/how-can-i-help --apt'
So basenameStart is 0, while strlen(cmdline) is also 0.
2021-05-23 15:25:23 +02:00
Benny Baumann
771a1be316
Update documentation for basename coloring of cmdline/exe columns
2021-05-23 09:30:36 +02:00
Benny Baumann
51ecc62d92
Force update when executable was recently deleted/replaced
2021-05-23 09:30:36 +02:00
Benny Baumann
bf07c713ba
Allow for highlighting of deleted executables to be configured
...
Fixes #383
2021-05-23 09:30:36 +02:00
Christian Göttsche
d9feff150c
Solaris: add EXE and COMM columns and use merged command line helpers
2021-05-23 09:22:21 +02:00
Christian Göttsche
72724d42f3
DragonFlyBSD: add EXE and COMM columns and use merged command line helpers
2021-05-23 09:22:21 +02:00
Christian Göttsche
d445676f09
OpenBSD: add COMM column and use merged command line helpers
2021-05-23 09:22:21 +02:00
Christian Göttsche
4da618030c
FreeBSD: add EXE and COMM columns and use merged command line helpers
2021-05-23 09:22:21 +02:00
Christian Göttsche
8ff4eb72ac
Darwin: use merged command line helpers
2021-05-23 09:22:21 +02:00
Christian Göttsche
7892ac68fb
Linux: use merge command line helpers
2021-05-23 09:22:21 +02:00
Christian Göttsche
6ad4f345dc
Unsupported: use merge command line helpers
2021-05-23 09:22:21 +02:00
Christian Göttsche
05fb681d5c
Process: add convenience helper functions to update merged command line related data
2021-05-23 09:22:21 +02:00
Christian Göttsche
7c654559c9
Linux: drop obsolete code now in Process_writeField
2021-05-23 09:22:21 +02:00
Benny Baumann
7ef58f2dcf
Drop mc->maxLen field
2021-05-23 09:22:21 +02:00
Benny Baumann
2824e2989a
Reduce code duplication for nearly identical code-paths
2021-05-23 09:22:21 +02:00
Benny Baumann
9a78155e17
Properly brace macro arguments
2021-05-23 09:22:21 +02:00
Benny Baumann
aa8552ba88
Move PROC_COMM/PROC_EXE column handling to global Process implementation
2021-05-23 09:22:21 +02:00
Benny Baumann
a61a2e6d47
Call makeCommandStr on all platforms
2021-05-23 09:22:21 +02:00
Benny Baumann
bcb18ef822
Move Process_makeCommandStr to global Process implementation
2021-05-23 09:22:21 +02:00
Benny Baumann
c0d0202440
Move LinuxProcess_getCommandStr to Process_getCommandStr
2021-05-23 09:22:21 +02:00
Benny Baumann
7224d0e083
Move kernel/userland thread handling to platform-independent implementation
2021-05-23 09:22:21 +02:00
Benny Baumann
1a1fddae85
Pre-calculate isUserlandThread flag
2021-05-23 09:22:21 +02:00
Benny Baumann
cdb660adab
Move mergeCommand to global process struct
2021-05-23 09:22:21 +02:00
Benny Baumann
94a52cb5c9
Rename cmdlineBasenameOffset to cmdlineBasenameEnd to properly indicate the fields purpose
2021-05-23 09:22:21 +02:00
Benny Baumann
666f70c58c
Move procCmdlineBasenameOffset as cmdlineBasenameStart to global Process structure
2021-05-23 09:22:21 +02:00
Benny Baumann
6dc485dd20
Remove duplicate field LinuxProcess->procCmdlineBasenameEnd
...
This field held practically the same value as cmdlineBasenameEnd
2021-05-23 09:22:21 +02:00
Benny Baumann
a685661866
Move procExeBasenameOffset to main Process structure
...
This drops procExeLen, as that field is implicit by strlen(Process->procExe)
2021-05-23 09:22:21 +02:00
Benny Baumann
93a44acf7e
Move procExeDeleted flag to main Process structure
2021-05-23 09:22:21 +02:00
Benny Baumann
b839987df7
Rename basenameOffset to cmdlineBasenameOffset
2021-05-23 09:22:21 +02:00
Benny Baumann
d74e8b7554
Move procComm and procExe to main Process structure
2021-05-23 09:22:21 +02:00
Benny Baumann
10790f0a54
Process: Put the time field more to the end
2021-05-23 09:22:21 +02:00
Benny Baumann
02431c43e1
Rename command line field from comm to cmdline
2021-05-23 09:22:21 +02:00
Benny Baumann
fbec3e4005
Refactor makeCommandStr
2021-05-23 09:22:21 +02:00
Benny Baumann
07a4657a47
DragonFlyBSD: Fix included headers
2021-05-22 18:16:11 +02:00