summaryrefslogtreecommitdiffstats
path: root/freebsd
Commit message (Collapse)AuthorAgeFilesLines
* Update license headers to explicitly say GPLv2+Daniel Lange2021-09-227-7/+7
|
* 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
* Add combined memory and swap meterChristian Göttsche2021-08-171-0/+2
| | | | Closes: #699
* 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.
* FreeBSD: mark the original kernel thread with pid 0 as suchChristian Göttsche2021-07-181-1/+1
|
* FreeBSD: calculate whether to show entry lastChristian Göttsche2021-07-181-2/+2
| | | | Wait until it has been decided what kind of task the entry actually is.
* FreeBSD: skip exe check for kernel threadChristian Göttsche2021-07-181-6/+5
| | | | | Kernel threads do not have an executable and the check can result in garbage values as unprivileged user.
* Add ProcessList_isCPUonlineChristian Göttsche2021-07-182-0/+11
|
* Rework CPU countingChristian Göttsche2021-07-182-5/+7
| | | | | | | | | | | 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
* Code indentationBenny Baumann2021-07-153-9/+9
|
* Split statements that should go onto multiple linesBenny Baumann2021-07-151-1/+3
|
* 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.
* FreeBSD: Implement CWD columnBenny Baumann2021-05-253-1/+26
|
* Add ELAPSED process columnChristian Göttsche2021-05-231-1/+1
| | | | | | | | | 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
* FreeBSD: add EXE and COMM columns and use merged command line helpersChristian Göttsche2021-05-233-17/+42
|
* Call makeCommandStr on all platformsBenny Baumann2021-05-231-0/+4
|
* Move kernel/userland thread handling to platform-independent implementationBenny Baumann2021-05-233-16/+2
|
* Rename cmdlineBasenameOffset to cmdlineBasenameEnd to properly indicate the ↵Benny Baumann2021-05-231-2/+2
| | | | fields purpose
* Rename basenameOffset to cmdlineBasenameOffsetBenny Baumann2021-05-231-2/+2
|
* Rename command line field from comm to cmdlineBenny Baumann2021-05-231-3/+3
|
* platform-dependent files included relative to main source directorymayurdahibhate2021-05-103-5/+5
|
* FreeBSD: silence unsigned integer underflowChristian Göttsche2021-04-141-1/+1
| | | | | | | | | freebsd/FreeBSDProcessList.c:252:47: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned int' #0 0x397c32 in FreeBSDProcessList_scanCPU /root/workspace/htop/htop/freebsd/FreeBSDProcessList.c:252:47 #1 0x38fe76 in ProcessList_goThroughEntries /root/workspace/htop/htop/freebsd/FreeBSDProcessList.c:438:4 #2 0x35ef9a in ProcessList_scan /root/workspace/htop/htop/ProcessList.c:618:4 #3 0x31ee9e in main /root/workspace/htop/htop/htop.c:468:4 #4 0x26bbcf in _start /usr/src/lib/csu/amd64/crt1.c:76:7
* Rework TTY columnChristian Göttsche2021-04-144-98/+10
| | | | | | | | | | * Rename internal identifier from TTY_NR to just TTY * Unify column header on platforms * Use devname(3) on BSD derivate to show the actual terminal, simplifies current FreeBSD implementation. * Use 'unsigned long int' as id type, to fit dev_t on Linux. Only on Solaris the terminal path is not yet resolved.
* Request the realtime and monotonic clock times once per sampleNathan Scott2021-04-051-0/+9
| | | | | | | | | | | | | | | | Refactor the sample time code to make one call to gettimeofday (aka the realtime clock in clock_gettime, when available) and one to the monotonic clock. Stores each in more appropriately named ProcessList fields for ready access when needed. Every platform gets the opportunity to provide their own clock code, and the existing Mac OS X specific code is moved below darwin instead of in Compat. A couple of leftover time(2) calls are converted to use these ProcessList fields as well, instead of yet again sampling the system clock. Related to https://github.com/htop-dev/htop/pull/574
* FreeBSD: improve actual processor calculation logicAlexander Nedotsukov2021-03-301-1/+5
|
* Use a platform-specific routine for long option usageNathan Scott2021-03-221-3/+4
| | | | Related to https://github.com/htop-dev/htop/pull/564
* Each platform defines its own long opt macro, prefer printfNathan Scott2021-03-221-1/+4
| | | | | | | Follow up on the two items of feedback from cgzones review, and resolve a build failure picked up by CI on Mac OS X. Related to https://github.com/htop-dev/htop/pull/564
* Move libcap use to (Linux) platform-specific codeNathan Scott2021-03-221-0/+4
| | | | | | | | | | | | The libcap code is Linux-specific so move it all below the linux/ platform subdirectory. As this feature has custom command-line long options I provide a mechanism whereby each platform can add custom long options that augment the main htop options. We'll make use this of this with the pcp/ platform in due course to implement the --host and --archive options there. Related to https://github.com/htop-dev/htop/pull/536
* Use unsigned types for CPU counts and associated variablesChristian Göttsche2021-03-193-8/+8
|
* Merge branch 'shared_before_cached' of cgzones/htopDaniel Lange2021-03-191-1/+3
|\
| * MemoryMeter: show shared memory before cachedChristian Göttsche2021-03-171-1/+3
| | | | | | | | | | | | Shared memory is less free-able than cached memory. Show it beforehand.
* | Merge pull request #436 from cgzones/freebsdGraham Inggs2021-03-183-4/+69
|\ \ | |/ |/| | | FreeBSD: add support for CPU frequency and temperature Tested on two physical systems running FreeBSD 12.1
| * FreeBSD: add support for CPU frequency and temperatureChristian Göttsche2021-02-053-4/+69
| |
* | Fix include file ordering of generic headersNathan Scott2021-03-042-3/+3
| |
* | Move generic (shared) code into its own sub-directoryNathan Scott2021-03-042-4/+5
| | | | | | | | | | | | | | | | Code that is shared across some (but not all) platforms is moved into a 'generic' home. Makefile.am cleanups to match plus some minor alphabetic reordering/formatting. As discussed in https://github.com/htop-dev/htop/pull/553
* | Separate display from sampling in SysArch and Hostname MetersNathan Scott2021-03-041-0/+9
| | | | | | | | | | | | | | | | | | Several of our newer meters have merged coding concerns in terms of extracting values and displaying those values. This commit rectifies that for the SysArch and Hostname meters, allowing use of this code with alternative front/back ends. The SysArch code is also refined to detect whether the platform has an os-release file at all and/or the sys/utsname.h header via configure.ac.
* | Merge pull request #550 from natoscott/diskio-typesNathan Scott2021-03-021-1/+1
|\ \ | | | | | | Fix integer sizing issues in the DiskIO Meter
| * | Fix integer sizing issues in the DiskIO MeterNathan Scott2021-03-011-1/+1
| |/ | | | | | | | | | | | | | | | | On Linux kernels the size of the values exported for block device bytes has used a 64 bit integer for quite some time (2.6+ IIRC). Make the procfs value extraction use correct types and change internal types used to rate convert these counters (within the DiskIO Meter) 64 bit integers, where appropriate.
* | Switch NetworkIO Meter to using uint32_t and uint64_tNathan Scott2021-03-021-2/+1
| | | | | | | | From review via @BenBE, this is now a whole lot cleaner.
* | Fix integer sizing issues in the NetworkIO MeterNathan Scott2021-03-012-21/+9
|/ | | | | | | | | On Linux kernels the size of the values exported for network device bytes and packets has used a 64 bit integer for quite some time (2.6+ IIRC). Make the procfs value extraction use correct types and change internal types used to rate convert these counters (within the NetworkIO Meter) 64 bit integers, where appropriate.
* [#480] SysArchMeter to view kernel/arch infoahgamut2021-01-311-0/+2
| | | | | | | At start, SysArchMeter calls the uname function to obtain the kernel version and architecture. If available, the distro version is obtained by calling lsb_release. The obtained values are stored in static variables and used when updating the meter.
* FreeBSD: drop minflt and implement majfltChristian Göttsche2021-01-302-2/+3
|
* FreeBSD: drop unused idle thread codeChristian Göttsche2021-01-301-11/+0
|
* FreeBSD: populate processor fieldChristian Göttsche2021-01-301-0/+2
|
* FreeBSD: drop unused jail_errmsg variableChristian Göttsche2021-01-302-35/+16
|
* FreeBSD: simplify kernel thread logicChristian Göttsche2021-01-303-14/+4
|
* FreeBSD: drop unused ProcessList fieldsChristian Göttsche2021-01-302-5/+2
|
* FreeBSD: miscChristian Göttsche2021-01-303-9/+9
|
* Sort out the mess around column sorting that had accumulated over timeDaniel Lange2021-01-211-9/+9
|
* kfreeBSD: include config.h for _GNU_SOURCE (part 2)Christian Göttsche2021-01-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | strcasestr(3) is a GNU extension and when compiling freebsd/Platform.c on kfreebsd for Debian <string.h> is included before we define _GNU_SOURCE, so the function is not available. In file included from ./Object.h:16, from ./ListItem.h:12, from ./Meter.h:16, from ./Header.h:10, from ./Action.h:15, from freebsd/Platform.h:13, from freebsd/Platform.c:8: ./XUtils.h: In function ‘String_contains_i’: ./XUtils.h:43:11: warning: implicit declaration of function ‘strcasestr’; did you mean ‘strcasecmp’? [-Wimplicit-function-declaration] 43 | return strcasestr(s1, s2) != NULL; | ^~~~~~~~~~ | strcasecmp ./XUtils.h:43:30: warning: comparison between pointer and integer 43 | return strcasestr(s1, s2) != NULL; | ^~ In file included from ./Object.h:16, from ./ProcessList.h:16, from freebsd/FreeBSDProcessList.h:15, from freebsd/FreeBSDProcessList.c:8: ./XUtils.h: In function ‘String_contains_i’: ./XUtils.h:43:11: warning: implicit declaration of function ‘strcasestr’; did you mean ‘strcasecmp’? [-Wimplicit-function-declaration] 43 | return strcasestr(s1, s2) != NULL; | ^~~~~~~~~~ | strcasecmp ./XUtils.h:43:30: warning: comparison between pointer and integer 43 | return strcasestr(s1, s2) != NULL; | ^~

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