Compare commits

..

10 Commits

Author SHA1 Message Date
89796d4677 Import from AlmaLinux stable repository 2024-05-31 18:01:45 +00:00
CentOS Sources
823d2c3f95 import powerpc-utils-1.3.10-3.el8 2023-05-17 02:49:47 +00:00
CentOS Sources
fd6e519638 import powerpc-utils-1.3.10-1.el8 2022-11-08 14:35:32 +00:00
CentOS Sources
13c6ec98fe import powerpc-utils-1.3.9-2.el8_6 2022-10-26 06:06:49 +00:00
CentOS Sources
a63ddfb23f import powerpc-utils-1.3.9-1.el8 2022-05-10 11:34:07 +00:00
CentOS Sources
4e93e02826 import powerpc-utils-1.3.8-9.el8_5 2022-02-01 20:14:34 +00:00
CentOS Sources
147605391e import powerpc-utils-1.3.8-7.el8 2021-11-25 11:51:04 +00:00
CentOS Sources
968142c851 import powerpc-utils-1.3.8-5.el8 2021-11-25 11:51:00 +00:00
CentOS Sources
7c2ca81d12 import powerpc-utils-1.3.6-12.el8_3 2021-11-25 11:50:57 +00:00
CentOS Sources
aeb08e3947 import powerpc-utils-1.3.6-11.el8 2021-11-25 11:50:54 +00:00
26 changed files with 785 additions and 997 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/powerpc-utils-1.3.6.tar.gz SOURCES/powerpc-utils-1.3.10.tar.gz

View File

@ -1 +0,0 @@
67ca5ca55c65fb5f28c77b258784ebeaf1eea208 SOURCES/powerpc-utils-1.3.6.tar.gz

View File

@ -1,85 +0,0 @@
From 4fe0e76e1d02787b4cf60eafd2fb3667897becf4 Mon Sep 17 00:00:00 2001
From: Michael Bringmann <mwb@linux.vnet.ibm.com>
Date: Tue, 23 Jul 2019 15:58:21 -0500
Subject: [PATCH 1/1] powerpc-utils: Suppress errors reading kernel
files
A problem was observed with the evaluation of the '${devspec}'
by the script 'ofpathname'. This patch provided improved
handling of errors within that script, and by some of the
follow-on uses of the tool by the 'bootlist' script.
* Deal with error messages returned sometimes by evaluation
of ${devspec} in 'ofpathname'.
* Strip embedded nulls from values provided by kernel files,
especially, /proc/device-tree${devspec}/namespace/name,
in 'ofpathname'.
* Redirect more error messages to /dev/null
Signed-off-by: Michael Bringmann <mwb@linux.vnet.ibm.com>
---
scripts/bootlist | 8 ++++----
scripts/ofpathname | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/scripts/bootlist b/scripts/bootlist
index 65926d7..5ce20cf 100755
--- a/scripts/bootlist
+++ b/scripts/bootlist
@@ -169,7 +169,7 @@ get_logical_device_name()
local devname=$1
local logical_name
- logical_name=`$OFPATHNAME -l $devname 2>/dev/null`
+ logical_name=`$OFPATHNAME -l $devname 2>/dev/null | tr -d '\000'`
if [[ $? -ne 0 ]]; then
echo ""
else
@@ -207,11 +207,11 @@ show_bootlist()
local devlist=$1
local i
- for i in `$NVRAM --print-config=${devlist} | sed 's/ /\n/g'`; do
+ for i in `$NVRAM --print-config=${devlist} 2> /dev/null | sed 's/ /\n/g'`; do
if [[ $TRANSLATE_NAMES = "yes" ]]; then
name=`get_logical_device_name $i`
if [[ -z $name ]]; then
- echo "Could not translate $i to logical device name"
+ echo "Could not translate $i to logical device name" 2>&1
else
case $name in
eth*) parse_eth_info $name $i ;;
@@ -230,7 +230,7 @@ show_bootlist()
. $PSERIES_PLATFORM
if [[ $platform != $PLATFORM_PSERIES_LPAR ]]; then
- echo "bootlist: is not supported on the $platform_name platform"
+ echo "bootlist: is not supported on the $platform_name platform" 2>&1
exit 1
fi
diff --git a/scripts/ofpathname b/scripts/ofpathname
index c37c6bd..09c0209 100755
--- a/scripts/ofpathname
+++ b/scripts/ofpathname
@@ -656,7 +656,7 @@ l2of_nvme()
goto_dir $PWD "device/devspec"
- devspec=`$CAT $PWD/device/devspec`
+ devspec=`$CAT $PWD/device/devspec | tr -d '\000'`
if [[ -n $devspec ]]; then
found=1
break
@@ -681,7 +681,7 @@ l2of_nvme()
# Device type is usually 'namespace'.
# Get it from device-tree just in case.
- devtype=`$CAT /proc/device-tree${devspec}/namespace/name`
+ devtype=`$CAT /proc/device-tree${devspec}/namespace/name | tr -d '\000'` 2> /dev/null
if [[ -z $devtype ]]; then
err $ERR_NO_OFPATH
fi
--
1.8.3.1

View File

@ -1,14 +0,0 @@
#!/bin/sh
if [ "$1" = "--version" ]; then
echo This version of nvsetenv is just a wrapper to invoke nvram
exit 0
fi
if [ -z "$1" ]; then
nvram --print-config
elif [ -z "$2" ]; then
nvram --print-config="$1"
else
nvram --update-config "$1"="$2"
fi
exit $?

1
SOURCES/nx-gzip.udev Normal file
View File

@ -0,0 +1 @@
KERNEL=="nx-gzip", MODE="0666"

View File

@ -1,35 +0,0 @@
From ae66fdee8e73ba460b2fbc592f1bc79574c5e02d Mon Sep 17 00:00:00 2001
From: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Date: Mon, 16 Nov 2015 18:29:17 +0530
Subject: [PATCH] Makefile fix
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
---
Makefile.am | 10 +++++++++-
Makefile.in | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index e6be23e..b521794 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -43,7 +43,15 @@ man_MANS = \
man/lsslot.8 \
man/ppc64_cpu.8 \
man/errinjct.8 \
- man/rtas_dbg.8
+ man/rtas_dbg.8 \
+ man/lsdevinfo.8 \
+ man/rtas_event_decode.8 \
+ man/ls-vdev.8 \
+ man/lsprop.8 \
+ man/drmgr.8 \
+ man/ls-veth.8 \
+ man/nvsetenv.8 \
+ man/ls-vscsi.8
EXTRA_DIST += $(bin_SCRIPTS) $(sbin_SCRIPTS) $(man_MANS)
--
2.1.0

View File

@ -0,0 +1,11 @@
diff -up powerpc-utils-1.3.10/Makefile.am.me powerpc-utils-1.3.10/Makefile.am
--- powerpc-utils-1.3.10/Makefile.am.me 2022-06-03 12:35:01.335312481 +0200
+++ powerpc-utils-1.3.10/Makefile.am 2022-06-03 14:11:58.453820076 +0200
@@ -229,7 +229,6 @@ install-data-hook:
$(INSTALL_DATA) systemd/smtstate.service $(DESTDIR)${systemd_unit_dir}/
$(INSTALL_DATA) systemd/hcn-init.service $(DESTDIR)${systemd_unit_dir}/
$(INSTALL_DATA) var/lib/powerpc-utils/smt.state $(DESTDIR)/var/lib/@PACKAGE@/
- $(INSTALL_SCRIPT) scripts/functions.suse $(DESTDIR)/usr/lib/@PACKAGE@/
$(INSTALL_SCRIPT) scripts/smtstate $(DESTDIR)@sbindir@
sed -i -e 's,$${exec_prefix},@prefix@,g' $(DESTDIR)${systemd_unit_dir}/smt_off.service
sed -i -e 's,$${exec_prefix},@prefix@,g' $(DESTDIR)${systemd_unit_dir}/smtstate.service

View File

@ -0,0 +1,84 @@
commit 73ba26c1240a25e7699449e82cfc09dad10fed80
Author: Sathvika Vasireddy <sv@linux.ibm.com>
Date: Fri Dec 9 15:26:46 2022 +0530
lparstat: Fix negative values seen while running lparstat with -E option
Negative values are seen while running lparstat with -E option.
This is because delta_purr value is less than delta_idle_purr.
Given that these values are read from different sources, a
small variation in the values is possible. So, in such cases,
round down delta_idle_purr to delta_purr.
Without this patch:
=====
System Configuration
type=Dedicated mode=Capped smt=8 lcpu=240 mem=67033290112 kB cpus=0
ent=240.00
---Actual--- -Normalized-
%busy %idle Frequency %busy %idle
------ ------ ------------- ------ ------
-0.03 100.02 3.93GHz[111%] 0.01 110.97
0.00 100.00 3.93GHz[111%] 0.01 110.99
-0.04 100.03 3.93GHz[111%] 0.01 110.98
0.06 99.95 3.93GHz[111%] 0.01 110.99
0.02 99.98 3.93GHz[111%] 0.01 110.99
=====
With this patch:
=====
System Configuration
type=Dedicated mode=Capped smt=8 lcpu=240 mem=67033290112 kB cpus=0
ent=240.00
---Actual--- -Normalized-
%busy %idle Frequency %busy %idle
------ ------ ------------- ------ ------
0.03 99.96 3.93GHz[111%] 0.01 110.98
0.00 100.00 3.93GHz[111%] 0.01 110.99
0.03 99.97 3.93GHz[111%] 0.01 110.99
0.00 100.00 3.93GHz[111%] 0.01 110.99
0.09 99.90 3.93GHz[111%] 0.01 110.99
=====
Reported-by: Shirisha Ganta <shirisha.ganta1@ibm.com>
Signed-off-by: Sathvika Vasireddy <sv@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/lparstat.c b/src/lparstat.c
index 31a4ee8..eebba1f 100644
--- a/src/lparstat.c
+++ b/src/lparstat.c
@@ -492,6 +492,15 @@ void get_cpu_util_purr(struct sysentry *unused_se, char *buf)
delta_purr = get_delta_value("purr");
delta_idle_purr = get_delta_value("idle_purr");
+ /*
+ * Given that these values are read from different
+ * sources (purr from lparcfg and idle_purr from sysfs),
+ * a small variation in the values is possible.
+ * In such cases, round down delta_idle_purr to delta_purr.
+ */
+ if (delta_idle_purr > delta_purr)
+ delta_idle_purr = delta_purr;
+
physc = (delta_purr - delta_idle_purr) / delta_tb;
physc *= 100.00;
@@ -507,6 +516,15 @@ void get_cpu_idle_purr(struct sysentry *unused_se, char *buf)
delta_purr = get_delta_value("purr");
delta_idle_purr = get_delta_value("idle_purr");
+ /*
+ * Given that these values are read from different
+ * sources (purr from lparcfg and idle_purr from sysfs),
+ * a small variation in the values is possible.
+ * In such cases, round down delta_idle_purr to delta_purr.
+ */
+ if (delta_idle_purr > delta_purr)
+ delta_idle_purr = delta_purr;
+
physc = (delta_purr - delta_idle_purr) / delta_tb;
idle = (delta_purr / delta_tb) - physc;
idle *= 100.00;

View File

@ -0,0 +1,46 @@
commit dee15756bcb287ccf39a904be07c90107b13844b
Author: Laurent Dufour <ldufour@linux.ibm.com>
Date: Wed May 3 10:50:15 2023 +0200
lparstat: Fix offline threads uninitialized entries
When some threads are offline, lparstat -E is failing like that:
$ ppc64_cpu --info # CPU 20 is offline
Core 0: 0* 1* 2* 3* 4* 5* 6* 7*
Core 1: 8* 9* 10* 11* 12* 13* 14* 15*
Core 2: 16* 17* 18* 19* 20 21* 22* 23*
Core 3: 24* 25* 26* 27* 28* 29* 30* 31*
Core 4: 32* 33* 34* 35* 36* 37* 38* 39*
Core 5: 40* 41* 42* 43* 44* 45* 46* 47*
$ lparstat -E
Failed to read /sys/devices/system/cpu/cpu0/spurr
The message is complaining about CPU0 but the real issue is that in
parse_sysfs_values() the test cpu_sysfs_fds[i].spurr >= 0 is valid even if
the entry has not been initialized (cpu_sysfs_fds is alloc cleared). So
if the number of threads online seen in assign_cpu_sysfs_fds is lower than
threads_in_system, the loop in parse_sysfs_values() will read uninitialized
entry, where .cpu=0.
To prevent that, unset entries in the cpu_sysfs_fds should have the spurr
fd set to -1.
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/lparstat.c b/src/lparstat.c
index a9e7bce..d2fdb3f 100644
--- a/src/lparstat.c
+++ b/src/lparstat.c
@@ -163,6 +163,10 @@ static int assign_cpu_sysfs_fds(int threads_in_system)
cpu_idx++;
}
+ /* Mark extra slots for offline threads unset, see parse_sysfs_values */
+ for (; cpu_idx < threads_in_system; cpu_idx++)
+ cpu_sysfs_fds[cpu_idx].spurr = -1;
+
return 0;
error:
fprintf(stderr, "Failed to open %s: %s\n",

View File

@ -0,0 +1,93 @@
commit b2672fa3d462217ccd057a2cd307af2448e78757
Author: Laurent Dufour <ldufour@linux.ibm.com>
Date: Wed May 3 10:50:14 2023 +0200
lparstat: report mixed SMT state
when SMT state is mixed like this one (CPU 4 is offline):
$ ppc64_cpu --info
Core 0: 0* 1* 2* 3* 4 5* 6* 7*
Core 1: 8* 9* 10* 11* 12* 13* 14* 15*
Core 2: 16* 17* 18* 19* 20* 21* 22* 23*
Core 3: 24* 25* 26* 27* 28* 29* 30* 31*
Core 4: 32* 33* 34* 35* 36* 37* 38* 39*
Core 5: 40* 41* 42* 43* 44* 45* 46* 47*
$ ppc64_cpu --smt
SMT=7: 0
SMT=8: 1-5
ppc64_cpu --smt is handling that nicely but lparstat failed reporting the
SMT state:
$ /usr/sbin/lparstat
Failed to get smt state
System Configuration
type=Dedicated mode=Capped smt=Capped lcpu=6 mem=65969728 kB cpus=0 ent=6.00
%user %sys %wait %idle physc %entc lbusy app vcsw phint
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
0.02 0.01 0.00 99.97 3.41 56.83 0.02 0.00 4061778 156
Makes lparstat reporting "smt=mixed" in that case.
__do_smt is now returning 0 when the SMT state is mixed instead of -1 which
is also reported when an error is detected.
This doesn't change the call made by ppc64_cpu which is using
print_smt_state=true and so is expecting a returned value equal to 0 or -1.
With that patch applied, lparstat print that in the above case:
$lparstat
System Configuration
type=Dedicated mode=Capped smt=Mixed lcpu=6 mem=65969728 kB cpus=0 ent=6.00
%user %sys %wait %idle physc %entc lbusy app vcsw phint
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
0.01 0.01 0.00 99.97 3.43 57.17 0.02 0.00 4105654 156
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/common/cpu_info_helpers.c b/src/common/cpu_info_helpers.c
index 925f220..c05d96d 100644
--- a/src/common/cpu_info_helpers.c
+++ b/src/common/cpu_info_helpers.c
@@ -245,7 +245,7 @@ int __do_smt(bool numeric, int cpus_in_system, int threads_per_cpu,
if (smt_state == 0)
smt_state = thread + 1;
else if (smt_state > 0)
- smt_state = -1; /* mix of SMT modes */
+ smt_state = 0; /* mix of SMT modes */
}
}
@@ -257,7 +257,7 @@ int __do_smt(bool numeric, int cpus_in_system, int threads_per_cpu,
printf("SMT=1\n");
else
printf("SMT is off\n");
- } else if (smt_state == -1) {
+ } else if (smt_state == 0) {
for (thread = 0; thread < threads_per_cpu; thread++) {
if (CPU_COUNT_S(cpu_state_size,
cpu_states[thread])) {
diff --git a/src/lparstat.c b/src/lparstat.c
index eebba1f..a9e7bce 100644
--- a/src/lparstat.c
+++ b/src/lparstat.c
@@ -884,13 +884,15 @@ void get_smt_mode(struct sysentry *se, char *buf)
}
smt_state = parse_smt_state();
- if (smt_state < 0) {
+ if (smt_state == -1) {
fprintf(stderr, "Failed to get smt state\n");
return;
}
if (smt_state == 1)
sprintf(buf, "Off");
+ else if (smt_state == 0)
+ sprintf(buf, "Mixed");
else
sprintf(buf, "%d", smt_state);
}

View File

@ -1,67 +1,18 @@
diff -up powerpc-utils-1.2.15/man/drmgr.8.man powerpc-utils-1.2.15/man/drmgr.8 diff -up powerpc-utils-1.3.5/man/pseries_platform.8.me powerpc-utils-1.3.5/man/pseries_platform.8
--- powerpc-utils-1.2.15/man/drmgr.8.man 2013-01-16 15:31:13.886591137 +0100 --- powerpc-utils-1.3.5/man/pseries_platform.8.me 2018-11-29 16:50:07.601034729 +0100
+++ powerpc-utils-1.2.15/man/drmgr.8 2013-01-16 15:31:13.886591137 +0100 +++ powerpc-utils-1.3.5/man/pseries_platform.8 2018-11-29 16:50:07.601034729 +0100
@@ -0,0 +1,60 @@ @@ -0,0 +1,11 @@
+.TH DRMGR "8" "Oct 2010" "Linux" "Linux on Power Service Tools" +.\"
+.\" Copyright (C) 2015 International Business Machines
+.\"
+.TH pseries_platform 8 "September 2015" Linux "Linux on Power Service Tools"
+.SH NAME +.SH NAME
+drmgr \- Dynamic Resource Manager. Utility used to perform DLPAR operations on a client partition. +pseries_platform \- identify the platform and display the name of platform
+
+.SH SYNOPSIS +.SH SYNOPSIS
+.B drmgr +.B /usr/bin/pseries_platform
+.RB [ \-w
+.IR minutes ]
+.RB [ \-d
+.IR detail_level ]
+.RB [ \-C | \-\-capabilities ]
+.RB [ \-h | \-\-help ]
+
+.B drmgr
+.RB { \-c " {" port " | " slot " | " phb " | " pci " | " mem " | " cpu }
+.RB | \-m }
+
+.B drmgr \-c
+.RB { port " | " slot " | " phb }
+.RB { \-a " | " \-r " | " \-Q "} " \-s
+.I drc_name
+
+.B drmgr \-c pci \-s
+.I slot
+.RB { \-i " | " \-a " [" \-I "] | " \-r " [" \-I "] | " \-R " [" \-I "]}"
+
+.B drmgr \-c mem
+.RB { \-a " | " \-r "} {" \-q
+.I quantity
+.BR \-p
+.RI { variable_weight " | " ent_capacity "} |"
+.RB { \-q
+.I quantity
+.RB "| " \-s
+.IR drc_name }}
+
+.B drmgr \-c cpu
+.RB { \-a " | " \-r "} {" \-q
+.I quantity
+.BR \-p
+.RI { variable_weight " | " ent_capacity }
+.RB [ \-s
+.IR drc_names ]
+
+
+
+.SH OVERVIEW
+.B drmgr
+program is a member of the ppc64-utils suite of utils.
+Use it to list DLPAR and hotplug capable slots.
+ +
+.SH DESCRIPTION +.SH DESCRIPTION
+.B drmgr +The \fIpseries_platform\fR tool can identify the platform and display the name of platform.
+is a utility to list DLPAR and hotplug capable slots.
+
+.SH AUTHOR
+.B drmgr
+was written by IBM Corporation
+.PP
+This manual page was written by Roman Rakus <rrakus@redhat.com>
diff -up powerpc-utils-1.2.15/man/lsdevinfo.8.man powerpc-utils-1.2.15/man/lsdevinfo.8 diff -up powerpc-utils-1.2.15/man/lsdevinfo.8.man powerpc-utils-1.2.15/man/lsdevinfo.8
--- powerpc-utils-1.2.15/man/lsdevinfo.8.man 2013-01-16 15:31:13.886591137 +0100 --- powerpc-utils-1.2.15/man/lsdevinfo.8.man 2013-01-16 15:31:13.886591137 +0100
+++ powerpc-utils-1.2.15/man/lsdevinfo.8 2013-01-16 15:31:13.886591137 +0100 +++ powerpc-utils-1.2.15/man/lsdevinfo.8 2013-01-16 15:31:13.886591137 +0100
@ -306,3 +257,95 @@ diff -up powerpc-utils-1.2.15/man/rtas_event_decode.8.man powerpc-utils-1.2.15/m
+.BI \-w " width" +.BI \-w " width"
+limit the output to the specified width, default width is 80 characters. The width must be > 0 and < 1024. +limit the output to the specified width, default width is 80 characters. The width must be > 0 and < 1024.
+ +
diff -up powerpc-utils-1.3.8/man/hcnmgr.8.me powerpc-utils-1.3.8/man/hcnmgr.8
--- powerpc-utils-1.3.8/man/hcnmgr.8.me 2021-02-08 13:18:50.115407652 +0100
+++ powerpc-utils-1.3.8/man/hcnmgr.8 2021-02-08 13:18:43.734322981 +0100
@@ -0,0 +1,47 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
+.TH HCNMGR "1" "hcnmgr contains a set of commands to support migratable SR_IOV logical port." "hcnmgr"
+.SH NAME
+hcnmgr \- hcnmgr contains a set of commands to support migratable SR_IOV logical port.
+.SH SYNOPSIS
+.B hcnmgr|hcnrmhcn|hcnrmdev|hcnqrydev|hcnversion
+[options]
+.SH DESCRIPTION
+hcnmgr contains a set of commands to support migratable SR_IOV logical port.
+The new commands configure/query/remove network devices. New commands should
+be called from the HMC, rather than directly from linux LPAR
+.PP
+Usage: hcncfgdrc DRC_INDEX=<drc_index> [STAKE_TOKEN=NULL] [-d]
+.IP
+Configure a device to hybrid network HCN
+.PP
+Usage: hcnrmhcn HCN_ID=<hcnid>
+.IP
+Remove a hybrid network HCN given an HCN ID
+.PP
+Usage: hcnrmdev DRC_INDEX=<drc_index> HCN_ID=<hcnid>
+.IP
+Unconfigure device from HCN
+.PP
+Usage: hcnqrydev DRC_INDEX=<drc_index> HCN_ID=<hcnid>
+.IP
+Query a device given a DRC_INDEX or HCN ID
+.PP
+Usage: hcnversion
+.IP
+get the current version of the HCN support
+.PP
+Optional arguments.
+.TP
+\fB\-s\fR
+scan device\-tree and configure HCN
+.TP
+\fB\-V\fR
+Display version information and exit
+.TP
+\fB\-h\fR
+Display this help information and exit
+.SH AUTHOR
+.B hcnmgr
+was written by Mingming Cao <mingming.cao@ibm.com>.
+.PP
+This manual page was written by Than Ngo <than@redhat.com>.
diff -up powerpc-utils-1.3.5/man/update_flash_nv.8.me powerpc-utils-1.3.5/man/update_flash_nv.8
--- powerpc-utils-1.3.5/man/update_flash_nv.8.me 2018-11-29 16:49:51.344987106 +0100
+++ powerpc-utils-1.3.5/man/update_flash_nv.8 2018-11-29 16:49:42.589961458 +0100
@@ -0,0 +1,15 @@
+.\"
+.\" Copyright (C) 2015 International Business Machines
+.\"
+.TH pseries_platform 8 "September 2015" Linux "Linux on Power Service Tools"
+.SH NAME
+update_flash_nv \- is a simple wrapper script (update_flash) to pass the image.
+.SH SYNOPSIS
+.B /usr/bin/update_flash_nv
+
+.SH DESCRIPTION
+The \fIupdate_flash_nv\fR tool is simple wrapper script (update_flash) to pass the image.
+
+.SH SEE ALSO
+update_flash(8).
+
diff -up powerpc-utils-1.3.10/Makefile.am.me powerpc-utils-1.3.10/Makefile.am
--- powerpc-utils-1.3.10/Makefile.am.me 2022-06-03 12:35:01.335312481 +0200
+++ powerpc-utils-1.3.10/Makefile.am 2022-06-03 12:46:42.460763120 +0200
@@ -48,7 +48,17 @@ man_MANS = \
man/vcpustat.8 \
man/rtas_dbg.8 \
man/drmgr.8 \
- man/lparnumascore.8
+ man/lparnumascore.8 \
+ man/lsdevinfo.8 \
+ man/rtas_event_decode.8 \
+ man/ls-vdev.8 \
+ man/lsprop.8 \
+ man/ls-veth.8 \
+ man/nvsetenv.8 \
+ man/ls-vscsi.8 \
+ man/pseries_platform.8 \
+ man/update_flash_nv.8 \
+ man/hcnmgr.8
EXTRA_DIST += $(bin_SCRIPTS) $(sbin_SCRIPTS) $(man_MANS)

View File

@ -1,14 +0,0 @@
diff -up powerpc-utils-1.3.5/Makefile.am.me powerpc-utils-1.3.5/Makefile.am
--- powerpc-utils-1.3.5/Makefile.am.me 2018-11-30 16:51:45.760141937 +0100
+++ powerpc-utils-1.3.5/Makefile.am 2018-11-30 17:09:07.396294356 +0100
@@ -52,7 +52,9 @@ man_MANS = \
man/drmgr.8 \
man/ls-veth.8 \
man/nvsetenv.8 \
- man/ls-vscsi.8
+ man/ls-vscsi.8 \
+ man/pseries_platform.8 \
+ man/update_flash_nv.8
EXTRA_DIST += $(bin_SCRIPTS) $(sbin_SCRIPTS) $(man_MANS)

View File

@ -1,15 +0,0 @@
diff -up powerpc-utils-1.3.5/man/pseries_platform.8.me powerpc-utils-1.3.5/man/pseries_platform.8
--- powerpc-utils-1.3.5/man/pseries_platform.8.me 2018-11-29 16:50:07.601034729 +0100
+++ powerpc-utils-1.3.5/man/pseries_platform.8 2018-11-29 16:50:07.601034729 +0100
@@ -0,0 +1,11 @@
+.\"
+.\" Copyright (C) 2015 International Business Machines
+.\"
+.TH pseries_platform 8 "September 2015" Linux "Linux on Power Service Tools"
+.SH NAME
+pseries_platform \- identify the platform and display the name of platform
+.SH SYNOPSIS
+.B /usr/bin/pseries_platform
+
+.SH DESCRIPTION
+The \fIpseries_platform\fR tool can identify the platform and display the name of platform.

View File

@ -1,19 +0,0 @@
diff -up powerpc-utils-1.3.5/man/update_flash_nv.8.me powerpc-utils-1.3.5/man/update_flash_nv.8
--- powerpc-utils-1.3.5/man/update_flash_nv.8.me 2018-11-29 16:49:51.344987106 +0100
+++ powerpc-utils-1.3.5/man/update_flash_nv.8 2018-11-29 16:49:42.589961458 +0100
@@ -0,0 +1,15 @@
+.\"
+.\" Copyright (C) 2015 International Business Machines
+.\"
+.TH pseries_platform 8 "September 2015" Linux "Linux on Power Service Tools"
+.SH NAME
+update_flash_nv \- is a simple wrapper script (update_flash) to pass the image.
+.SH SYNOPSIS
+.B /usr/bin/update_flash_nv
+
+.SH DESCRIPTION
+The \fIupdate_flash_nv\fR tool is simple wrapper script (update_flash) to pass the image.
+
+.SH SEE ALSO
+update_flash(8).
+

View File

@ -1,198 +0,0 @@
commit 1d4147370a148b3a2ebadcf02abd4a6c9a763e6d
Author: Sourabh Jain <sourabhjain@linux.ibm.com>
Date: Sat Apr 27 10:18:32 2019 +0530
lparstat: add an option to print the lparstat report similar to legacy lparstat tool
This patch adds a new command line option (-l, --legacy) to allow
users to print the report similar to legacy lprastat tool without
affecting existing report format.
Changes done to make the current report format similar to legacy
report format are listed below:
1) The memory attribute will be printed in MB instead of KB.
2) cpus attribute will be referred as psize in legacy report format
and only printed in shared lpar environment.
3) On legacy lparstat tool the lcpu attribute is a combination of
two attributes, smt and number of online processor. Formula used
to calculate the lcpu is given below.
lcpu = smt * number of online processors
Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com>
Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
diff --git a/man/lparstat.8 b/man/lparstat.8
index 467f570..0f4c923 100644
--- a/man/lparstat.8
+++ b/man/lparstat.8
@@ -36,6 +36,11 @@ Online Memory Capacity.
.TP
cpus
Number of online physical processors in the pool.
+.RS
+This attribute is referred as
+.B psize
+in legacy mode and only available in shared LPAR environment.
+.RE
.TP
ent
Entitled processing capacity in processor units. This information is displayed only if the partition type is shared.
@@ -204,6 +209,26 @@ The variable memory capacity weight of the LPAR.
.TP
.SH
.TP
+\fB\-l, --legacy\fR
+Display the report in legacy format.
+.RS
+.RS
+Memory attribute in MB instead of KB.
+.RS
+.RE
+.B cpus
+attribute is referred as
+.B psize
+and only available for shared LPAR.
+.RS
+.RE
+.B lcpu
+attribute calculation: lcpu = smt * number of online processors.
+.RE
+.TP
+.RS
+.SH
+.TP
\fB\-h, --help\fR
Display the usage of lparstat.
.RS
diff --git a/src/lparstat.c b/src/lparstat.c
index 1abe54d..ffb2cfa 100644
--- a/src/lparstat.c
+++ b/src/lparstat.c
@@ -23,6 +23,7 @@
#include <stdlib.h>
#include <stdio.h>
+#include <stdbool.h>
#include <string.h>
#include <getopt.h>
#include <unistd.h>
@@ -35,6 +36,8 @@
#define SE_NOT_FOUND "???"
#define SE_NOT_VALID "-"
+static bool o_legacy = false;
+
struct sysentry *get_sysentry(char *name)
{
struct sysentry *se = &system_data[0];
@@ -479,7 +482,7 @@ void get_mem_total(struct sysentry *se, char *buf)
{
FILE *f;
char line[128];
- char *mem, *nl, *first_line;
+ char *mem, *nl, *first_line, *unit;
f = fopen("/proc/meminfo", "r");
if (!f) {
@@ -500,10 +503,21 @@ void get_mem_total(struct sysentry *se, char *buf)
mem++;
} while (*mem == ' ');
- nl = strchr(mem, '\n');
+ unit = strchr(mem, ' ');
+ *unit = '\0';
+
+ do {
+ unit++;
+ } while (*unit == ' ');
+
+ nl = strchr(unit, '\n');
*nl = '\0';
- sprintf(buf, "%s", mem);
+ if (o_legacy) {
+ sprintf(buf, "%d %s", atoi(mem) / 1024, "MB");
+ } else {
+ sprintf(buf, "%s %s", mem, unit);
+ }
}
void get_smt_mode(struct sysentry *se, char *buf)
@@ -604,7 +618,8 @@ void print_default_output(int interval, int count)
char *fmt = "%5s %5s %5s %8s %8s %5s %5s %5s %5s %5s\n";
char *descr;
char buf[128];
- int offset;
+ int offset, smt, active_proc;
+ char type[32];
char value[32];
char user[32], sys[32], wait[32], idle[32], physc[32], entc[32];
char lbusy[32], app[32], vcsw[32], phint[32];
@@ -612,16 +627,30 @@ void print_default_output(int interval, int count)
memset(buf, 0, 128);
get_sysdata("shared_processor_mode", &descr, value);
offset = sprintf(buf, "type=%s ", value);
+ sprintf(type, "%s", value);
get_sysdata("capped", &descr, value);
offset += sprintf(buf + offset, "mode=%s ", value);
get_sysdata("smt_state", &descr, value);
offset += sprintf(buf + offset, "smt=%s ", value);
+ if (!strcmp(value, "Off"))
+ smt = 1;
+ else
+ smt = atoi(value);
get_sysdata("partition_active_processors", &descr, value);
- offset += sprintf(buf + offset, "lcpu=%s ", value);
+ active_proc = atoi(value);
+ if (o_legacy)
+ offset += sprintf(buf + offset, "lcpu=%d ", active_proc*smt);
+ else
+ offset += sprintf(buf + offset, "lcpu=%s ", value);
get_sysdata("MemTotal", &descr, value);
offset += sprintf(buf + offset, "mem=%s ", value);
get_sysdata("active_cpus_in_pool", &descr, value);
- offset += sprintf(buf + offset, "cpus=%s ", value);
+ if (o_legacy) {
+ if (strcmp(type, "Dedicated"))
+ offset += sprintf(buf + offset, "psize=%s ", value);
+ } else {
+ offset += sprintf(buf + offset, "cpus=%s ", value);
+ }
get_sysdata("DesEntCap", &descr, value);
offset += sprintf(buf + offset, "ent=%s ", value);
@@ -662,6 +691,7 @@ static void usage(void)
"\t-h, --help Show this message and exit.\n"
"\t-V, --version \tDisplay lparstat version information.\n"
"\t-i Lists details on the LPAR configuration.\n"
+ "\t-l, --legacy Print the report in legacy format.\n"
"interval The interval parameter specifies the amount of time between each report.\n"
"count The count parameter specifies how many reports will be displayed.\n");
}
@@ -669,6 +699,7 @@ static void usage(void)
static struct option long_opts[] = {
{"version", no_argument, NULL, 'V'},
{"help", no_argument, NULL, 'h'},
+ {"legacy", no_argument, NULL, 'l'},
{0, 0, 0, 0},
};
@@ -684,12 +715,15 @@ int main(int argc, char *argv[])
exit(1);
}
- while ((c = getopt_long(argc, argv, "iVh",
+ while ((c = getopt_long(argc, argv, "iVhl",
long_opts, &opt_index)) != -1) {
switch(c) {
case 'i':
i_option = 1;
break;
+ case 'l':
+ o_legacy = true;
+ break;
case 'V':
printf("lparstat - %s\n", VERSION);
return 0;

View File

@ -1,94 +0,0 @@
commit 8b7978b114e5df89218daa9b4b48cc0e918ba917
Author: Sourabh Jain <sourabhjain@linux.ibm.com>
Date: Mon Feb 4 16:15:14 2019 +0530
lparstat: introduce the help command line option to print lparstat usage
This patch adds a function to print the usage of lparstat. Also,
a new element is added to structure option to handle long command
line argument for help.
Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
diff --git a/man/lparstat.8 b/man/lparstat.8
index 9721580..467f570 100644
--- a/man/lparstat.8
+++ b/man/lparstat.8
@@ -9,8 +9,9 @@
.SH NAME
lparstat \- Reports logical partition ( LPAR ) related information and statistics.
.SH SYNOPSIS
-.B /usr/sbin/lparstat
-[ -i ] [ interval [ count ] ]
+.B /usr/sbin/lparstat [ options ]
+.HP
+.B /usr/sbin/lparstat <interval> [ count ]
.SH DESCRIPTION
The \fIlparstat\fR command provides a report of LPAR related information and utilization statistics. This command provides a display of current LPAR related parameters and Hypervisor information, as well as utilization statistics for the LPAR.
@@ -202,6 +203,17 @@ Desired Variable Capacity Weight
The variable memory capacity weight of the LPAR.
.TP
.SH
+.TP
+\fB\-h, --help\fR
+Display the usage of lparstat.
+.RS
+.SH
+.TP
+\fB\-V, --version\fR
+Display the lparstat version information.
+.RS
+.SH
+.TP
interval
The
.B interval
diff --git a/src/lparstat.c b/src/lparstat.c
index c9b86fd..1abe54d 100644
--- a/src/lparstat.c
+++ b/src/lparstat.c
@@ -655,8 +655,20 @@ void print_default_output(int interval, int count)
} while (--count > 0);
}
+static void usage(void)
+{
+ printf("Usage: lparstat [ options ]\n\tlparstat <interval> [ count ]\n\n"
+ "options:\n"
+ "\t-h, --help Show this message and exit.\n"
+ "\t-V, --version \tDisplay lparstat version information.\n"
+ "\t-i Lists details on the LPAR configuration.\n"
+ "interval The interval parameter specifies the amount of time between each report.\n"
+ "count The count parameter specifies how many reports will be displayed.\n");
+}
+
static struct option long_opts[] = {
{"version", no_argument, NULL, 'V'},
+ {"help", no_argument, NULL, 'h'},
{0, 0, 0, 0},
};
@@ -672,7 +684,7 @@ int main(int argc, char *argv[])
exit(1);
}
- while ((c = getopt_long(argc, argv, "iV",
+ while ((c = getopt_long(argc, argv, "iVh",
long_opts, &opt_index)) != -1) {
switch(c) {
case 'i':
@@ -681,7 +693,12 @@ int main(int argc, char *argv[])
case 'V':
printf("lparstat - %s\n", VERSION);
return 0;
+ case 'h':
+ usage();
+ return 0;
case '?':
+ usage();
+ return 1;
default:
break;
}

View File

@ -0,0 +1,98 @@
commit b1b9e76de0f3ab1dfcd9426779fa20fd77cd5625
Author: Luciano Chavez <lnx1138@linux.ibm.com>
Date: Wed Aug 24 21:11:32 2022 -0500
lsslot: Fix lsslot -c mem output when using 4GB LMB size
When using a LMB size of 4GB, the output of lsslot -c mem would get
reported incorrectly as:
Dynamic Reconfiguration Memory (LMB size 0x0)
:
DRC Index: 80000001 Address: 100000000
Removable: No Associativity: (index: 1) 0 1 4 9
Section(s):
This patch changes the declaration of the _node_u._smem._lmb_size from
a uint32_t to uint64_t to store the value properly. Any variables that
store the lmb_size are also declared as uint64_t. In addition, we
use the PRIx64 macro in printf statements to properly print the
lmb_size value.
The patch also includes a necessary change to declare the global
variable block_sz_bytes as a uint64_t to fix an infinite loop in
the function get_mem_scns() when the above changes were introduced.
Signed-off-by: Luciano Chavez <lnx1138@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/drmgr/drmem.h b/src/drmgr/drmem.h
index db5a47f..48108c5 100644
--- a/src/drmgr/drmem.h
+++ b/src/drmgr/drmem.h
@@ -58,7 +58,7 @@ struct drconf_mem_v2 {
#define LMB_REVERSE_SORT 1
#define LMB_RANDOM_SORT 2
-extern int block_sz_bytes;
+extern uint64_t block_sz_bytes;
struct lmb_list_head *get_lmbs(unsigned int);
void free_lmbs(struct lmb_list_head *);
diff --git a/src/drmgr/drslot_chrp_mem.c b/src/drmgr/drslot_chrp_mem.c
index 3b78723..d37ee80 100644
--- a/src/drmgr/drslot_chrp_mem.c
+++ b/src/drmgr/drslot_chrp_mem.c
@@ -33,7 +33,7 @@
#include "drmem.h"
#include "common_numa.h"
-int block_sz_bytes = 0;
+uint64_t block_sz_bytes = 0;
static char *state_strs[] = {"offline", "online"};
static char *usagestr = "-c mem {-a | -r} {-q <quantity> -p {variable_weight | ent_capacity} | {-q <quantity> | -s [<drc_name> | <drc_index>]}}";
@@ -118,7 +118,7 @@ free_lmbs(struct lmb_list_head *lmb_list)
static int
get_mem_scns(struct dr_node *lmb)
{
- uint32_t lmb_sz = lmb->lmb_size;
+ uint64_t lmb_sz = lmb->lmb_size;
uint64_t phys_addr = lmb->lmb_address;
uint32_t mem_scn;
int rc = 0;
diff --git a/src/drmgr/lsslot.c b/src/drmgr/lsslot.c
index 87f876e..83e9e85 100644
--- a/src/drmgr/lsslot.c
+++ b/src/drmgr/lsslot.c
@@ -741,7 +741,7 @@ int print_drconf_mem(struct lmb_list_head *lmb_list)
if (usr_drc_name)
drc_index = strtol(usr_drc_name, NULL, 0);
- printf("Dynamic Reconfiguration Memory (LMB size 0x%x)\n",
+ printf("Dynamic Reconfiguration Memory (LMB size 0x%"PRIx64")\n",
lmb_list->lmbs->lmb_size);
for (lmb = lmb_list->lmbs; lmb; lmb = lmb->next) {
@@ -808,7 +808,7 @@ int lsslot_chrp_mem(void)
if (lmb_list->drconf_buf) {
print_drconf_mem(lmb_list);
} else {
- printf("lmb size: 0x%x\n", lmb_list->lmbs->lmb_size);
+ printf("lmb size: 0x%"PRIx64"\n", lmb_list->lmbs->lmb_size);
printf("%-20s %-5s %c %s\n", "Memory Node", "Name", 'R',
"Sections");
printf("%-20s %-5s %c %s\n", "-----------", "----", '-',
diff --git a/src/drmgr/ofdt.h b/src/drmgr/ofdt.h
index 26c943a..bd90810 100644
--- a/src/drmgr/ofdt.h
+++ b/src/drmgr/ofdt.h
@@ -94,7 +94,7 @@ struct dr_node {
union {
struct mem_info {
uint64_t _address;
- uint32_t _lmb_size;
+ uint64_t _lmb_size;
uint32_t _lmb_aa_index;
struct mem_scn *_mem_scns;
struct of_node *_of_node;

View File

@ -1,31 +0,0 @@
commit b5fea40ac98d1c9a685d98c011e88180c31ca0be
Author: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Date: Wed Feb 20 15:44:17 2019 +0530
man/update_flash: Add details to extract rpm format image
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
diff --git a/man/update_flash.8 b/man/update_flash.8
index 254fbac..4ae10d8 100644
--- a/man/update_flash.8
+++ b/man/update_flash.8
@@ -225,6 +225,17 @@ following the steps outlined here:
.P
http://publib.boulder.ibm.com/infocenter/powersys/v3r1m5/index.jsp?topic=/p7hatl/iphblresetserverp6.htm
+.P
+.B RPM format image
+.fi
+For "rpm format" images, the file will have a .rpm extension. It can be extracted
+using below command:
+
+ rpm2cpio <rpm filename> | cpio -idmv
+.fi
+.P
+This will extract files under current directory. Pass <image>.img file to this script.
+
.P
.B AIX format image
.fi

View File

@ -1,40 +0,0 @@
commit bc928b06605371b72c7fe8ec7e81886114a9e9d4
Author: Sourabh Jain <sourabhjain@linux.ibm.com>
Date: Thu Jan 31 14:25:21 2019 +0530
lparstat: restrict the physc and entc attribute values to two decimal places
Print format of physical processors consumed (physc) and percentage of
the entitled capacity consumed (entc) attributes has changed from six
decimal places to two.
The least possible value allowed for processor entitlement to a LPAR
is 0.05 so printing physc and entc values with such a high precision
is incorrect.
Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com>
Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
diff --git a/src/lparstat.c b/src/lparstat.c
index ec57c1a..c9b86fd 100644
--- a/src/lparstat.c
+++ b/src/lparstat.c
@@ -176,7 +176,7 @@ void get_cpu_physc(struct sysentry *unused_se, char *buf)
physc = (new_purr - old_purr)/timebase/elapsed;
}
- sprintf(buf, "%.6f", physc);
+ sprintf(buf, "%.2f", physc);
}
void get_per_entc(struct sysentry *unused_se, char *buf)
@@ -188,7 +188,7 @@ void get_per_entc(struct sysentry *unused_se, char *buf)
get_sysdata("DesEntCap", &descr, entc);
get_sysdata("physc", &descr, physc);
- sprintf(buf, "%.6f", atof(physc) / atof(entc) * 100.0);
+ sprintf(buf, "%.2f", atof(physc) / atof(entc) * 100.0);
}
void get_cpu_app(struct sysentry *unused_se, char *buf)

View File

@ -1,195 +0,0 @@
commit dd6da6b329bac2743d1c80b5556b494c923c11ad
Author: Michael Bringmann <mwb@linux.vnet.ibm.com>
Date: Mon Apr 29 11:25:18 2019 -0500
scripts: Improve handling of errors from subsidiary scripts
This patch is to fix the handling of errors by 'lsdevinfo' from
invocations of 'ofpathname' that also encounter errors. Error
messages from 'ofpathname' were being sent through 'stdout', and
interpreted as valid data by a number of script instructions in
'lsdevinfo'. Following is an example of such a failure when the
error results were forwarded to an associated HMC.
2019-02-19 22:05:38.212 [TID-5f68--72195] VIOS_CACHE: CacheVios.<-> saveCacheData 3*9080-M9S*130A068 cmd=lsdevinfo -c -q physloc=U78CD.001.FZH0128-P1-C1-T3-S4 -F status
2019-02-19 22:05:38.212 [TID-5f68--72195] RMC_VIOS: PIRmcViosClient.stdErr=/bin/ls: cannot access /sys/class/net/ofpathname:: No such file or directory
/bin/ls: cannot access Could: No such file or directory
/bin/ls: cannot access not: No such file or directory
/bin/ls: cannot access retrieve: No such file or directory
/bin/ls: cannot access logical: No such file or directory
/bin/ls: cannot access device: No such file or directory
/bin/ls: cannot access name: No such file or directory
/bin/ls: cannot access for: No such file or directory
/bin/ls: cannot access Open: No such file or directory
/bin/ls: cannot access Firmware: No such file or directory
/bin/ls: cannot access path: No such file or directory
/bin/ls: cannot access "/pci@800000029008004/ethernet@0"./device/driver: No such file or directory
This patch makes the following changes:
* Redirects the error messages from 'ofpathname' to stderr
* Adds more checks to 'lsdevinfo' to filter out stderr text
from input to various parsing commands.
Signed-off-by: Michael Bringmann <mwb@linux.vnet.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
diff --git a/scripts/lsdevinfo b/scripts/lsdevinfo
index 4ef98d7..85019e9 100755
--- a/scripts/lsdevinfo
+++ b/scripts/lsdevinfo
@@ -225,7 +225,7 @@ show_eth ()
# Look at every vNIC device
for dev in $($LS -d /proc/device-tree/vdevice/vnic* 2> /dev/null); do
# use ofpathname to get the device name (i.e. eth0)
- name=$($OFPATHNAME -l $(echo $dev | $SED -e "s/\/proc\/device-tree//"))
+ name=$($OFPATHNAME -l $(echo $dev | $SED -e "s/\/proc\/device-tree//") 2> /dev/null)
connection=$(echo $dev | $SED -e "s/\/proc\/device-tree\/vdevice\/l-lan@//")
parent="vio"
@@ -246,7 +246,7 @@ done
# Look at every ibmveth (Virtual Ethernet) device
for dev in $($LS -d /proc/device-tree/vdevice/l-lan* 2> /dev/null); do
# use ofpathname to get the device name (i.e. eth0)
- name=$($OFPATHNAME -l $(echo $dev | $SED -e "s/\/proc\/device-tree//"))
+ name=$($OFPATHNAME -l $(echo $dev | $SED -e "s/\/proc\/device-tree//") 2> /dev/null)
connection=$(echo $dev | $SED -e "s/\/proc\/device-tree\/vdevice\/l-lan@//")
parent="vio"
@@ -268,7 +268,7 @@ done
for pci_dev in $($LS -d /proc/device-tree/pci* 2> /dev/null); do
for dev in $($LS -d $pci_dev/ethernet* 2> /dev/null); do
# use ofpathname to get the device name (i.e. eth0)
- name=$($OFPATHNAME -l $(echo $dev | $SED -e "s/\/proc\/device-tree//"))
+ name=$($OFPATHNAME -l $(echo $dev | $SED -e "s/\/proc\/device-tree//") 2> /dev/null)
connection=$(echo $pci_dev | $SED -e "s/\/proc\/device-tree\/pci@//")
parent="pci"
@@ -280,7 +280,7 @@ for pci_dev in $($LS -d /proc/device-tree/pci* 2> /dev/null); do
class="adapter"
subclass="pci"
prefix="eth"
- driver=$($LS -l /sys/class/net/$name/device/driver |
+ driver=$($LS -l /sys/class/net/$name/device/driver 2> /dev/null |
$SED -e "s/^.*\///")
status=1
@@ -312,11 +312,11 @@ for dev in $($LS -d /proc/device-tree/vdevice/v-scsi* 2> /dev/null) ; do
prefix="host"
driver="ibmvscsic"
- host=$($LS -d /sys/devices/vio/$slot/host*/)
+ host=$($LS -d /sys/devices/vio/$slot/host*/ 2> /dev/null)
if [[ -d $host/scsi_host ]]; then
- scsihost=$($LS -d $host/scsi_host/host*/)
+ scsihost=$($LS -d $host/scsi_host/host*/ 2> /dev/null)
else
- scsihost=$($LS -d $host/scsi_host*/)
+ scsihost=$($LS -d $host/scsi_host*/ 2> /dev/null)
fi
if [[ $(cat $scsihost/state) == "running" ]] ; then
@@ -365,12 +365,12 @@ for dev in $($LS -d /proc/device-tree/vdevice/v-scsi* 2> /dev/null) ; do
fi
# loop through the targets for this host.
- for t in $($LS -d $host/target*); do
+ for t in $($LS -d $host/target* 2> /dev/null); do
target=$(echo $($LS -d $t/$($LS $t | $GREP -v uevent | $GREP -v power | $GREP -v subsystem)))
if [[ ! -d $target/block ]]; then
- name=$(echo $($LS -d $target/block*) | $SED -e "s/.*://")
+ name=$(echo $($LS -d $target/block* 2> /dev/null) | $SED -e "s/.*://")
else
- name=$($LS $target/block)
+ name=$($LS $target/block 2> /dev/null)
fi
conn=$($OFPATHNAME /dev/$name 2> /dev/null | $SED -e "s/.*disk@//")
@@ -446,7 +446,7 @@ for dev in $($LS -d /proc/device-tree/vdevice/vfc-client* 2> /dev/null) ; do
slot=$(echo $dev | $SED -e "s/\/proc\/device-tree\/vdevice\/vfc-client@//")
# there is only one host per device, assign it to the path's name
- for host in $($LS -d /sys/devices/vio/$slot/host*) ; do
+ for host in $($LS -d /sys/devices/vio/$slot/host* 2> /dev/null) ; do
parent=$(echo $host | $SED -e "s/.*\///")
name=$parent
@@ -457,11 +457,11 @@ for dev in $($LS -d /proc/device-tree/vdevice/vfc-client* 2> /dev/null) ; do
prefix="host"
driver="ibmvfc"
- host=$($LS -d /sys/devices/vio/$slot/host*/)
+ host=$($LS -d /sys/devices/vio/$slot/host*/ 2> /dev/null)
if [[ -d $host/scsi_host ]]; then
- scsihost=$($LS -d $host/scsi_host/host*/)
+ scsihost=$($LS -d $host/scsi_host/host*/ 2> /dev/null)
else
- scsihost=$($LS -d $host/scsi_host*/)
+ scsihost=$($LS -d $host/scsi_host*/ 2> /dev/null)
fi
if [[ $(cat $scsihost/state) == "running" ]] ; then
@@ -510,16 +510,16 @@ for dev in $($LS -d /proc/device-tree/vdevice/vfc-client* 2> /dev/null) ; do
fi
# As opposed to ibmvscsi, there are multiple rports in each host
- for rport in $($LS -d $host/rport*); do
+ for rport in $($LS -d $host/rport* 2> /dev/null); do
# in ibmvfc there are two layers of directories before getting to
# the targets
- for t in $($LS -d $rport/target*); do
+ for t in $($LS -d $rport/target* 2> /dev/null); do
for target in $($LS $t | $GREP "[0-9]*:[0-9]*:[0-9]*:[0-9]*"); do
if [[ ! -d $t/$target/block ]]; then
name=$(echo $($LS -d $t/$target/block*) | $SED -e "s/.*://")
else
- name=$($LS $t/$target/block)
+ name=$($LS $t/$target/block 2> /dev/null)
fi
connection=$($OFPATHNAME /dev/$name 2> /dev/null | $SED -e "s/.*disk@//")
diff --git a/scripts/ofpathname b/scripts/ofpathname
index 1b2a1dd..c37c6bd 100755
--- a/scripts/ofpathname
+++ b/scripts/ofpathname
@@ -84,20 +84,20 @@ err()
fi
case $emsg in
- 1) echo "$OFPATHNAME: Could not retrieve Open Firmware device path"
- echo " for logical device \"$DEVNAME_ARG\"." ;;
+ 1) echo "$OFPATHNAME: Could not retrieve Open Firmware device path" 1>&2
+ echo " for logical device \"$DEVNAME_ARG\"." 1>&2 ;;
- 2) echo "$OFPATHNAME: sysfs (/sys) is needed and does not appear"
- echo " to be mounted on this system." ;;
+ 2) echo "$OFPATHNAME: sysfs (/sys) is needed and does not appear" 1>&2
+ echo " to be mounted on this system." 1>&2 ;;
- 3) echo "$OFPATHNAME: Could not find sysfs information for logical"
- echo " device \"$DEVNAME_ARG\"." ;;
+ 3) echo "$OFPATHNAME: Could not find sysfs information for logical" 1>&2
+ echo " device \"$DEVNAME_ARG\"." 1>&2 ;;
- 4) echo "$OFPATHANME: Logical device \"$DEVNAME_ARG\" does not appear"
- echo " to be configured." ;;
+ 4) echo "$OFPATHANME: Logical device \"$DEVNAME_ARG\" does not appear" 1>&2
+ echo " to be configured." 1>&2 ;;
- 5) echo "$OFPATHNAME: Could not retrieve logical device name for"
- echo " Open Firmware path \"$DEVNAME_ARG\"."
+ 5) echo "$OFPATHNAME: Could not retrieve logical device name for" 1>&2
+ echo " Open Firmware path \"$DEVNAME_ARG\"." 1>&2 ;;
esac
exit 1
@@ -1631,7 +1631,7 @@ of2l_nvme()
#
. $PSERIES_PLATFORM
if [[ $platform = $PLATFORM_POWERNV ]]; then
- echo "$OFPATHNAME: is not supported on the $platform_name platform"
+ echo "$OFPATHNAME: is not supported on the $platform_name platform" 1>&2
exit 1
fi

View File

@ -0,0 +1,29 @@
commit e1f1deb06d9168a95a381a2236e1d8c693d3d229
Author: Luciano Chavez <lnx1138@linux.ibm.com>
Date: Wed Aug 24 21:17:54 2022 -0500
lsslot: Explicity declare that lmb_address be displayed in hexadecimal
A printf statement used is lsslot.c was specifying the macro PRIu64 to
display the lmb_address. Depending on the compilation, this would
either display as a hexadecimal or decimal value.
This patch replaces PRIu64 with PRIx64 to explicitly declare to print
the value as hexadecimal as that was is normally expected of an address.
Signed-off-by: Luciano Chavez <lnx1138@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/drmgr/lsslot.c b/src/drmgr/lsslot.c
index 7ea0f8b..87f876e 100644
--- a/src/drmgr/lsslot.c
+++ b/src/drmgr/lsslot.c
@@ -756,7 +756,7 @@ int print_drconf_mem(struct lmb_list_head *lmb_list)
printf("%s: %s\n", lmb->drc_name,
lmb->is_owned ? "" : "Not Owned");
- printf(" DRC Index: %x Address: %"PRIu64"\n",
+ printf(" DRC Index: %x Address: %"PRIx64"\n",
lmb->drc_index, lmb->lmb_address);
printf(" Removable: %s Associativity: ",
lmb->is_removable ? "Yes" : "No ");

View File

@ -1,64 +0,0 @@
commit ea4db66e941720313af2c6b1afb32a74f3e360f4
Author: Michael Bringmann <mwb@linux.vnet.ibm.com>
Date: Tue Sep 10 14:31:42 2019 -0500
Safe bootlist update
This patch is intended to prevent problems with identifying or parsing
the bootlist devices from propagating into the system NVRAM configuration.
A number of such problems have been observed when processing USB devices.
* If 'bootlist' encounters an invalid OF_DEVPATH entry, it will print
an notice, but still continue on to write invalid data to nvram.
Changed to abort the script before writing bad data to nvram.
* When 'ofpathname' encounters an invalid 'devspec' file or invalid
value in a 'devspec' file, while trying to find the logical pathname
for a scsi device, it may continue to return the invalid 'devspec'
value to the caller/invoking script.
Changed to abort with an error message instead of returning that
invalid value to a caller like 'bootlist'.
Example:
# bootlist -m normal sdb
# bootlist -m normal -o
Could not translate (null)/scsi@0/sd@0,0 to logical device name
Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
diff --git a/scripts/bootlist b/scripts/bootlist
index 65926d7..acdaf89 100755
--- a/scripts/bootlist
+++ b/scripts/bootlist
@@ -459,6 +459,7 @@ if [[ ${#LOGICAL_NAMES[*]} -ne 0 ]]; then
if [[ -z ${OF_DEVPATH[$ctr]} ]]; then
echo "Device ${LOGICAL_NAMES[$ctr]} does not appear to be valid." >&2
+ exit 1
else
# See if this is an ethernet adapter. If so, the next entries
# may be parameters for the bootlist entry.
diff --git a/scripts/ofpathname b/scripts/ofpathname
index c37c6bd..dc452c4 100755
--- a/scripts/ofpathname
+++ b/scripts/ofpathname
@@ -803,9 +803,16 @@ l2of_scsi()
# move up directories until we find one with devspec information
goto_dir $PWD "devspec"
- OF_PATH=`$CAT $PWD/devspec`
+ if [[ -e $PWD/devspec ]]; then
+ OF_PATH=`$CAT $PWD/devspec`
+ else
+ err $ERR_NO_OFPATH
+ fi
+
if [[ -z $OF_PATH ]]; then
err $ERR_NO_OFPATH
+ elif [[ ! -e /proc/device-tree/$OF_PATH ]]; then
+ err $ERR_NO_OFPATH
fi
local vdev=${OF_PATH%/*}

View File

@ -0,0 +1,93 @@
commit f4c2b0d142f623e7dd28a5d685e446d41be75601
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date: Thu Aug 25 12:19:27 2022 +0530
lparstat: Fix display of mode for dedicated-donating partition
From the lparstat man page:
mode
Indicates whether the partition processor capacity is capped or uncapped
allowing it to consume idle cycles from the shared pool. Dedicated LPAR
is capped or donating.
However, on a dedicated partition, lparstat always displays the mode as
'Capped' today. Fix this by using 'DedDonMode' field from lparcfg for
determining the cycle donation status of a dedicated partition.
On a dedicated-donating partition:
$ grep -e shared -e DedDonMode -e capped /proc/powerpc/lparcfg
DedDonMode=1
capped=1
shared_processor_mode=0
Before this patch:
$ lparstat
System Configuration
type=Dedicated mode=Capped smt=8 lcpu=1 mem=3335424 kB cpus=0 ent=1.00
After this patch:
$ lparstat
System Configuration
type=Dedicated mode=Donating smt=8 lcpu=1 mem=3335424 kB cpus=0 ent=1.00
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Reviewed-by: Nathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/lparstat.c b/src/lparstat.c
index 0b30fc9..e998e8c 100644
--- a/src/lparstat.c
+++ b/src/lparstat.c
@@ -718,6 +718,16 @@ void get_capped_mode(struct sysentry *se, char *buf)
sprintf(buf, "%s", value);
}
+void get_dedicated_mode(struct sysentry *se, char *buf)
+{
+ const char *value = "Capped";
+
+ if (se->value[0] == '1')
+ value = "Donating";
+
+ sprintf(buf, "%s", value);
+}
+
void get_percent_entry(struct sysentry *se, char *buf)
{
float value;
@@ -1057,7 +1067,10 @@ void print_system_configuration(void)
get_sysdata("shared_processor_mode", &descr, value);
offset = sprintf(buf, "type=%s ", value);
sprintf(type, "%s", value);
- get_sysdata("capped", &descr, value);
+ if (!strcmp(value, "Dedicated"))
+ get_sysdata("DedDonMode", &descr, value);
+ else
+ get_sysdata("capped", &descr, value);
offset += sprintf(buf + offset, "mode=%s ", value);
get_sysdata("smt_state", &descr, value);
offset += sprintf(buf + offset, "smt=%s ", value);
diff --git a/src/lparstat.h b/src/lparstat.h
index 26ed4ba..b7c88e9 100644
--- a/src/lparstat.h
+++ b/src/lparstat.h
@@ -47,6 +47,7 @@ typedef struct cpu_sysfs_file_desc cpu_sysfs_fd;
extern void get_smt_state(struct sysentry *, char *);
extern void get_capped_mode(struct sysentry *, char *);
+extern void get_dedicated_mode(struct sysentry *, char *);
extern void get_memory_mode(struct sysentry *, char *);
extern void get_percent_entry(struct sysentry *, char *);
extern void get_phys_cpu_percentage(struct sysentry *, char *);
@@ -110,7 +111,8 @@ struct sysentry system_data[] = {
{.name = "DesVarCapWt",
.descr = "Desired Variable Capacity Weight"},
{.name = "DedDonMode",
- .descr = "Dedicated Donation Mode"},
+ .descr = "Dedicated Donation Mode",
+ .get = &get_dedicated_mode},
{.name = "partition_entitled_capacity",
.descr = "Partition Entitled Capacity"},
{.name = "system_active_processors",

View File

@ -1,40 +0,0 @@
commit f567bdb8b2a3effdb4af06e2cf935b0350f2f881
Author: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Date: Wed Feb 20 15:44:09 2019 +0530
man/update_flash: Fix man page
Add heading to NOTES section.
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
diff --git a/man/update_flash.8 b/man/update_flash.8
index 0e5ccf6..254fbac 100644
--- a/man/update_flash.8
+++ b/man/update_flash.8
@@ -196,11 +196,15 @@ PowerNV
/sys/firmware/opal/{validate/manage/update}_flash
.fi
.SH NOTES
+.B Download firmware
+.fi
Firmware may be downloaded from the IBM website. Instructions for
downloading and installing the firmware image are also there, and
information there will be more up-to-date than this page.
.P
+.B Firmware update failure
+.fi
Various conditions can lead to a firmware update failure. If you
receive an authentication-related error, such as:
.P
@@ -222,6 +226,8 @@ following the steps outlined here:
http://publib.boulder.ibm.com/infocenter/powersys/v3r1m5/index.jsp?topic=/p7hatl/iphblresetserverp6.htm
.P
+.B AIX format image
+.fi
For older "AIX format" images, the file will have a .BIN extension. This
zip file happens to be an AIX binary, but it can be extracted with the
unzip command (with password from the web page):

View File

@ -0,0 +1,27 @@
commit acaf9c45a340f9bb49d6b21ba7ad60c21326ea73
Author: Mingming Cao <mmc@linux.vnet.ibm.com>
Date: Mon Nov 7 14:39:02 2022 -0800
hcnmgr: Fix setting primary slave across reboots
Using nmcli to set bonding of primary slave so that is set correctly
across reboots.
Signed-off-by: Mingming Cao <mmc@linux.vnet.ibm.com>
[tyreld: Reworded commit log]
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/scripts/hcnmgr b/scripts/hcnmgr
index 6946ff9..b5a6bfb 100644
--- a/scripts/hcnmgr
+++ b/scripts/hcnmgr
@@ -375,7 +375,8 @@ do_config_vdevice_nm() {
# if the device is primary, and link is up, force it as primary se
if [[ $MODE == "primary" ]]; then
hcnlog INFO "Change bonding primary slave to $DEVNAME"
- echo "$DEVNAME" >"$BOND_PATH"/primary
+ nmcli con mod id "$BONDNAME" +bond.options "primary=$DEVNAME"
+ nmcli con up "$BONDNAME"
fi
hcnlog DEBUG "do_config_vdevice: exit"

View File

@ -1,98 +1,81 @@
Name: powerpc-utils Name: powerpc-utils
Version: 1.3.6 Version: 1.3.10
Release: 5%{?dist} Release: 6%{?dist}
Summary: Utilities for PowerPC platforms Summary: PERL-based scripts for maintaining and servicing PowerPC systems
Group: System Environment/Base Group: System Environment/Base
License: GPLv2 License: GPLv2
URL: https://github.com/ibm-power-utilities/powerpc-utils URL: https://github.com/ibm-power-utilities/powerpc-utils
Source0: https://github.com/ibm-power-utilities/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz Source0: https://github.com/ibm-power-utilities/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
Source1: nvsetenv Source1: nx-gzip.udev
Patch0: powerpc-utils-1.3.10-manpages.patch
Patch1: powerpc-utils-1.3.10-distro.patch
# bz#2121470, Fix lsslot -c mem output when using 4GB LMB size
Patch3: powerpc-utils-b1b9e7-LMB_size_4GB.patch
Patch4: powerpc-utils-e1f1de-lmb_address_in_hexadecimal.patch
Patch5: powerpc-utils-fix_setting_primary_slave_across_reboots.patch
Patch6: powerpc-utils-f4c2b0-fix_display_of_mode_for_dedicated_donating_partition.patch
# lparstat: Fix-negative-values-seen-while-running-lpar
Patch10: powerpc-utils-1.3.10-lparstat-Fix-negative-values-seen-while-running-lpar.patch
# report-mixed-SMT-state
Patch11: powerpc-utils-1.3.10-lparstat-report-mixed-SMT-state.patch
# Fix-offline-threads-uninitialized-entries
Patch12: powerpc-utils-1.3.10-lparstat-Fix-offline-threads-uninitialized-entries.patch
ExclusiveArch: ppc %{power64} ExclusiveArch: ppc %{power64}
BuildRequires: gcc
BuildRequires: make
BuildRequires: automake BuildRequires: automake
BuildRequires: doxygen BuildRequires: doxygen
BuildRequires: zlib-devel BuildRequires: zlib-devel
BuildRequires: librtas-devel >= 1.4.0 BuildRequires: librtas-devel >= 1.4.0
BuildRequires: libservicelog-devel >= 1.0.1-2 BuildRequires: libservicelog-devel >= 1.0.1-2
BuildRequires: perl-generators BuildRequires: perl-generators
BuildRequires: systemd
BuildRequires: numactl-devel
Requires: /usr/bin/which
# rtas_dump explicit dependency # rtas_dump explicit dependency
Requires: perl(Data::Dumper) Requires: perl(Data::Dumper)
Requires: %{name}-core = %{version}-%{release} Requires: %{name}-core = %{version}-%{release}
Patch1: powerpc-utils-1.2.15-man.patch
Patch2: powerpc-utils-1.2.27-makefile.patch
# missing man pages: update_flash_nv, pseries_platform
Patch3: powerpc-utils-1.3.5-pseries_platform-man.patch
Patch4: powerpc-utils-1.3.5-update_flash_nv.patch
Patch5: powerpc-utils-1.3.5-install-man.patch
# lparstat and update_flash fixes
Patch6: powerpc-utils-f567bdb8b2a3effdb4af06e2cf935b0350f2f881.patch
Patch7: powerpc-utils-b5fea40ac98d1c9a685d98c011e88180c31ca0be.patch
Patch8: powerpc-utils-bc928b06605371b72c7fe8ec7e81886114a9e9d4.patch
Patch9: powerpc-utils-8b7978b114e5df89218daa9b4b48cc0e918ba917.patch
Patch10: powerpc-utils-1d4147370a148b3a2ebadcf02abd4a6c9a763e6d.patch
# Improve handling of errors from subsidiary scripts
Patch11: powerpc-utils-dd6da6b329bac2743d1c80b5556b494c923c11ad.patch
Patch12: 0001-powerpc-utils-Suppress-errors-reading-kern.v2.patch
Patch13: powerpc-utils-ea4db66e941720313af2c6b1afb32a74f3e360f4.patch
%description %description
Utilities for PowerPC platforms. PERL-based scripts for maintaining and servicing PowerPC systems.
%package core %package core
Summary: Core utilities for PowerPC platforms Summary: Core utilities for maintaining and servicing PowerPC systems
Requires(post): systemd
Requires: /usr/bin/awk Requires(preun): systemd
Requires: /usr/bin/basename Requires(postun): systemd
Requires: /usr/bin/bc Requires: kmod
Requires: /usr/bin/cat Requires: which
Requires: /usr/bin/cut Requires: gawk
Requires: /usr/bin/echo Requires: bc
Requires: /usr/bin/find Requires: findutils
Requires: /bin/grep Requires: grep
Requires: /usr/bin/head Requires: sed
Requires: /usr/bin/ls Requires: systemd-udev
Requires: /usr/bin/sed Requires: coreutils
Requires: /usr/bin/tr
Requires: /usr/bin/udevadm
%description core %description core
Core utilities for PowerPC platforms. Core utilities for maintaining and servicing PowerPC systems.
%prep %prep
%setup -q %autosetup -p1
%patch1 -p1 -b .man
%patch2 -p1 -b .makefile
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%build %build
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
./autogen.sh ./autogen.sh
%configure %configure --with-systemd=%{_unitdir} --disable-werror
make %{?_smp_mflags} make %{?_smp_mflags}
%install %install
make install DESTDIR=$RPM_BUILD_ROOT FILES= RCSCRIPTS= make install DESTDIR=$RPM_BUILD_ROOT FILES= RCSCRIPTS=
install -p -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_sbindir}/nvsetenv
#define pkgdocdir {_datadir}/doc/{name}-{version} #define pkgdocdir {_datadir}/doc/{name}-{version}
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
@ -103,22 +86,57 @@ install $RPM_BUILD_ROOT/usr/share/doc/packages/powerpc-utils/* -t $RPM_BUILD_ROO
rm -rf $RPM_BUILD_ROOT/usr/share/doc/packages/powerpc-utils rm -rf $RPM_BUILD_ROOT/usr/share/doc/packages/powerpc-utils
rm -f $RPM_BUILD_ROOT%{_pkgdocdir}/COPYING rm -f $RPM_BUILD_ROOT%{_pkgdocdir}/COPYING
# install udev rule for the nx-gzip accelerator
install -pDm 644 %{SOURCE1} %{buildroot}%{_udevrulesdir}/90-nx-gzip.rules
# remove init script and perl script. They are deprecated # remove init script and perl script. They are deprecated
rm -rf $RPM_BUILD_ROOT/etc/init.d/ibmvscsis.sh $RPM_BUILD_ROOT/usr/sbin/vscsisadmin rm -rf $RPM_BUILD_ROOT/etc/init.d/ibmvscsis.sh $RPM_BUILD_ROOT/usr/sbin/vscsisadmin
# nvsetenv is just a wrapper to nvram # nvsetenv is just a wrapper to nvram
ln -s nvram.8.gz $RPM_BUILD_ROOT/%{_mandir}/man8/nvsetenv.8.gz ln -s nvram.8.gz $RPM_BUILD_ROOT/%{_mandir}/man8/nvsetenv.8.gz
# symlink uspchrp
ln -s serv_config %{buildroot}%{_sbindir}/uspchrp
ln -s serv_config.8 %{buildroot}%{_mandir}/man8/uspchrp.8
# deprecated, use sosreport instead
rm -f $RPM_BUILD_ROOT%{_sbindir}/snap $RPM_BUILD_ROOT%{_mandir}/man8/snap.8*
%post core
%systemd_post hcn-init.service
# update the smt.state file with current SMT
/usr/sbin/smtstate --save >/dev/null 2>&1 || :
%preun core
%systemd_preun smtstate.service
%systemd_preun hcn-init.service
%postun core
%systemd_postun_with_restart smtstate.service
%systemd_postun_with_restart hcn-init.service
%posttrans core
systemctl enable hcn-init.service >/dev/null 2>&1 || :
%files %files
# PERL-based scripts for maintaining and servicing PowerPC systems
%doc README Changelog %doc README Changelog
%{_sbindir}/hvcsadmin
%{_sbindir}/rtas_dump
%{_mandir}/man8/hvcsadmin.8*
%{_mandir}/man8/rtas_dump.8*
%files core
%license COPYING
%dir %{_localstatedir}/lib/powerpc-utils
%config(noreplace) %{_localstatedir}/lib/powerpc-utils/smt.state
%{_unitdir}/smtstate.service
%{_unitdir}/smt_off.service
%{_unitdir}/hcn-init.service
%{_bindir}/amsstat %{_bindir}/amsstat
%{_sbindir}/activate_firmware %{_sbindir}/activate_firmware
%{_sbindir}/bootlist %{_sbindir}/bootlist
%{_sbindir}/drmgr
%{_sbindir}/errinjct %{_sbindir}/errinjct
%{_sbindir}/hvcsadmin
%{_sbindir}/lparstat %{_sbindir}/lparstat
%{_sbindir}/lsdevinfo %{_sbindir}/lsdevinfo
%{_sbindir}/lsprop %{_sbindir}/lsprop
@ -129,7 +147,6 @@ ln -s nvram.8.gz $RPM_BUILD_ROOT/%{_mandir}/man8/nvsetenv.8.gz
%{_sbindir}/nvsetenv %{_sbindir}/nvsetenv
%{_sbindir}/ppc64_cpu %{_sbindir}/ppc64_cpu
%{_sbindir}/rtas_dbg %{_sbindir}/rtas_dbg
%{_sbindir}/rtas_dump
%{_sbindir}/rtas_event_decode %{_sbindir}/rtas_event_decode
%{_sbindir}/rtas_ibm_get_vpd %{_sbindir}/rtas_ibm_get_vpd
%{_sbindir}/serv_config %{_sbindir}/serv_config
@ -138,18 +155,26 @@ ln -s nvram.8.gz $RPM_BUILD_ROOT/%{_mandir}/man8/nvsetenv.8.gz
%{_sbindir}/uesensor %{_sbindir}/uesensor
%{_sbindir}/update_flash %{_sbindir}/update_flash
%{_sbindir}/update_flash_nv %{_sbindir}/update_flash_nv
%{_sbindir}/uspchrp
# use sosreport from sos instead %{_sbindir}/hcncfgdrc
%exclude %{_sbindir}/snap %{_sbindir}/hcnmgr
%exclude %{_mandir}/man8/snap.8* %{_sbindir}/hcnqrydev
%{_sbindir}/hcnrmdev
%{_sbindir}/hcnrmhcn
%{_sbindir}/hcnversion
%{_sbindir}/vcpustat
%{_sbindir}/smtstate
%{_sbindir}/nvram
%{_sbindir}/ofpathname
%{_sbindir}/pseries_platform
%{_sbindir}/drmgr
%{_sbindir}/lparnumascore
%{_udevrulesdir}/90-nx-gzip.rules
%{_mandir}/man1/amsstat.1* %{_mandir}/man1/amsstat.1*
%{_mandir}/man5/lparcfg.5* %{_mandir}/man5/lparcfg.5*
%{_mandir}/man8/activate_firmware.8* %{_mandir}/man8/activate_firmware.8*
%{_mandir}/man8/bootlist.8* %{_mandir}/man8/bootlist.8*
%{_mandir}/man8/drmgr.8*
%{_mandir}/man8/errinjct.8* %{_mandir}/man8/errinjct.8*
%{_mandir}/man8/hvcsadmin.8*
%{_mandir}/man8/lparstat.8* %{_mandir}/man8/lparstat.8*
%{_mandir}/man8/lsdevinfo.8* %{_mandir}/man8/lsdevinfo.8*
%{_mandir}/man8/lsprop.8* %{_mandir}/man8/lsprop.8*
@ -160,7 +185,6 @@ ln -s nvram.8.gz $RPM_BUILD_ROOT/%{_mandir}/man8/nvsetenv.8.gz
%{_mandir}/man8/nvsetenv.8* %{_mandir}/man8/nvsetenv.8*
%{_mandir}/man8/ppc64_cpu.8* %{_mandir}/man8/ppc64_cpu.8*
%{_mandir}/man8/rtas_dbg.8* %{_mandir}/man8/rtas_dbg.8*
%{_mandir}/man8/rtas_dump.8*
%{_mandir}/man8/rtas_event_decode.8* %{_mandir}/man8/rtas_event_decode.8*
%{_mandir}/man8/rtas_ibm_get_vpd.8* %{_mandir}/man8/rtas_ibm_get_vpd.8*
%{_mandir}/man8/serv_config.8* %{_mandir}/man8/serv_config.8*
@ -168,21 +192,105 @@ ln -s nvram.8.gz $RPM_BUILD_ROOT/%{_mandir}/man8/nvsetenv.8.gz
%{_mandir}/man8/sys_ident.8* %{_mandir}/man8/sys_ident.8*
%{_mandir}/man8/uesensor.8* %{_mandir}/man8/uesensor.8*
%{_mandir}/man8/update_flash.8* %{_mandir}/man8/update_flash.8*
%{_mandir}/man8/update_flash_nv.8*
%{_mandir}/man8/pseries_platform.8* %{_mandir}/man8/pseries_platform.8*
%{_mandir}/man8/update_flash_nv.8*
%files core %{_mandir}/man8/uspchrp.8*
%license COPYING %{_mandir}/man8/vcpustat.8.gz
%{_mandir}/man8/smtstate.8.gz
%{_sbindir}/nvram %{_mandir}/man8/hcnmgr.8*
%{_sbindir}/ofpathname
%{_sbindir}/pseries_platform
%{_mandir}/man8/nvram.8* %{_mandir}/man8/nvram.8*
%{_mandir}/man8/ofpathname.8* %{_mandir}/man8/ofpathname.8*
%{_mandir}/man8/drmgr.8*
%{_mandir}/man8/lparnumascore.8*
%changelog %changelog
* Wed Jul 26 2023 Than Ngo <than@redhat.com> - 1.3.10-6
- Fix negative values seen while running lpar
- Fix lparstat error with mixed SMT state
Resolves: #2225135
* Sat Jun 17 2023 Than Ngo <than@redhat.com> - 1.3.10-5
- Resolves: #2207649, Add udev rule for the nx-gzip in to the core subpackage
* Tue Apr 25 2023 Than Ngo <than@redhat.com> - 1.3.10-4
- Resolves: #2166871, lparstat showing incorrect mode in a dedicated-donating LPAR
* Mon Nov 28 2022 Than Ngo <than@redhat.com> - 1.3.10-3
- Resolves: #2148878, HNV bond fails to come up with sriov interface as active slave
* Fri Oct 21 2022 Than Ngo <than@redhat.com> - 1.3.10-2
- Resolves: #2121481, Fix lsslot -c mem output when using 4GB LMB size
* Mon Jun 06 2022 Than Ngo <than@redhat.com> - 1.3.10-1
- Resolves: #2051330, Linux Hybrid Network Virtualization update
- Resolves: #2083469, smtstate --save command failed
* Fri May 13 2022 Than Ngo <than@redhat.com> - 1.3.9-3
- Resolves: #2059459, add new DRC type description strings for latest PCIe slot types
- Resolves: #2078514, Fix NM HNV setting primary slave
- Resolves: #2083469, smtstate test failed as smtstate --save command failed
* Thu Dec 09 2021 Than Ngo <than@redhat.com> - 1.3.9-1
- Resolves: #2028690, rebase to 1.3.9
* Thu Dec 02 2021 Than Ngo <than@redhat.com> - 1.3.8-10
- Related: #2022225, increase release
* Thu Nov 11 2021 Than Ngo <than@redhat.com> - 1.3.8-9
- Resolves: #2022225, enable support vnic as backend for HNV interfaces
* Thu Oct 07 2021 Than Ngo <than@redhat.com> - 1.3.8-8
- lsdevinfo: optimize criteria filtering
* Fri Jul 16 2021 Than Ngo <than@redhat.com> - 1.3.8-7
- Related: #1938420, Fix checking HCNID array size at boot time
* Thu Apr 01 2021 Than Ngo <than@redhat.com> - 1.3.8-6
- Resolves: #1935658, New lparstat -x option to report the security flavor
- Resolves: #1953818, Use od instead xxd
- Resolves: #1938420, rebase patch fix_boot-time_bonding_interface_cleanup_and_avoid_use_ifcfg
- Resolves: #1940358, ppc64_cpu --help does not list --version as an option
- Resolves: #1951068, take care of NUMA topology when removing memory (DLPAR)
* Wed Feb 03 2021 Than Ngo <than@redhat.com> - 1.3.8-5
- Resolves: #1924150, Fix boot-time bonding interface cleanup and avoid use ifcfg
* Mon Dec 21 2020 Than Ngo <than@redhat.com> - 1.3.8-4
- Resolves: #1909526, additional patches to support Linux Hybrid Network Virtualization
- Resolves: #1909135, move commands that dont depend on perl to core subpackage
* Tue Oct 06 2020 Than Ngo <than@redhat.com> - 1.3.8-3
- Resolves: #1868474, ofpathname: Use NVMe controller physical nsid
- Resolves: #1885532, sys_ident: Skip length field from search
* Thu Oct 01 2020 Than Ngo <than@redhat.com> - 1.3.8-2
- Related: #1853297, add missing hcnmgr manpage and Req on which
* Thu Oct 01 2020 Than Ngo <than@redhat.com> - 1.3.8-1
- Resolves: #1853297, rebase to 1.3.8
- Resolves: #1802181, SR-IOV - Linux Hybrid Network Virtualization
- Resolves: #1844421, Include vcpustat
* Wed Jun 24 2020 Than Ngo <than@redhat.com> - 1.3.6-11
- Resolves: #1847604, ofpathname: failed to boot
* Fri Jun 19 2020 Than Ngo <than@redhat.com> - 1.3.6-10
- Resolves: #1848839, update lparstat man page with -E option
* Fri May 22 2020 Than Ngo <than@redhat.com> - 1.3.6-9
- Resolves: #1837751, ofpathname: speed up l2of_scsi()
* Fri May 15 2020 Than Ngo <than@redhat.com> - 1.3.6-8
- Related: #1783285, update the patches V4
* Wed May 13 2020 Than Ngo <than@redhat.com> - 1.3.6-7
- Resolves: #1783285, Track and expose idle PURR and SPURR ticks
* Wed Mar 25 2020 Than Ngo <than@redhat.com> - 1.3.6-6
- Resolves: #1819566 - move drmgr in core to avoid pulling in Perl
- Resolves: #1806870 - ignored null byte in input
- Resolves: #1779197 - enable support for ibm,drc-info property
* Wed Dec 04 2019 Than Ngo <than@redhat.com> - 1.3.6-5 * Wed Dec 04 2019 Than Ngo <than@redhat.com> - 1.3.6-5
- Resolves: #1779257, Safe bootlist update - Resolves: #1779257, Safe bootlist update