all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pmg-devel] [RFC pve-common] procfs tools: handle proc/stat without guest values
@ 2022-04-22  8:15 Fabian Ebner
  2022-04-25  7:44 ` Fabian Ebner
  2022-06-14  8:28 ` [pmg-devel] applied: " Fabian Ebner
  0 siblings, 2 replies; 4+ messages in thread
From: Fabian Ebner @ 2022-04-22  8:15 UTC (permalink / raw)
  To: pmg-devel

PMG is often run as a container, and in certain environments
(Parallels?), the last two values (guest and guest_nice) might not be
present. This led to a division by zero, because the total value was
never updated.

Reported in the community forum:
https://forum.proxmox.com/threads/106896/

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
 src/PVE/ProcFSTools.pm | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/PVE/ProcFSTools.pm b/src/PVE/ProcFSTools.pm
index 88df5d2..d636427 100644
--- a/src/PVE/ProcFSTools.pm
+++ b/src/PVE/ProcFSTools.pm
@@ -168,9 +168,9 @@ sub read_proc_stat {
 
     if (my $fh = IO::File->new ("/proc/stat", "r")) {
 	while (defined (my $line = <$fh>)) {
-	    if ($line =~ m|^cpu\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)|) {
-		$res->{user} = $1 - $9;
-		$res->{nice} = $2 - $10;
+	    if ($line =~ m|^cpu\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)(?:\s+(\d+)\s+(\d+))?|) {
+		$res->{user} = $1 - ($9 // 0);
+		$res->{nice} = $2 - ($10 // 0);
 		$res->{system} = $3;
 		$res->{idle} = $4;
 		$res->{used} = $1+$2+$3+$6+$7+$8;
@@ -178,8 +178,8 @@ sub read_proc_stat {
 		$res->{irq} = $6;
 		$res->{softirq} = $7;
 		$res->{steal} = $8;
-		$res->{guest} = $9;
-		$res->{guest_nice} = $10;
+		$res->{guest} = $9 // 0;
+		$res->{guest_nice} = $10 // 0;
 	    } elsif ($line =~ m|^cpu\d+\s|) {
 		$cpucount++;
 	    }
-- 
2.30.2





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-06-14  8:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-22  8:15 [pmg-devel] [RFC pve-common] procfs tools: handle proc/stat without guest values Fabian Ebner
2022-04-25  7:44 ` Fabian Ebner
2022-06-14  7:44   ` Wolfgang Bumiller
2022-06-14  8:28 ` [pmg-devel] applied: " Fabian Ebner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal