summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2024-09-21 16:24:02 -0700
committerVito Caputo <vcaputo@pengaru.com>2024-09-21 16:24:02 -0700
commit8a49d1650f8b7c223c921af0bbf6f5204b93402e (patch)
tree3d4093a9877f7b0954cbd809688331f83ea1661d
parente02654ff390253854338f4f586286f4e07912a96 (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.
-rw-r--r--src/libvmon/vmon.c1
-rw-r--r--src/libvmon/vmon.h1
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;
© All Rights Reserved