From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <d.csapak@proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 05CF269CB6 for <pve-devel@lists.proxmox.com>; Wed, 28 Jul 2021 14:13:15 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id E995424B88 for <pve-devel@lists.proxmox.com>; Wed, 28 Jul 2021 14:12:44 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id CC83B24B7D for <pve-devel@lists.proxmox.com>; Wed, 28 Jul 2021 14:12:43 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id A701442A43 for <pve-devel@lists.proxmox.com>; Wed, 28 Jul 2021 14:12:43 +0200 (CEST) From: Dominik Csapak <d.csapak@proxmox.com> To: pve-devel@lists.proxmox.com Date: Wed, 28 Jul 2021 14:12:43 +0200 Message-Id: <20210728121243.285295-1-d.csapak@proxmox.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.495 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [procfstools.pm] Subject: [pve-devel] [PATCH common v2] ProcFSTools: read_proc_stat: add more cpu stats from /proc/stat X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> X-List-Received-Date: Wed, 28 Jul 2021 12:13:15 -0000 those fields might be interesting to users. At the moment, this is only used in the external metrics export. These fields exist in the kernel since: * irq - 2.6.0 * softirq - 2.6.0 * steal - 2.6.11 * guest - 2.6.24 * guest_nice - 2.6.33 so they must all exist also add a 'total' field which simply sums up the (non-guest) fields Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> --- changes from v1: * made the new fields non-optional (new kernel is a hard req.) * added a new 'total' field which is the same as in pbs src/PVE/ProcFSTools.pm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/PVE/ProcFSTools.pm b/src/PVE/ProcFSTools.pm index ff30e4b..a75274a 100644 --- a/src/PVE/ProcFSTools.pm +++ b/src/PVE/ProcFSTools.pm @@ -168,13 +168,18 @@ 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|) { + 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; $res->{nice} = $2; $res->{system} = $3; $res->{idle} = $4; $res->{used} = $1+$2+$3; $res->{iowait} = $5; + $res->{irq} = $6; + $res->{softirq} = $7; + $res->{steal} = $8; + $res->{guest} = $9; + $res->{guest_nice} = $10; } elsif ($line =~ m|^cpu\d+\s|) { $cpucount++; } @@ -186,6 +191,16 @@ sub read_proc_stat { my $ctime = gettimeofday; # floating point time in seconds + # the sum of all (non-guest) fields + $res->{total} = $res->{user} + + $res->{nice} + + $res->{system} + + $res->{iowait} + + $res->{irq} + + $res->{softirq} + + $res->{steal} + + $res->{idle}; + $res->{ctime} = $ctime; $res->{cpu} = 0; $res->{wait} = 0; -- 2.30.2