From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id 824A71FF15D
	for <inbox@lore.proxmox.com>; Thu, 19 Sep 2024 08:56:36 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id A86EEE84C;
	Thu, 19 Sep 2024 08:56:22 +0200 (CEST)
To: pve-devel@lists.proxmox.com
Date: Tue, 17 Sep 2024 07:50:19 +0200
In-Reply-To: <20240917055020.10507-1-sascha.westermann@hl-services.de>
References: <20240917055020.10507-1-sascha.westermann@hl-services.de>
X-Mailman-Approved-At: Thu, 19 Sep 2024 08:56:19 +0200
MIME-Version: 1.0
Message-ID: <mailman.7.1726728980.332.pve-devel@lists.proxmox.com>
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Post: <mailto:pve-devel@lists.proxmox.com>
From: Sascha Westermann via pve-devel <pve-devel@lists.proxmox.com>
Precedence: list
Cc: Sascha Westermann <sascha.westermann@hl-services.de>
X-Mailman-Version: 2.1.29
X-BeenThere: pve-devel@lists.proxmox.com
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
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/>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
Subject: [pve-devel] [PATCH pve-manager 2/3] Fix #5708: Add CPU raw counters
Content-Type: multipart/mixed; boundary="===============3198042199320840545=="
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

--===============3198042199320840545==
Content-Type: message/rfc822
Content-Disposition: inline

Return-Path: <sascha.westermann@hl-services.de>
X-Original-To: pve-devel@lists.proxmox.com
Delivered-To: pve-devel@lists.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 85570C36EA
	for <pve-devel@lists.proxmox.com>; Tue, 17 Sep 2024 08:06:45 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 6FB7C10CD9
	for <pve-devel@lists.proxmox.com>; Tue, 17 Sep 2024 08:06:45 +0200 (CEST)
Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2072e.outbound.protection.outlook.com [IPv6:2a01:111:f403:260c::72e])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by firstgate.proxmox.com (Proxmox) with ESMTPS
	for <pve-devel@lists.proxmox.com>; Tue, 17 Sep 2024 08:06:44 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nLBvGNFh3W9W8GlgbTEkA5R9k1BUphaJZFCaebhKuj8S5Zx2bU9rFZex5g1QE/VF4tY+9QUVV0ZtrCGr8UZDnCyMG9MeIYUc6jQMUpiqNQSbrTvR33OJ1AB9ZW2A6jFQt6dzztRjHm0KamzrIY5labW9Iv/sK0WxsUXYSDwnc1Cvmmx5C7zVGbE0I9OIPKVmfR8iSR+JRva9uoXrmyDLQmNcXuk8AMN/RlSNJb2WsaPo4OYfUVMYhvQZ3L7DVDiTw6aoJCzfbmArk5Tz5Y6OkCrF0Yj8svoycX65Zxy9LzneDzz13yUlui/FiA9pf39STA5dLiFy93GpHsykFLRcyA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=p1QD195JKaSa093uD9pkmEnDa7sVNIuMuYBH+FDPmGg=;
 b=jMDbmhBWulBq5uu8vIVCagw7z1XTWQA3OoeqwUGOBG1EzZUCtFdFJGJHNER2wJP9jfNwQDJMwM6tZ3HI4XGypnWcuKz8kfn0f8Y7h5AziBumi+5aWIa1iKWVXJkPkkEQ/a/N/odziu/DEFYhapxU+S65f5VfsJC9Q5ptyF2koukzCkWsgE/iyce23RxZQuekeCwG/5Bg+qptDt0KVcVkfxcWuPkRbfTYslXdw7xd9ZsUeldxlgycPMr7DdhV3HHyh0SwonDRdPbY+xsIVZ1zUenuuiw692w3bW22pQhXQhlMtX6NvhTNmHuMILsSqnGXJSs4ntItgZ0Wf6s0C5g24A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=hl-services.de; dmarc=pass action=none
 header.from=hl-services.de; dkim=pass header.d=hl-services.de; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hl-services.de;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=p1QD195JKaSa093uD9pkmEnDa7sVNIuMuYBH+FDPmGg=;
 b=qYzCS1nRdDdkUCB0tRUETvALIW+UWMwDj97nsYeUOLVCvgUKC+itkCWLrWA8h6BSxpoxmn2aZlgVI5nkYwbAzRxEbTGFyVy3vV4xPLVnoVCo7+bu+frnCtgt6OWIXqXvdSGlPrepeHp8Tu2iAIScxw3Sv2+UtdS4ESYSpG4hKnXECflBcESp1vqVS1B/WiA4N1jqGWO/YrK6kbjczAcsa08IcZlABXacNhqBTh4VspHPf9DoJSqF+JGfT3TtZHwhko/oe/RL6ezL3dTXdO7tGT+NaqyltCDpyqbvZ1KlcijPXXYH+nLXTQro0FcACvw4gFT62doDFx4l9nYfcKCa8A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=hl-services.de;
Received: from AM9PR10MB4885.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:419::5)
 by GV2PR10MB7031.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:150:d3::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7962.24; Tue, 17 Sep
 2024 05:50:32 +0000
Received: from AM9PR10MB4885.EURPRD10.PROD.OUTLOOK.COM
 ([fe80::69f0:b468:92e7:7210]) by AM9PR10MB4885.EURPRD10.PROD.OUTLOOK.COM
 ([fe80::69f0:b468:92e7:7210%6]) with mapi id 15.20.7962.022; Tue, 17 Sep 2024
 05:50:32 +0000
From: Sascha Westermann <sascha.westermann@hl-services.de>
To: pve-devel@lists.proxmox.com
Cc: Sascha Westermann <sascha.westermann@hl-services.de>
Subject: [PATCH pve-manager 2/3] Fix #5708: Add CPU raw counters
Date: Tue, 17 Sep 2024 07:50:19 +0200
Message-ID: <20240917055020.10507-3-sascha.westermann@hl-services.de>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20240917055020.10507-1-sascha.westermann@hl-services.de>
References: <20240917055020.10507-1-sascha.westermann@hl-services.de>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: AM0PR03CA0045.eurprd03.prod.outlook.com (2603:10a6:208::22)
 To AM9PR10MB4885.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:419::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM9PR10MB4885:EE_|GV2PR10MB7031:EE_
X-MS-Office365-Filtering-Correlation-Id: 13f15ef5-2be2-4dcf-72b7-08dcd6dca4b0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info: 	=?us-ascii?Q?QMeuKb7w3HH9MV7l1FXg/J/W/76JCrmXnDijbv4WDcxQ/BlznwTPhJOtnidM?=
 =?us-ascii?Q?YNdYnz5MHgok5LPgXSsFKl8PscG1S1EgU98PbTEdhL5Agtue+uQ6pl0EcXAL?=
 =?us-ascii?Q?3rzKbXTcYZLAzj+flXdRjwJLt0oYAuekfTEjUoNqmvrHqypp6G09W0QuZou9?=
 =?us-ascii?Q?irJ6uYqUFkbDUeOBo1jwYOCxHCQcBTEPA1gsHyRB2+l+Juhj+tqbY/JlYijc?=
 =?us-ascii?Q?dmL2sqkp7hpz6AXck1L9GIGIImhCb6Xi3BhisQWLOkj+AvJCGEOSIKxeT5gy?=
 =?us-ascii?Q?7Yl9HxvZWmVgQIbDCjJGWfSGRnDnSVq6q3MC9avThi5pT7vMoZbJMDufupcD?=
 =?us-ascii?Q?zXTvj6meVbcnoKrEeCLTS0EFcJSpRALZ8EFp50KM+p/zV3XahxdjqYlPx9p9?=
 =?us-ascii?Q?RaLG/qicO/8BFe4IEZ8oee559/A41SFtyJ1qtgCV37/O9bqUohIgy1zHs9Vb?=
 =?us-ascii?Q?r5+N/JDpTiaE1N8d6w8WpwHJFo+KRsevtemmkA+2ivxwWAbqBSbf+1TDh3O/?=
 =?us-ascii?Q?r4Rm+rK62qGt/wB2T3QJ4j4JoEg9LUN0+cc61quOlxW+/5P73DGbId/tAbfm?=
 =?us-ascii?Q?1ZkXo/D8CqoVDZva9cayXx9h3Y1yhxvf/kQ3VooStxsl7zN+VhGeqRaBAojO?=
 =?us-ascii?Q?d0Qu7oHegdkgoGUN5f1fNHFM5SpL3XVcPXrZDdjsVJ7h9dHgorKMK9k3zpuU?=
 =?us-ascii?Q?1v3wh4/Y7Z4xbgHI7RVKqp6nBZPapZkUbZeh/3lLCeJEbrDoqKHqi0ilAtd/?=
 =?us-ascii?Q?u9SENjcbFIYiqaYA3BlhQCTSgYlCW2Xiq+o4zjCSUM9lTh5+pCMlQk13CDOb?=
 =?us-ascii?Q?d4n6bnjFPp/GEICxabh0JWrZda8Hnfz39jCuDzCvXwqOrnn87fIdJW/HanRQ?=
 =?us-ascii?Q?vutEAihzyyX1pvyolaQeaYYEke0SQ13HkuQUW1ntF3300GKMlKuPgCksHPI1?=
 =?us-ascii?Q?OkzvTfoVvu9qgxGu3xcCM4CQ8Pov86RJi3g2fo6Ouh9KYSYVqbq9NH3Ujci2?=
 =?us-ascii?Q?JwZqtY/+fTdw539tqsKcy0z05KQVau6I1BILsVT5BNsS4aWmZ3f8WXRwOPQp?=
 =?us-ascii?Q?DIuJ3a1T4hE0QqPduODW7Q8XNsxz6zUBzFN0ztTEYmkNdTUTbv0/riE/YLa3?=
 =?us-ascii?Q?9rwNrPLXOK0F3P5WAHYZw00jxelySODxLKEC2Z0JKShsLrJJ13a90atO69zn?=
 =?us-ascii?Q?UwzMiR3v78RK9PVl/eKEL2Tx0HvHe9RbHQxlaHd64sdRfxwkMM/mi4PwziMO?=
 =?us-ascii?Q?FygQrk+J1yHFnSylYJd7FSGXODr7l91MPfPS89IVxE9LLU5zT+IYE1wHYTh5?=
 =?us-ascii?Q?bZMU4UZFGGOngcNZgZntzlquR25MADBimWZAlJj5XYk/8A=3D=3D?=
X-Forefront-Antispam-Report: 	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR10MB4885.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(1800799024)(366016);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 	=?us-ascii?Q?EWYIQ1IHuF3/XE/FGwcbJlT4FKY1GMEEiJ8svJJ17rq3Y+29WVRgFZWJBJHL?=
 =?us-ascii?Q?AxBVLXpP12qSb6wvI8S68KT+tjS1M5Rn9ShoKxrKmxaiwDeDP2r2dx+AfsyZ?=
 =?us-ascii?Q?p3uggIM3mCxaOYeTSR+iifOzAnKDK7J4idM9pLBHT5PMyOQsa0T/NM8dLZxT?=
 =?us-ascii?Q?Mg+dKeZTzYYlRYJEjmHyQgznFxGxaVVNUpGdWuanLs3Cln7ufxnK3FoJ79Ab?=
 =?us-ascii?Q?IjD++XojPEojS1IjJaISMghY+MDTNetJR5zKedwDOItE6IPogSzgD1mOA9zH?=
 =?us-ascii?Q?ACYz1V8Cvfz2bpfOKi5+WT3mPSRnZC4xN5nLm+RdHpgom8lNUbZYOr7ExmMY?=
 =?us-ascii?Q?sUxdOQwjRt/UHqhdJ+InrQfNNpUBthD+sQkvGRN8g+2ma7cL6PTvutZI/Aaj?=
 =?us-ascii?Q?+BxtS6VRVQXrYNqZuTiCdyNHxg7kgoP+f78YvVm+4XFx+dx4ZNokLx8rLtdK?=
 =?us-ascii?Q?j4a4t7Nj5Z0sqHDejc+fZGhmx4+9dbPko+zWsZ+M3HvQiUcNhdbAGr2G3ddQ?=
 =?us-ascii?Q?awSH8BaLsqZwG/M7EOBqMDq5ZOYUUHEo7f+hUmhPH/lHMF9g7yX+ky5W37Cq?=
 =?us-ascii?Q?jEVBm8AH3qBiG8Ot4o9i3dbQO4W8Nydf6y8dD6fy2ORDVkr1/lTyqLxEg33d?=
 =?us-ascii?Q?P+ZVRAbNvE2NDU22JePfLvzrKrvSv8tdy/LJCW3Yih6eArRutPXir3wZntAg?=
 =?us-ascii?Q?06WEinLXV9E6eY0sqXGM0Fq8GwpBgSeGhcrpQjj2Y75Im6tyX1dC2azwjTsS?=
 =?us-ascii?Q?Oko6l3PM+QVGZNvMMo543QywUitaQYMjOLk+cploBfFRwN72YLlULcC0LdYn?=
 =?us-ascii?Q?gXDi8+SLUEeghOgKYyuca5ddsR2JaIdlOBTCobJKnMyQbh4IFwZ8WEnyOiPq?=
 =?us-ascii?Q?WLP+TkOaaNvCUf9H4ZQh7LQTw2a1A+x5R3F5uL3NO4ponxfq3v0WpUW/LCHx?=
 =?us-ascii?Q?lvFshJVw1Ef5BAiIHL6ZgEIVp8vh34GEbnsaX+ADtXAUFxitt5wCYHXc5VuT?=
 =?us-ascii?Q?leLp0paPfsWTOUbMkV2pOtassUuso3F00FVw0sv7B9wHDUozLA3MZQvputhu?=
 =?us-ascii?Q?jijdN0EsA57rzKsdBB0bY8uUnap+dMlXrHFeEgAdjWLqQmN7FSsZXNVOUyoQ?=
 =?us-ascii?Q?JfKnlNRYqnyg33SdlgTjYvv5NvV/2jYplDVzZjsCCsR6Y5EC0O4GyOmq61oD?=
 =?us-ascii?Q?vGdZnwqYsm/JYC0AFMdiMNPJ5NUW+pceZIUv/JgpgAjZuzkfMsNbeKszHoVe?=
 =?us-ascii?Q?uUmddq4vhrjoLpo9wVzjZVLiKsebSJJLklHbCHNPh7ooyJORuEgUYXQKvdQ7?=
 =?us-ascii?Q?0YMZgSbtL5CxUlkNncjwWd6GEkzLQ1fpYwtakmZs2Otr4RlNSP9DmgJUHLNR?=
 =?us-ascii?Q?IrbCk1wzVOMRIJDgUJfHl30wAhPbeRavXaHs7U+WYjK9TB0m1aBpau0iCIi/?=
 =?us-ascii?Q?KNYHAedavCdJ7sm8InaVG0JnEJvapAmMx8WZEHVhNzM9Brh/QFka6S76dcsP?=
 =?us-ascii?Q?3sIJKoqmMV1uSGUVDjrMCzWBkHZOXZtB747eZyUcW9UK6oMRYFjm8nnfciIB?=
 =?us-ascii?Q?uBY0Glpzze9mMviJ0lBELEmYFEE4OX2leU6ixyJ2tLYKC8PvkISJpwrsGJcp?=
 =?us-ascii?Q?N21A2qBlUhWpaqCtsR2V68ZYWRZXqfJpRJBIMfxNCgij20i77R+CWj8BzO2Z?=
 =?us-ascii?Q?YznGIASTHJWeTr8Xv8WXaZI75H8=3D?=
X-OriginatorOrg: hl-services.de
X-MS-Exchange-CrossTenant-Network-Message-Id: 13f15ef5-2be2-4dcf-72b7-08dcd6dca4b0
X-MS-Exchange-CrossTenant-AuthSource: AM9PR10MB4885.EURPRD10.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2024 05:50:32.5177
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 996ee4f0-343c-4038-abc8-fd1e1094eeb5
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ve3X5RZIRTYT7/DXHGfGVhin1X7jOY/2as7kG3rVWEGKTTuJ8edE3R9kkN38cZil00qtcum0Wi1WFH+xZKGcxkA/ibrqojm7BQLr1xDpnVBFJAea5VXdZgYyQlxpvtc+
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR10MB7031
X-SPAM-LEVEL: Spam detection results:  0
	ARC_SIGNED              0.001 Message has a ARC signature
	ARC_VALID               0.001 Message has a valid ARC signature
	AWL                     0.000 Adjusted score from AWL reputation of From: address
	BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
	DKIM_SIGNED               0.1 Message has a DKIM or DK signature, not necessarily valid
	DKIM_VALID               -0.1 Message has at least one valid DKIM or DK signature
	DKIM_VALID_AU            -0.1 Message has a valid DKIM or DK signature from author's domain
	DKIM_VALID_EF            -0.1 Message has a valid DKIM or DK signature from envelope-from domain
	DMARC_PASS               -0.1 DMARC pass policy
	RCVD_IN_DNSWL_NONE     -0.0001 Sender listed at https://www.dnswl.org/, no trust
	SPF_HELO_PASS          -0.001 SPF: HELO matches SPF record
	SPF_PASS               -0.001 SPF: sender matches SPF record
X-Mailman-Approved-At: Thu, 19 Sep 2024 08:56:19 +0200

Add a map containing raw values from /proc/stat and "uptime_ticks" which
can be used in combination with cpuinfo.user_hz to calculate CPU usage
from two samples. "uptime_ticks" is only defined at the top level, as
/proc/stat is read once, so that core-specific raw values match this
value.

Signed-off-by: Sascha Westermann <sascha.westermann@hl-services.de>
---
 PVE/API2/Nodes.pm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm
index 9920e977..1943ec56 100644
--- a/PVE/API2/Nodes.pm
+++ b/PVE/API2/Nodes.pm
@@ -5,6 +5,7 @@ use warnings;
 
 use Digest::MD5;
 use Digest::SHA;
+use IO::File;
 use Filesys::Df;
 use HTTP::Status qw(:constants);
 use JSON;
@@ -466,6 +467,37 @@ __PACKAGE__->register_method({
 	$res->{cpu} = $stat->{cpu};
 	$res->{wait} = $stat->{wait};
 
+	if (my $fh = IO::File->new ("/proc/stat", "r")) {
+	    my ($uptime_ticks) = PVE::ProcFSTools::read_proc_uptime(1);
+	    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->{cpustat}->{user} = int($1);
+		    $res->{cpustat}->{nice} = int($2);
+		    $res->{cpustat}->{system} = int($3);
+		    $res->{cpustat}->{idle} = int($4);
+		    $res->{cpustat}->{iowait} = int($5);
+		    $res->{cpustat}->{irq} = int($6);
+		    $res->{cpustat}->{softirq} = int($7);
+		    $res->{cpustat}->{steal} = int($8);
+		    $res->{cpustat}->{guest} = int($9);
+		    $res->{cpustat}->{guest_nice} = int($10);
+		    $res->{cpustat}->{uptime_ticks} = $uptime_ticks;
+		} elsif ($line =~ m|^cpu(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)(?:\s+(\d+)\s+(\d+))?|) {
+		    $res->{cpustat}->{"cpu" . $1}->{user} = int($2);
+		    $res->{cpustat}->{"cpu" . $1}->{nice} = int($3);
+		    $res->{cpustat}->{"cpu" . $1}->{system} = int($4);
+		    $res->{cpustat}->{"cpu" . $1}->{idle} = int($5);
+		    $res->{cpustat}->{"cpu" . $1}->{iowait} = int($6);
+		    $res->{cpustat}->{"cpu" . $1}->{irq} = int($7);
+		    $res->{cpustat}->{"cpu" . $1}->{softirq} = int($8);
+		    $res->{cpustat}->{"cpu" . $1}->{steal} = int($9);
+		    $res->{cpustat}->{"cpu" . $1}->{guest} = int($10);
+		    $res->{cpustat}->{"cpu" . $1}->{guest_nice} = int($11);
+		}
+	    }
+	    $fh->close;
+	}
+
 	my $meminfo = PVE::ProcFSTools::read_meminfo();
 	$res->{memory} = {
 	    free => $meminfo->{memfree},
-- 
2.46.0



--===============3198042199320840545==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

--===============3198042199320840545==--