summaryrefslogtreecommitdiffstats
path: root/freebsd/FreeBSDProcessList.c
Commit message (Collapse)AuthorAgeFilesLines
* Rename ProcessList to ProcessTable throughoutNathan Scott2023-08-311-288/+0
| | | | | | | | | | | | Following up with some discusson from a few months back, where it was proposed that ProcessTable is a better name. This data structure is definitely not a list ... if it was one-dimensional it'd be a set, but in practice it has much more in common with a two-dimensional table. The Process table is a familiar operating system concept for many people too so it resonates a little in that way as well.
* Fix FreeBSD builds after some recent code refactoringNathan Scott2023-08-311-2/+2
| | | | Resolves https://github.com/htop-dev/htop/issues/1290
* Introduce Row and Table classes for screens beyond top-processesNathan Scott2023-08-301-11/+10
| | | | | | | | | This commit refactors the Process and ProcessList structures such they each have a new parent - Row and Table, respectively. These new classes handle screen updates relating to anything that could be represented in tabular format, e.g. cgroups, filesystems, etc, without us having to reimplement the display logic repeatedly for each new entity.
* Build fixes for FreeBSDXimalas2023-05-091-5/+6
| | | | Part of a series of changes to get rid of errors and warnings.
* Adapt platform code for the new Machine base classNathan Scott2023-05-081-371/+15
| | | | | Move host-centric data to new derived <Platform>Machine classes, separate from process-list-centric data.
* Introduce Machine class for host-specific info (split from ProcessList)Nathan Scott2023-05-081-31/+44
| | | | | | | | | | | First stage in sanitizing the process list structure so that htop can support other types of lists too (cgroups, filesystems, ...), in the not-too-distant future. This introduces struct Machine for system-wide information while keeping process-list information in ProcessList (now much less). Next step is to propogate this separation into each platform, to match these core changes.
* Refactor and consolidate dynamic meters/columns pointersNathan Scott2023-04-061-2/+2
| | | | | | | | This removes the duplication of dynamic meter/column hashtable pointers that has come in between the Settings and ProcessList structures - only one copy of these is needed. With the future planned dynamic screens feature adding another pointer, let us first clean this up before any further duplication happens.
* Use shared real memory on FreeBSDChristian Göttsche2023-04-011-1/+1
| | | | | | | Cf. https://github.com/htop-dev/htop/issues/1193#issuecomment-1435673333 for more details. Fixes: #1193 Thanks: @er-azh
* Add support for scheduling policiesChristian Göttsche2023-02-051-0/+6
| | | | | | | | | | | | | Add a process column for scheduling policy to show the current scheduling policy of the process. Add a the ability to change the scheduling policy of a process via the key 'Y'. Currently implemented on Linux and FreeBSD only but should be portable, since sched_getscheduler(2) is part of POSIX.1-2001. Closes: #1161
* FreeBSD: remove duplicate zfs ARC size subtractioner-azh2023-02-051-5/+0
|
* Use sysctlnametomib for vm.vmtotaler-azh2023-02-041-3/+1
|
* Implement shared memory for FreeBSDer-azh2023-02-041-0/+10
|
* Fix build failure on FreeBSD 10.* due to KERN_PROC_CWD unavailableWHR2022-08-041-0/+4
|
* Assume process just started when kproc->ki_start returns garbageBenny Baumann2022-04-211-0/+3
|
* Auto-size (normalized) CPU usage columnsBenny Baumann2022-03-061-0/+1
|
* FreeBSD: Add support for showing process emulationJessica Clarke2022-01-161-0/+2
| | | | | | | | | This displays the same output as ps's -o emul, which is the system call emulation environment, or ABI, in use. This will typically be FreeBSD ELF32 or ELF64, but can also be Linux ELF32 or Linux ELF64 when running Linux binaries under FreeBSD's Linuxulator binary compatibility layer. The column width of 16 is chosen to match KI_EMULNAMELEN's value of 16, most of which is normally used up as FreeBSD ELF32/64 is 13 characters.
* Introduce screen tabsHisham Muhammad2021-12-071-1/+1
| | | | This is a forward port (by nathans) of Hisham's original code.
* Reduce allocation size of cp_time_n and cp_time_o on FreeBSD and DragonFlyBSDGuillaume Gomez2021-11-191-2/+2
|
* Tidy up process state handlingmarcluque2021-11-021-9/+10
|
* Release memory for cmdline when Process_updateCmdline() returns.Ximalas2021-10-031-0/+2
| | | | This closes a nasty memory leak. There is at least another leak looming somewhere when Disk I/O is shown in the header area. That could very well be an issue within libdevstat native to FreeBSD.
* Update license headers to explicitly say GPLv2+Daniel Lange2021-09-221-1/+1
|
* PCP: support for 'dynamic columns' added at runtimeSohaib Mohamed2021-08-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-181-0/+9
|
* Rework CPU countingChristian Göttsche2021-07-181-4/+6
| | | | | | | | | | | 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-151-2/+2
|
* Add a new DynamicMeter class for runtime Meter extensionNathan Scott2021-07-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-251-0/+24
|
* FreeBSD: add EXE and COMM columns and use merged command line helpersChristian Göttsche2021-05-231-17/+38
|
* Call makeCommandStr on all platformsBenny Baumann2021-05-231-0/+4
|
* Move kernel/userland thread handling to platform-independent implementationBenny Baumann2021-05-231-1/+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-101-1/+1
|
* 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-141-78/+9
| | | | | | | | | | * 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.
* FreeBSD: improve actual processor calculation logicAlexander Nedotsukov2021-03-301-1/+5
|
* Use unsigned types for CPU counts and associated variablesChristian Göttsche2021-03-191-5/+5
|
* Merge pull request #436 from cgzones/freebsdGraham Inggs2021-03-181-2/+64
|\ | | | | | | 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-051-2/+64
| |
* | Fix include file ordering of generic headersNathan Scott2021-03-041-1/+1
| |
* | Move generic (shared) code into its own sub-directoryNathan Scott2021-03-041-1/+1
|/ | | | | | | | 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
* FreeBSD: drop minflt and implement majfltChristian Göttsche2021-01-301-0/+2
|
* 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-301-32/+16
|
* FreeBSD: simplify kernel thread logicChristian Göttsche2021-01-301-5/+1
|

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