diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2024-09-21 16:24:02 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2024-09-21 16:24:02 -0700 |
commit | 8a49d1650f8b7c223c921af0bbf6f5204b93402e (patch) | |
tree | 3d4093a9877f7b0954cbd809688331f83ea1661d /src | |
parent | e02654ff390253854338f4f586286f4e07912a96 (diff) |
libvmon: maintain a flag indicating if a process is threaded
Preparatory commit for enabling charts to apply % scaling to
non-threaded procesess, to make better use of the row's available
space.
A non-threaded process can't use more than a single core, so it
should be able to scale its %age out to the full row height. The
same will be applied to individual thread rows, as those can at
most use a single core.
The exception is a threaded process - its CPU %ages are
aggregate, and must represent up to the number of CPUs in the
system within their row.
Diffstat (limited to 'src')
-rw-r--r-- | src/libvmon/vmon.c | 1 | ||||
-rw-r--r-- | src/libvmon/vmon.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/src/libvmon/vmon.c b/src/libvmon/vmon.c index 2815d2e..baee17d 100644 --- a/src/libvmon/vmon.c +++ b/src/libvmon/vmon.c @@ -1178,6 +1178,7 @@ vmon_proc_t * vmon_proc_monitor(vmon_t *vmon, vmon_proc_t *parent, int pid, vmon if (is_thread) { list_add_tail(&proc->threads, &parent->threads); parent->threads_changed = 1; + parent->is_threaded = 1; } else { list_add_tail(&proc->siblings, &parent->children); parent->children_changed = 1; diff --git a/src/libvmon/vmon.h b/src/libvmon/vmon.h index 6668605..e4b1593 100644 --- a/src/libvmon/vmon.h +++ b/src/libvmon/vmon.h @@ -251,6 +251,7 @@ typedef struct _vmon_proc_t { unsigned is_new:1; /* process is new in the most recent sample, automatically cleared on subsequent sample */ unsigned is_stale:1; /* process became stale in the most recent sample, automatically cleared on subsequent sample (process will be discarded) */ unsigned is_thread:1; /* process is a thread belonging to parent */ + unsigned is_threaded:1; /* gets set when any of my immediate children are/have been threads */ } vmon_proc_t; |