File lparstat-print-memory-mode-correctly.patch of Package powerpc-utils.39162
From 4443a68d523043d69195e5a5a27fb9fc7ae8c50f Mon Sep 17 00:00:00 2001
From: Shrikanth Hegde <sshegde@linux.ibm.com>
Date: Mon, 10 Mar 2025 22:29:16 +0530
Subject: [PATCH] lparstat: print memory mode correctly (revised)
Patch-mainline: expected 1.3.14
Git-commit: 4443a68d523043d69195e5a5a27fb9fc7ae8c50f
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 HWCAP mechanism 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>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
---
src/lparstat.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
Index: powerpc-utils-1.3.10/src/lparstat.c
===================================================================
--- powerpc-utils-1.3.10.orig/src/lparstat.c
+++ powerpc-utils-1.3.10/src/lparstat.c
@@ -36,6 +36,11 @@
#include "lparstat.h"
#include "pseries_platform.h"
#include "cpu_info_helpers.h"
+#include <sys/auxv.h>
+
+#ifndef PPC_FEATURE2_ARCH_3_1
+#define PPC_FEATURE2_ARCH_3_1 0x00040000
+#endif
#define LPARCFG_FILE "/proc/ppc64/lparcfg"
#define SE_NOT_FOUND "???"
@@ -790,7 +795,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");