Compare commits
No commits in common. "c8" and "imports/c8/powerpc-utils-1.3.6-5.el8" have entirely different histories.
c8
...
imports/c8
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/powerpc-utils-1.3.10.tar.gz
|
SOURCES/powerpc-utils-1.3.6.tar.gz
|
||||||
|
1
.powerpc-utils.metadata
Normal file
1
.powerpc-utils.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
67ca5ca55c65fb5f28c77b258784ebeaf1eea208 SOURCES/powerpc-utils-1.3.6.tar.gz
|
@ -0,0 +1,85 @@
|
|||||||
|
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
|
||||||
|
|
14
SOURCES/nvsetenv
Normal file
14
SOURCES/nvsetenv
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#!/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 +0,0 @@
|
|||||||
KERNEL=="nx-gzip", MODE="0666"
|
|
@ -1,18 +1,67 @@
|
|||||||
diff -up powerpc-utils-1.3.5/man/pseries_platform.8.me powerpc-utils-1.3.5/man/pseries_platform.8
|
diff -up powerpc-utils-1.2.15/man/drmgr.8.man powerpc-utils-1.2.15/man/drmgr.8
|
||||||
--- 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.man 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
|
+++ powerpc-utils-1.2.15/man/drmgr.8 2013-01-16 15:31:13.886591137 +0100
|
||||||
@@ -0,0 +1,11 @@
|
@@ -0,0 +1,60 @@
|
||||||
+.\"
|
+.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
|
||||||
+pseries_platform \- identify the platform and display the name of platform
|
+drmgr \- Dynamic Resource Manager. Utility used to perform DLPAR operations on a client partition.
|
||||||
|
+
|
||||||
+.SH SYNOPSIS
|
+.SH SYNOPSIS
|
||||||
+.B /usr/bin/pseries_platform
|
+.B drmgr
|
||||||
|
+.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
|
||||||
+The \fIpseries_platform\fR tool can identify the platform and display the name of platform.
|
+.B drmgr
|
||||||
|
+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
|
||||||
@ -257,95 +306,3 @@ 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)
|
|
||||||
|
|
35
SOURCES/powerpc-utils-1.2.27-makefile.patch
Normal file
35
SOURCES/powerpc-utils-1.2.27-makefile.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
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
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
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
|
|
@ -1,84 +0,0 @@
|
|||||||
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;
|
|
@ -1,46 +0,0 @@
|
|||||||
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",
|
|
@ -1,93 +0,0 @@
|
|||||||
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);
|
|
||||||
}
|
|
14
SOURCES/powerpc-utils-1.3.5-install-man.patch
Normal file
14
SOURCES/powerpc-utils-1.3.5-install-man.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
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)
|
||||||
|
|
15
SOURCES/powerpc-utils-1.3.5-pseries_platform-man.patch
Normal file
15
SOURCES/powerpc-utils-1.3.5-pseries_platform-man.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
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.
|
19
SOURCES/powerpc-utils-1.3.5-update_flash_nv.patch
Normal file
19
SOURCES/powerpc-utils-1.3.5-update_flash_nv.patch
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
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).
|
||||||
|
+
|
@ -0,0 +1,198 @@
|
|||||||
|
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;
|
@ -0,0 +1,94 @@
|
|||||||
|
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;
|
||||||
|
}
|
@ -1,98 +0,0 @@
|
|||||||
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;
|
|
@ -0,0 +1,31 @@
|
|||||||
|
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
|
@ -0,0 +1,40 @@
|
|||||||
|
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)
|
@ -0,0 +1,195 @@
|
|||||||
|
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
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
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 ");
|
|
@ -0,0 +1,64 @@
|
|||||||
|
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%/*}
|
@ -1,93 +0,0 @@
|
|||||||
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",
|
|
@ -0,0 +1,40 @@
|
|||||||
|
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):
|
@ -1,27 +0,0 @@
|
|||||||
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"
|
|
@ -1,81 +1,98 @@
|
|||||||
Name: powerpc-utils
|
Name: powerpc-utils
|
||||||
Version: 1.3.10
|
Version: 1.3.6
|
||||||
Release: 6%{?dist}
|
Release: 5%{?dist}
|
||||||
Summary: PERL-based scripts for maintaining and servicing PowerPC systems
|
Summary: Utilities for PowerPC platforms
|
||||||
|
|
||||||
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: nx-gzip.udev
|
Source1: nvsetenv
|
||||||
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
|
ExclusiveArch: ppc %{power64}
|
||||||
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}
|
BuildRequires: automake
|
||||||
|
BuildRequires: doxygen
|
||||||
BuildRequires: gcc
|
BuildRequires: zlib-devel
|
||||||
BuildRequires: make
|
BuildRequires: librtas-devel >= 1.4.0
|
||||||
BuildRequires: automake
|
BuildRequires: libservicelog-devel >= 1.0.1-2
|
||||||
BuildRequires: doxygen
|
BuildRequires: perl-generators
|
||||||
BuildRequires: zlib-devel
|
|
||||||
BuildRequires: librtas-devel >= 1.4.0
|
|
||||||
BuildRequires: libservicelog-devel >= 1.0.1-2
|
|
||||||
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
|
||||||
PERL-based scripts for maintaining and servicing PowerPC systems.
|
Utilities for PowerPC platforms.
|
||||||
|
|
||||||
|
|
||||||
%package core
|
%package core
|
||||||
Summary: Core utilities for maintaining and servicing PowerPC systems
|
Summary: Core utilities for PowerPC platforms
|
||||||
Requires(post): systemd
|
|
||||||
Requires(preun): systemd
|
Requires: /usr/bin/awk
|
||||||
Requires(postun): systemd
|
Requires: /usr/bin/basename
|
||||||
Requires: kmod
|
Requires: /usr/bin/bc
|
||||||
Requires: which
|
Requires: /usr/bin/cat
|
||||||
Requires: gawk
|
Requires: /usr/bin/cut
|
||||||
Requires: bc
|
Requires: /usr/bin/echo
|
||||||
Requires: findutils
|
Requires: /usr/bin/find
|
||||||
Requires: grep
|
Requires: /bin/grep
|
||||||
Requires: sed
|
Requires: /usr/bin/head
|
||||||
Requires: systemd-udev
|
Requires: /usr/bin/ls
|
||||||
Requires: coreutils
|
Requires: /usr/bin/sed
|
||||||
|
Requires: /usr/bin/tr
|
||||||
|
Requires: /usr/bin/udevadm
|
||||||
|
|
||||||
|
|
||||||
%description core
|
%description core
|
||||||
Core utilities for maintaining and servicing PowerPC systems.
|
Core utilities for PowerPC platforms.
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%setup -q
|
||||||
|
|
||||||
|
%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 --with-systemd=%{_unitdir} --disable-werror
|
%configure
|
||||||
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}}
|
||||||
@ -86,57 +103,22 @@ 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
|
||||||
@ -147,6 +129,7 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
|
|||||||
%{_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
|
||||||
@ -155,26 +138,18 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
|
|||||||
%{_sbindir}/uesensor
|
%{_sbindir}/uesensor
|
||||||
%{_sbindir}/update_flash
|
%{_sbindir}/update_flash
|
||||||
%{_sbindir}/update_flash_nv
|
%{_sbindir}/update_flash_nv
|
||||||
%{_sbindir}/uspchrp
|
|
||||||
%{_sbindir}/hcncfgdrc
|
# use sosreport from sos instead
|
||||||
%{_sbindir}/hcnmgr
|
%exclude %{_sbindir}/snap
|
||||||
%{_sbindir}/hcnqrydev
|
%exclude %{_mandir}/man8/snap.8*
|
||||||
%{_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*
|
||||||
@ -185,6 +160,7 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
|
|||||||
%{_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*
|
||||||
@ -192,105 +168,21 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
|
|||||||
%{_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/pseries_platform.8*
|
|
||||||
%{_mandir}/man8/update_flash_nv.8*
|
%{_mandir}/man8/update_flash_nv.8*
|
||||||
%{_mandir}/man8/uspchrp.8*
|
%{_mandir}/man8/pseries_platform.8*
|
||||||
%{_mandir}/man8/vcpustat.8.gz
|
|
||||||
%{_mandir}/man8/smtstate.8.gz
|
%files core
|
||||||
%{_mandir}/man8/hcnmgr.8*
|
%license COPYING
|
||||||
|
|
||||||
|
%{_sbindir}/nvram
|
||||||
|
%{_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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user