Sync from SUSE:SLFO:Main powerpc-utils revision e11f0aba2af094f451ee6985591fe689
This commit is contained in:
parent
47ec395597
commit
6c5159b208
39
drmgr-pci-Return-0-for-success-from-do_replace.patch
Normal file
39
drmgr-pci-Return-0-for-success-from-do_replace.patch
Normal file
@ -0,0 +1,39 @@
|
||||
From 3a8127ad7fe6615a8c6e8a3f0965addfdf888b38 Mon Sep 17 00:00:00 2001
|
||||
From: Haren Myneni <haren@linux.ibm.com>
|
||||
Date: Fri, 14 Feb 2025 21:43:33 -0800
|
||||
Subject: [PATCH] drmgr/pci: Return 0 for success from do_replace()
|
||||
|
||||
Patch-mainline: expected 1.3.14
|
||||
Git-commit: 3a8127ad7fe6615a8c6e8a3f0965addfdf888b38
|
||||
|
||||
Added replace_add_work() in commit f40a63b15c563 to support
|
||||
replacement node and the partner node. But this function returns
|
||||
0 for user input and 1 for success which caused do_replace()
|
||||
returns 1. This patch fixes the problem with return 0.
|
||||
|
||||
Fixes: f40a63b15c563 ("drmgr/pci: Add multipath partner device support for hotplug replace")
|
||||
Signed-off-by: Haren Myneni <haren@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
---
|
||||
src/drmgr/drslot_chrp_pci.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/drmgr/drslot_chrp_pci.c b/src/drmgr/drslot_chrp_pci.c
|
||||
index 4c41fcd..91c08e9 100644
|
||||
--- a/src/drmgr/drslot_chrp_pci.c
|
||||
+++ b/src/drmgr/drslot_chrp_pci.c
|
||||
@@ -1051,9 +1051,10 @@ static int do_replace(struct dr_node *all_nodes)
|
||||
}
|
||||
|
||||
usr_prompt = prompt_save;
|
||||
+ return rc;
|
||||
}
|
||||
|
||||
- return rc;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
int valid_pci_options(void)
|
||||
--
|
||||
2.47.1
|
||||
|
132
lparstat-Fix-negative-values-for-idle-PURR.patch
Normal file
132
lparstat-Fix-negative-values-for-idle-PURR.patch
Normal file
@ -0,0 +1,132 @@
|
||||
From 18a6dbca81b443d3cb7037d8bd39da014b4055ee Mon Sep 17 00:00:00 2001
|
||||
From: Saket Kumar Bhaskar <skb99@linux.ibm.com>
|
||||
Date: Mon, 13 Jan 2025 13:43:39 +0530
|
||||
Subject: [PATCH] lparstat: Fix negative values for %idle PURR
|
||||
|
||||
Patch-mainline: expected 1.3.14
|
||||
Git-commit: 18a6dbca81b443d3cb7037d8bd39da014b4055ee
|
||||
|
||||
In certain scenarios, the %idle PURR metric displays negative values [1],
|
||||
while %busy PURR exceeds 100% giving users false impression of resource
|
||||
utilisation. This occurs when delta_purr becomes greater than delta_tb,
|
||||
causing the following expression to yield a negative value, particularly
|
||||
during 100% system utilization for %idle PURR:
|
||||
|
||||
%idle = (delta_tb - delta_purr + delta_idle_purr) / delta_tb * 100;
|
||||
|
||||
Without change:
|
||||
|
||||
./lparstat -E 1 30
|
||||
|
||||
System Configuration
|
||||
type=Shared mode=Uncapped smt=8 lcpu=20 mem=208057792 kB cpus=42 ent=2.00
|
||||
|
||||
---Actual--- -Normalized-
|
||||
%busy %idle Frequency %busy %idle
|
||||
------ ------ ------------- ------ ------
|
||||
103.88 -3.88 2.75GHz[ 98%] 101.80 0.00
|
||||
103.46 -3.46 2.67GHz[ 95%] 98.28 1.49
|
||||
101.53 -1.53 2.74GHz[ 98%] 99.50 0.51
|
||||
103.41 -3.41 2.70GHz[ 96%] 99.27 0.37
|
||||
|
||||
The delta_tb is computed using get_scaled_tb, which calculates the
|
||||
timebase for a given time difference. Previously, nanoseconds were
|
||||
ignored in the calculation of time difference, which led to delta_tb
|
||||
being underestimated.
|
||||
|
||||
This patch addresses the issue by incorporating nanoseconds into the
|
||||
time difference, ensuring precise calculations.
|
||||
|
||||
Also, rename get_time() to get_time_ns() to denote it returns time in
|
||||
nanoseconds. get_delta_time() is introduced as a wrapper to get delta
|
||||
time in seconds.
|
||||
|
||||
With change:
|
||||
./lparstat -E 1 30
|
||||
|
||||
System Configuration
|
||||
type=Shared mode=Uncapped smt=8 lcpu=20 mem=208057792 kB cpus=42 ent=2.00
|
||||
|
||||
---Actual--- -Normalized-
|
||||
%busy %idle Frequency %busy %idle
|
||||
------ ------ ------------- ------ ------
|
||||
99.52 0.48 2.74GHz[ 98%] 97.53 2.66
|
||||
99.53 0.47 2.71GHz[ 97%] 96.54 3.67
|
||||
99.49 0.51 2.71GHz[ 97%] 96.51 3.87
|
||||
99.51 0.49 2.70GHz[ 97%] 96.53 3.90
|
||||
99.48 0.52 2.69GHz[ 96%] 95.50 4.38
|
||||
|
||||
[1] https://github.com/ibm-power-utilities/powerpc-utils/issues/103
|
||||
|
||||
Signed-off-by: Saket Kumar Bhaskar <skb99@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
---
|
||||
src/lparstat.c | 17 +++++++++++------
|
||||
1 file changed, 11 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/lparstat.c b/src/lparstat.c
|
||||
index fe8b0fc..db22316 100644
|
||||
--- a/src/lparstat.c
|
||||
+++ b/src/lparstat.c
|
||||
@@ -254,7 +254,7 @@ long long get_delta_value(char *se_name)
|
||||
return (value - old_value);
|
||||
}
|
||||
|
||||
-void get_time()
|
||||
+void get_time_ns(void)
|
||||
{
|
||||
struct sysentry *se;
|
||||
struct timespec ts;
|
||||
@@ -266,7 +266,12 @@ void get_time()
|
||||
|
||||
se = get_sysentry("time");
|
||||
sprintf(se->value, "%lld",
|
||||
- (long long)ts.tv_sec);
|
||||
+ (long long)ts.tv_sec * 1000000000LL + (long long)ts.tv_nsec);
|
||||
+}
|
||||
+
|
||||
+double get_delta_time(void)
|
||||
+{
|
||||
+ return (get_delta_value("time") / 1000000000.0);
|
||||
}
|
||||
|
||||
int get_time_base()
|
||||
@@ -307,7 +312,7 @@ double get_scaled_tb(void)
|
||||
se = get_sysentry("online_cores");
|
||||
online_cores = atoi(se->value);
|
||||
|
||||
- elapsed = get_delta_value("time");
|
||||
+ elapsed = get_delta_time();
|
||||
|
||||
se = get_sysentry("timebase");
|
||||
timebase = atoi(se->value);
|
||||
@@ -386,7 +391,7 @@ void get_cpu_physc(struct sysentry *unused_se, char *buf)
|
||||
|
||||
physc = delta_purr / delta_tb;
|
||||
} else {
|
||||
- elapsed = get_delta_value("time");
|
||||
+ elapsed = get_delta_time();
|
||||
|
||||
se = get_sysentry("timebase");
|
||||
timebase = atoi(se->value);
|
||||
@@ -415,7 +420,7 @@ void get_cpu_app(struct sysentry *unused_se, char *buf)
|
||||
float timebase, app, elapsed_time;
|
||||
long long new_app, old_app;
|
||||
|
||||
- elapsed_time = get_delta_value("time");
|
||||
+ elapsed_time = get_delta_time();
|
||||
|
||||
se = get_sysentry("timebase");
|
||||
timebase = atof(se->value);
|
||||
@@ -1018,7 +1023,7 @@ void init_sysdata(void)
|
||||
{
|
||||
int rc = 0;
|
||||
|
||||
- get_time();
|
||||
+ get_time_ns();
|
||||
parse_lparcfg();
|
||||
parse_proc_stat();
|
||||
parse_proc_ints();
|
||||
--
|
||||
2.47.1
|
||||
|
50
lparstat-print-memory-mode-correctly.patch
Normal file
50
lparstat-print-memory-mode-correctly.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From b6f50dc565eea17ce35389555489e9d8da3be9f3 Mon Sep 17 00:00:00 2001
|
||||
From: Shrikanth Hegde <sshegde@linux.ibm.com>
|
||||
Date: Mon, 3 Mar 2025 09:36:47 +0530
|
||||
Subject: [PATCH] lparstat: print memory mode correctly
|
||||
|
||||
Patch-mainline: expected 1.3.14
|
||||
Git-commit: b6f50dc565eea17ce35389555489e9d8da3be9f3
|
||||
|
||||
Starting from power10, active memory sharing(AMS) is not supported.
|
||||
So from power10 onwards the H_GET_MPP hcall fails and hence
|
||||
corresponding fields in lparcfg are not populated, such as
|
||||
entitled_memory_pool_number etc.
|
||||
|
||||
Use gcc builtins and print memory model as dedicated for power10
|
||||
onwards.
|
||||
|
||||
Suggested-by: Peter Bergner <bergner@linux.ibm.com>
|
||||
Signed-off-by: Shrikanth Hegde <sshegde@linux.ibm.com>
|
||||
[tyreld: fixup arch test to use newly defined BUILTIN wrapper]
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
---
|
||||
src/common/cpu_info_helpers.h | 6 ++++++
|
||||
src/lparstat.c | 6 +++++-
|
||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: powerpc-utils-1.3.13/src/lparstat.c
|
||||
===================================================================
|
||||
--- powerpc-utils-1.3.13.orig/src/lparstat.c
|
||||
+++ powerpc-utils-1.3.13/src/lparstat.c
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <sched.h>
|
||||
#include <signal.h>
|
||||
+#include <sys/auxv.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#include "lparstat.h"
|
||||
@@ -789,7 +790,11 @@ void get_memory_mode(struct sysentry *se
|
||||
struct sysentry *tmp;
|
||||
|
||||
tmp = get_sysentry("entitled_memory_pool_number");
|
||||
- if (atoi(tmp->value) == 65535)
|
||||
+ /*
|
||||
+ * from power10 onwards Active Memory Sharing(AMS) is not
|
||||
+ * supported. Hence always display it as dedicated for those
|
||||
+ */
|
||||
+ if (atoi(tmp->value) == 65535 || getauxval(AT_HWCAP2) & PPC_FEATURE2_ARCH_3_1)
|
||||
sprintf(buf, "Dedicated");
|
||||
else
|
||||
sprintf(buf, "Shared");
|
@ -1,3 +1,21 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 5 15:20:45 UTC 2025 - Michal Suchanek <msuchanek@suse.de>
|
||||
|
||||
- Fix negative values of idle PURR (bsc#1238322 ltc#210808)
|
||||
* lparstat-Fix-negative-values-for-idle-PURR.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 5 10:00:34 UTC 2025 - Michal Suchanek <msuchanek@suse.de>
|
||||
|
||||
- drmgr/pci: Return 0 for success from do_replace() (jsc#PED-9914).
|
||||
* drmgr-pci-Return-0-for-success-from-do_replace.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 4 10:24:35 UTC 2025 - Michal Suchanek <msuchanek@suse.de>
|
||||
|
||||
- Fix memory mode display on POWER10 (bsc#1237409 ltc#211627)
|
||||
* lparstat-print-memory-mode-correctly.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 27 17:34:47 UTC 2025 - Michal Suchanek <msuchanek@suse.de>
|
||||
|
||||
|
@ -29,6 +29,9 @@ Patch1: powerpc-utils-lsprop.patch
|
||||
Patch2: ofpathname_powernv.patch
|
||||
Patch3: fix_kexec_service_name_for_suse.patch
|
||||
Patch4: libvirt-service-dep.patch
|
||||
Patch5: lparstat-print-memory-mode-correctly.patch
|
||||
Patch6: drmgr-pci-Return-0-for-success-from-do_replace.patch
|
||||
Patch7: lparstat-Fix-negative-values-for-idle-PURR.patch
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: libnuma-devel
|
||||
|
Loading…
x
Reference in New Issue
Block a user