Compare commits
No commits in common. "c8" and "c9-beta" have entirely different histories.
1
.powerpc-utils.metadata
Normal file
1
.powerpc-utils.metadata
Normal file
@ -0,0 +1 @@
|
||||
4596fced545f3c751ff2665663baaed0db7ab7ce SOURCES/powerpc-utils-1.3.10.tar.gz
|
@ -0,0 +1,171 @@
|
||||
From edf7ee0e03e60140bcbe34ec458e1361678a5dd2 Mon Sep 17 00:00:00 2001
|
||||
From: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
Date: Thu, 25 Jan 2024 23:49:21 -0500
|
||||
Subject: [PATCH] scripts/bootlist: Support multiple dev paths for a nvme boot
|
||||
device
|
||||
|
||||
Multipath splitter drawer is going to support two physical paths for
|
||||
each nvme device.
|
||||
This patch adds the support for multiple device/of paths for a nvme boot
|
||||
device.
|
||||
|
||||
For example,
|
||||
|
||||
U50EE.001.WZS000E-P3-C1-R1 U.2 PCI-E capable, Rev 4, 4x lanes with 2x
|
||||
lanes connected 0581:10:00.0
|
||||
U50EE.001.WZS000E-P3-C1-R2 U.2 PCI-E capable, Rev 4, 4x lanes with 2x
|
||||
lanes connected 0521:10:00.0
|
||||
|
||||
nvme-subsys1 -
|
||||
NQN=nqn.1994-11.com.samsung:nvme:PM1735a:2.5-inch:S6RUNE0R900042
|
||||
hostnqn=nqn.2014-08.org.nvmexpress:uuid:3c6c1ace-e9b1-4a17-8ff0-6a84d3dd15f4
|
||||
iopolicy=numa
|
||||
\
|
||||
+- nvme1 pcie 0523:20:00.0 live
|
||||
+- nvme0 pcie 0583:20:00.0 live
|
||||
|
||||
Node Generic SN Model
|
||||
Namespace Usage Format FW Rev
|
||||
--------------------- --------------------- --------------------
|
||||
---------------------------------------- ----------
|
||||
-------------------------- ---------------- --------
|
||||
/dev/nvme1n1 /dev/ng1n1 S6RUNE0R900042 1.6TB
|
||||
NVMe Gen4 U.2 SSD III 0x1 1.60 TB / 1.60 TB
|
||||
4 KiB + 0 B REV.SN66
|
||||
nvme0
|
||||
nvme1n1
|
||||
/pci@800000020000583/pci1014,6bc@0/namespace@1
|
||||
/pci@800000020000523/pci1014,6bc@0/namespace@1
|
||||
|
||||
Signed-off-by: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
---
|
||||
scripts/bootlist | 80 +++++++++++++++++++++++++++++++++++++++---------
|
||||
1 file changed, 66 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/scripts/bootlist b/scripts/bootlist
|
||||
index cc8718e..dcb5c00 100755
|
||||
--- a/scripts/bootlist
|
||||
+++ b/scripts/bootlist
|
||||
@@ -304,6 +304,21 @@ is_nvmf_device()
|
||||
fi
|
||||
}
|
||||
|
||||
+# is_multipath_nvme_device
|
||||
+# Check to see if this is a multipath nvme device
|
||||
+#
|
||||
+is_multipath_nvme_device()
|
||||
+{
|
||||
+ local res
|
||||
+
|
||||
+ res=`$FIND /sys/devices/virtual/nvme-subsystem -name $1 2>/dev/null`
|
||||
+ if [[ ${#res} = 0 ]]; then
|
||||
+ echo "no"
|
||||
+ else
|
||||
+ echo "yes"
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
# get_link
|
||||
# return the directory path that a link points to.
|
||||
# The only parameter is the link name.
|
||||
@@ -340,6 +355,32 @@ add_nvmf()
|
||||
fi
|
||||
}
|
||||
|
||||
+add_multipath_nvme()
|
||||
+{
|
||||
+ local DEVNAME=$1
|
||||
+
|
||||
+ ctrl_name=$DEVNAME
|
||||
+ local startctr=$ctr
|
||||
+
|
||||
+ local dir
|
||||
+ for dir in `$FIND /sys/devices/virtual/nvme-subsystem -name "$ctrl_name"`; do
|
||||
+ cd $dir
|
||||
+ cd ..
|
||||
+ for slave in `ls -d $PWD/nvme*`; do
|
||||
+ slavedev=${slave##*/}
|
||||
+ if [[ "$slavedev" != *nvme*n* ]] ; then
|
||||
+ LOGICAL_NAMES[$ctr]=${slavedev}
|
||||
+ ctr=$[$ctr + 1]
|
||||
+ fi
|
||||
+ done
|
||||
+ done
|
||||
+
|
||||
+ if [[ "$startctr" = "$ctr" ]] ; then
|
||||
+ LOGICAL_NAMES[$ctr]=$1
|
||||
+ ctr=$[$ctr + 1]
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
add_logical()
|
||||
{
|
||||
local DEVNAME=$1
|
||||
@@ -487,31 +528,40 @@ while [[ -n $1 ]]; do
|
||||
if [[ "$1" == *"dm-"* ]] ; then
|
||||
add_logical $1
|
||||
else
|
||||
- if [[ "$1" == *"nvme-of"* ]]; then
|
||||
+ if [[ "$1" == *"nvme-of"* ]] || [[ "$1" == *"namespace"* ]]; then
|
||||
ctrl_name=`get_logical_device_name $1`
|
||||
+ master_of_path=$1
|
||||
else
|
||||
ctrl_name=$1
|
||||
ctrl_name=${ctrl_name##*/}
|
||||
+ master_of_path=`get_of_device_name $1`
|
||||
fi
|
||||
+
|
||||
+ if [[ -z $master_of_path ]]; then
|
||||
+ echo "Device $1 does not appear to be valid." >&2
|
||||
+ exit 1
|
||||
+ fi
|
||||
+
|
||||
ctrl_name="${ctrl_name%n[0-9]*}"
|
||||
is_nvmf=$(is_nvmf_device $ctrl_name)
|
||||
if [[ $is_nvmf = "yes" ]]; then
|
||||
- if [[ "$1" == *"nvme-of"* ]]; then
|
||||
- master_of_path=$1
|
||||
- else
|
||||
- master_of_path=`get_of_device_name $1`
|
||||
- fi
|
||||
-
|
||||
- if [[ -z $master_of_path ]]; then
|
||||
- echo "Device $1 does not appear to be valid." >&2
|
||||
- exit 1
|
||||
- fi
|
||||
-
|
||||
namespace_base=${master_of_path##*/}
|
||||
DEVTYPE="nvme-of"
|
||||
add_nvmf $ctrl_name
|
||||
else
|
||||
- add_logical $1
|
||||
+ is_multipath_nvme=$(is_multipath_nvme_device $ctrl_name)
|
||||
+ if [[ $is_multipath_nvme = "yes" ]]; then
|
||||
+ if [[ "$master_of_path" == *namespace* ]] ; then
|
||||
+ namespace_base=${master_of_path##*/}
|
||||
+ else
|
||||
+ echo "Device $1 does not appear to be valid." >&2
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ DEVTYPE="multi-nvme"
|
||||
+ add_multipath_nvme $ctrl_name
|
||||
+ else
|
||||
+ add_logical $1
|
||||
+ fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -534,8 +584,10 @@ if [[ ${#LOGICAL_NAMES[*]} -ne 0 ]]; then
|
||||
if [[ -z ${OF_DEVPATH[$ctr]} ]]; then
|
||||
# See if this is an OF pathname
|
||||
OF_DEVPATH[$ctr]=`get_of_device_name ${LOGICAL_NAMES[$ctr]}`
|
||||
- if [[ $DEVTYPE = "nvme-of" ]]; then
|
||||
+ if [[ $DEVTYPE = "nvme-of" ]] || [[ $DEVTYPE = "multi-nvme" ]]; then
|
||||
OF_DEVPATH[$ctr]=${OF_DEVPATH[$ctr]}/$namespace_base
|
||||
+ else
|
||||
+ OF_DEVPATH[$ctr]=${OF_DEVPATH[$ctr]}
|
||||
fi
|
||||
else
|
||||
OF_DEVPATH[$ctr]=${LOGICAL_NAMES[$ctr]}
|
||||
--
|
||||
2.35.3
|
@ -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,265 +1,26 @@
|
||||
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.
|
||||
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 2013-01-16 15:31:13.886591137 +0100
|
||||
@@ -0,0 +1,39 @@
|
||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
||||
+.TH LSDEVINFO "8" "October 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+lsdevinfo - information on Virtual devices
|
||||
+
|
||||
+.SH SYNOPSIS
|
||||
+.B lsdevinfo
|
||||
+[\fI-q criteria\fR] [\fI-F format\fR] [\fI-R\fR] [\fI-c\fR] [\fI-h\fR]
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+Provide information on Virtual devices
|
||||
+.PP
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+\fB\-q\fR criteria
|
||||
+Specifies a criteria to select which devices are to be displayed.
|
||||
+.TP
|
||||
+\fB\-F\fR format
|
||||
+Specifies the set of attributes to be displayed.
|
||||
+.TP
|
||||
+\fB\-R\fR
|
||||
+Recursively display children of selected devices
|
||||
+.TP
|
||||
+\fB\-c\fR
|
||||
+Display output as a comma separated list for each device.
|
||||
+.TP
|
||||
+\fB\-V\fR
|
||||
+Display version information and exit
|
||||
+.TP
|
||||
+\fB\-h\fR
|
||||
+Display help information and exit
|
||||
+
|
||||
+.SH AUTHOR
|
||||
+.B lsdevinfo
|
||||
+was written by Santiago Leon <sleon@ec.ibm.com>.
|
||||
+.PP
|
||||
+This manual page was written by Roman Rakus <rrakus@redhat.com>.
|
||||
+
|
||||
diff -up powerpc-utils-1.2.15/man/lsprop.8.man powerpc-utils-1.2.15/man/lsprop.8
|
||||
--- powerpc-utils-1.2.15/man/lsprop.8.man 2013-01-16 15:31:13.886591137 +0100
|
||||
+++ powerpc-utils-1.2.15/man/lsprop.8 2013-01-16 15:31:13.886591137 +0100
|
||||
@@ -0,0 +1,42 @@
|
||||
+.TH LSPROP "8" "Sep 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+lsprop \- list properties
|
||||
+.SH SYNOPSIS
|
||||
+.B lsprop
|
||||
+.RB [ \-R ]
|
||||
+.RB [ \-m
|
||||
+.IR max-bytes ]
|
||||
+.RB [ \-w
|
||||
+.IR num-words ]
|
||||
+.RI [ FILE .\|.\|.]
|
||||
+.SH OVERVIEW
|
||||
+.B lsprop
|
||||
+program is a member of the ppc64-utils suite of utils.
|
||||
+Use it to list properties
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+.B lsprop
|
||||
+displays properties for
|
||||
+.IR FILE s
|
||||
+like Open Firmware
|
||||
+.I .properties
|
||||
+word.
|
||||
+If the
|
||||
+.I FILE
|
||||
+is not set, the current directory is used.
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+.B \-R
|
||||
+Process recursively
|
||||
+.TP
|
||||
+.BI \-m " max-bytes"
|
||||
+Read only first
|
||||
+.I max-bytes
|
||||
+bytes from the
|
||||
+.IR FILE s
|
||||
+.TP
|
||||
+.BI \-w " num-words"
|
||||
+Display up to
|
||||
+.I num-words
|
||||
+words per line
|
||||
diff -up powerpc-utils-1.2.15/man/ls-vdev.8.man powerpc-utils-1.2.15/man/ls-vdev.8
|
||||
--- powerpc-utils-1.2.15/man/ls-vdev.8.man 2013-01-16 15:31:13.886591137 +0100
|
||||
+++ powerpc-utils-1.2.15/man/ls-vdev.8 2013-01-16 15:31:13.886591137 +0100
|
||||
@@ -0,0 +1,25 @@
|
||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
||||
+.TH LS-VDEV "8" "October 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+ls-vdev \- information on Virtual SCSI adapters and devices
|
||||
+.SH SYNOPSIS
|
||||
+.BR ls-vdev " [" \-h " | " -V ]
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+Provide information on Virtual SCSI adapters and devices
|
||||
+.PP
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+\fB\-V\fR
|
||||
+Display version information and exit
|
||||
+.TP
|
||||
+\fB\-h\fR
|
||||
+Display help information and exit
|
||||
+.PP
|
||||
+
|
||||
+.SH AUTHOR
|
||||
+.B ls-vdev
|
||||
+was written by Brian King <brking@linux.vnet.ibm.com>.
|
||||
+.PP
|
||||
+This manual page was written by Roman Rakus <rrakus@redhat.com>.
|
||||
diff -up powerpc-utils-1.2.15/man/ls-veth.8.man powerpc-utils-1.2.15/man/ls-veth.8
|
||||
--- powerpc-utils-1.2.15/man/ls-veth.8.man 2013-01-16 15:31:13.887591102 +0100
|
||||
+++ powerpc-utils-1.2.15/man/ls-veth.8 2013-01-16 15:31:13.887591102 +0100
|
||||
@@ -0,0 +1,25 @@
|
||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
||||
+.TH LS-VETH "8" "October 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+ls-veth \- information on Virtual Ethernet devices
|
||||
+.SH SYNOPSIS
|
||||
+.BR ls-veth " [" \-h " | " -V ]
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+Provide information on Virtual Ethernet devices
|
||||
+.PP
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+\fB\-V\fR
|
||||
+Display version information and exit
|
||||
+.TP
|
||||
+\fB\-h\fR
|
||||
+Display help information and exit
|
||||
+.PP
|
||||
+
|
||||
+.SH AUTHOR
|
||||
+.B ls-veth
|
||||
+was written by Brian King <brking@linux.vnet.ibm.com>.
|
||||
+.PP
|
||||
+This manual page was written by Roman Rakus <rrakus@redhat.com>.
|
||||
diff -up powerpc-utils-1.2.15/man/ls-vscsi.8.man powerpc-utils-1.2.15/man/ls-vscsi.8
|
||||
--- powerpc-utils-1.2.15/man/ls-vscsi.8.man 2013-01-16 15:31:13.887591102 +0100
|
||||
+++ powerpc-utils-1.2.15/man/ls-vscsi.8 2013-01-16 15:31:13.887591102 +0100
|
||||
@@ -0,0 +1,25 @@
|
||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
||||
+.TH LS-VSCSI "8" "October 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+ls-vscsi \- information on Virtual devices
|
||||
+.SH SYNOPSIS
|
||||
+.BR ls-vscsi " [" \-h " | " -V ]
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+Provide information on Virtual devices
|
||||
+.PP
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+\fB\-V\fR
|
||||
+Display version information and exit
|
||||
+.TP
|
||||
+\fB\-h\fR
|
||||
+Display help information and exit
|
||||
+.PP
|
||||
+
|
||||
+.SH AUTHOR
|
||||
+.B ls-vscsi
|
||||
+was written by Brian King <brking@linux.vnet.ibm.com>.
|
||||
+.PP
|
||||
+This manual page was written by Roman Rakus <rrakus@redhat.com>.
|
||||
diff -up powerpc-utils-1.2.15/man/nvsetenv.8.man powerpc-utils-1.2.15/man/nvsetenv.8
|
||||
--- powerpc-utils-1.2.15/man/nvsetenv.8.man 2013-01-16 15:31:13.887591102 +0100
|
||||
+++ powerpc-utils-1.2.15/man/nvsetenv.8 2013-01-16 15:31:13.887591102 +0100
|
||||
@@ -0,0 +1,29 @@
|
||||
+.TH NVSETENV "8" "Oct 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+nvsetenv \- wrapper to invoke nvram
|
||||
+
|
||||
+.SH SYNOPSIS
|
||||
+.B nvsetenv
|
||||
+[ ARG1 ] [ ARG2 ]
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+.B nvsetenv
|
||||
+is just a wrapper to invoke nvram
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+
|
||||
+Without any argument, nvsetenv calls
|
||||
+.I nvram --print-config
|
||||
+
|
||||
+With one argument
|
||||
+.IR ARG1 ,
|
||||
+nvsetenv calls
|
||||
+.I nvram --print-config=ARG1
|
||||
+
|
||||
+With two arguments
|
||||
+.IR "ARG1 ARG2" ,
|
||||
+nvsetenv calls
|
||||
+.I nvram --update-config ARG1=ARG2
|
||||
+
|
||||
+.SH "SEE ALSO"
|
||||
+.IR nvram (8)
|
||||
diff -up powerpc-utils-1.2.15/man/rtas_event_decode.8.man powerpc-utils-1.2.15/man/rtas_event_decode.8
|
||||
--- powerpc-utils-1.2.15/man/rtas_event_decode.8.man 2013-01-16 15:31:13.888591067 +0100
|
||||
+++ powerpc-utils-1.2.15/man/rtas_event_decode.8 2013-01-16 15:31:13.888591067 +0100
|
||||
@@ -0,0 +1,31 @@
|
||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
||||
+.TH RTAS_EVENT_DECODE 8 "September 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+\fBrtas_event_decode\fP - RTAS message decoder
|
||||
+.SH SYNOPSIS
|
||||
+.B rtas_event_decode
|
||||
+[\fI-dv\fR] [\fI-n eventnum\fR] [\fI-w width\fR]
|
||||
+.SH DESCRIPTION
|
||||
+RTAS messages are placed in the syslog encoded in a binary
|
||||
+format, and are unreadable. This tool will take exactly one
|
||||
+message, parse it, and spit out the human-readable equivalent.
|
||||
+This program expects ascii data on stdin.
|
||||
+
|
||||
+This tool is mostly meant to be used in conjuction with the
|
||||
+rtas_dump shell script, which provides a suitable user
|
||||
+interface.
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+.B \-d
|
||||
+dump the raw RTAS event
|
||||
+.TP
|
||||
+.BI \-n " eventnum"
|
||||
+event number of the RTAS event being dumped
|
||||
+.TP
|
||||
+.B \-v
|
||||
+verbose, print all details, not just header
|
||||
+.TP
|
||||
+.BI \-w " width"
|
||||
+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
|
||||
diff -up powerpc-utils-1.3.10/Makefile.am.than powerpc-utils-1.3.10/Makefile.am
|
||||
--- powerpc-utils-1.3.10/Makefile.am.than 2023-11-27 22:07:33.391345328 +0100
|
||||
+++ powerpc-utils-1.3.10/Makefile.am 2023-11-27 22:06:38.715373360 +0100
|
||||
@@ -26,6 +26,16 @@ sbin_SCRIPTS = \
|
||||
scripts/hcnmgr
|
||||
|
||||
man_MANS = \
|
||||
+ 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 \
|
||||
man/activate_firmware.8 \
|
||||
man/rtas_ibm_get_vpd.8 \
|
||||
man/uesensor.8 \
|
||||
diff -up powerpc-utils-1.3.10/man/hcnmgr.8.than powerpc-utils-1.3.10/man/hcnmgr.8
|
||||
--- powerpc-utils-1.3.10/man/hcnmgr.8.than 2023-11-27 22:05:20.283979110 +0100
|
||||
+++ powerpc-utils-1.3.10/man/hcnmgr.8 2023-11-27 22:05:20.283979110 +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"
|
||||
@ -308,9 +69,268 @@ diff -up powerpc-utils-1.3.8/man/hcnmgr.8.me powerpc-utils-1.3.8/man/hcnmgr.8
|
||||
+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
|
||||
diff -up powerpc-utils-1.3.10/man/lsdevinfo.8.than powerpc-utils-1.3.10/man/lsdevinfo.8
|
||||
--- powerpc-utils-1.3.10/man/lsdevinfo.8.than 2023-11-27 22:05:20.282979092 +0100
|
||||
+++ powerpc-utils-1.3.10/man/lsdevinfo.8 2023-11-27 22:05:20.282979092 +0100
|
||||
@@ -0,0 +1,39 @@
|
||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
||||
+.TH LSDEVINFO "8" "October 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+lsdevinfo - information on Virtual devices
|
||||
+
|
||||
+.SH SYNOPSIS
|
||||
+.B lsdevinfo
|
||||
+[\fI-q criteria\fR] [\fI-F format\fR] [\fI-R\fR] [\fI-c\fR] [\fI-h\fR]
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+Provide information on Virtual devices
|
||||
+.PP
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+\fB\-q\fR criteria
|
||||
+Specifies a criteria to select which devices are to be displayed.
|
||||
+.TP
|
||||
+\fB\-F\fR format
|
||||
+Specifies the set of attributes to be displayed.
|
||||
+.TP
|
||||
+\fB\-R\fR
|
||||
+Recursively display children of selected devices
|
||||
+.TP
|
||||
+\fB\-c\fR
|
||||
+Display output as a comma separated list for each device.
|
||||
+.TP
|
||||
+\fB\-V\fR
|
||||
+Display version information and exit
|
||||
+.TP
|
||||
+\fB\-h\fR
|
||||
+Display help information and exit
|
||||
+
|
||||
+.SH AUTHOR
|
||||
+.B lsdevinfo
|
||||
+was written by Santiago Leon <sleon@ec.ibm.com>.
|
||||
+.PP
|
||||
+This manual page was written by Roman Rakus <rrakus@redhat.com>.
|
||||
+
|
||||
diff -up powerpc-utils-1.3.10/man/lsprop.8.than powerpc-utils-1.3.10/man/lsprop.8
|
||||
--- powerpc-utils-1.3.10/man/lsprop.8.than 2023-11-27 22:05:20.283979110 +0100
|
||||
+++ powerpc-utils-1.3.10/man/lsprop.8 2023-11-27 22:05:20.283979110 +0100
|
||||
@@ -0,0 +1,42 @@
|
||||
+.TH LSPROP "8" "Sep 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+lsprop \- list properties
|
||||
+.SH SYNOPSIS
|
||||
+.B lsprop
|
||||
+.RB [ \-R ]
|
||||
+.RB [ \-m
|
||||
+.IR max-bytes ]
|
||||
+.RB [ \-w
|
||||
+.IR num-words ]
|
||||
+.RI [ FILE .\|.\|.]
|
||||
+.SH OVERVIEW
|
||||
+.B lsprop
|
||||
+program is a member of the ppc64-utils suite of utils.
|
||||
+Use it to list properties
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+.B lsprop
|
||||
+displays properties for
|
||||
+.IR FILE s
|
||||
+like Open Firmware
|
||||
+.I .properties
|
||||
+word.
|
||||
+If the
|
||||
+.I FILE
|
||||
+is not set, the current directory is used.
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+.B \-R
|
||||
+Process recursively
|
||||
+.TP
|
||||
+.BI \-m " max-bytes"
|
||||
+Read only first
|
||||
+.I max-bytes
|
||||
+bytes from the
|
||||
+.IR FILE s
|
||||
+.TP
|
||||
+.BI \-w " num-words"
|
||||
+Display up to
|
||||
+.I num-words
|
||||
+words per line
|
||||
diff -up powerpc-utils-1.3.10/man/ls-vdev.8.than powerpc-utils-1.3.10/man/ls-vdev.8
|
||||
--- powerpc-utils-1.3.10/man/ls-vdev.8.than 2023-11-27 22:05:20.283979110 +0100
|
||||
+++ powerpc-utils-1.3.10/man/ls-vdev.8 2023-11-27 22:05:20.283979110 +0100
|
||||
@@ -0,0 +1,25 @@
|
||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
||||
+.TH LS-VDEV "8" "October 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+ls-vdev \- information on Virtual SCSI adapters and devices
|
||||
+.SH SYNOPSIS
|
||||
+.BR ls-vdev " [" \-h " | " -V ]
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+Provide information on Virtual SCSI adapters and devices
|
||||
+.PP
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+\fB\-V\fR
|
||||
+Display version information and exit
|
||||
+.TP
|
||||
+\fB\-h\fR
|
||||
+Display help information and exit
|
||||
+.PP
|
||||
+
|
||||
+.SH AUTHOR
|
||||
+.B ls-vdev
|
||||
+was written by Brian King <brking@linux.vnet.ibm.com>.
|
||||
+.PP
|
||||
+This manual page was written by Roman Rakus <rrakus@redhat.com>.
|
||||
diff -up powerpc-utils-1.3.10/man/ls-veth.8.than powerpc-utils-1.3.10/man/ls-veth.8
|
||||
--- powerpc-utils-1.3.10/man/ls-veth.8.than 2023-11-27 22:05:20.283979110 +0100
|
||||
+++ powerpc-utils-1.3.10/man/ls-veth.8 2023-11-27 22:05:20.283979110 +0100
|
||||
@@ -0,0 +1,25 @@
|
||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
||||
+.TH LS-VETH "8" "October 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+ls-veth \- information on Virtual Ethernet devices
|
||||
+.SH SYNOPSIS
|
||||
+.BR ls-veth " [" \-h " | " -V ]
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+Provide information on Virtual Ethernet devices
|
||||
+.PP
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+\fB\-V\fR
|
||||
+Display version information and exit
|
||||
+.TP
|
||||
+\fB\-h\fR
|
||||
+Display help information and exit
|
||||
+.PP
|
||||
+
|
||||
+.SH AUTHOR
|
||||
+.B ls-veth
|
||||
+was written by Brian King <brking@linux.vnet.ibm.com>.
|
||||
+.PP
|
||||
+This manual page was written by Roman Rakus <rrakus@redhat.com>.
|
||||
diff -up powerpc-utils-1.3.10/man/ls-vscsi.8.than powerpc-utils-1.3.10/man/ls-vscsi.8
|
||||
--- powerpc-utils-1.3.10/man/ls-vscsi.8.than 2023-11-27 22:05:20.283979110 +0100
|
||||
+++ powerpc-utils-1.3.10/man/ls-vscsi.8 2023-11-27 22:05:20.283979110 +0100
|
||||
@@ -0,0 +1,25 @@
|
||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
||||
+.TH LS-VSCSI "8" "October 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+ls-vscsi \- information on Virtual devices
|
||||
+.SH SYNOPSIS
|
||||
+.BR ls-vscsi " [" \-h " | " -V ]
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+Provide information on Virtual devices
|
||||
+.PP
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+\fB\-V\fR
|
||||
+Display version information and exit
|
||||
+.TP
|
||||
+\fB\-h\fR
|
||||
+Display help information and exit
|
||||
+.PP
|
||||
+
|
||||
+.SH AUTHOR
|
||||
+.B ls-vscsi
|
||||
+was written by Brian King <brking@linux.vnet.ibm.com>.
|
||||
+.PP
|
||||
+This manual page was written by Roman Rakus <rrakus@redhat.com>.
|
||||
diff -up powerpc-utils-1.3.10/man/nvsetenv.8.than powerpc-utils-1.3.10/man/nvsetenv.8
|
||||
--- powerpc-utils-1.3.10/man/nvsetenv.8.than 2023-11-27 22:05:20.283979110 +0100
|
||||
+++ powerpc-utils-1.3.10/man/nvsetenv.8 2023-11-27 22:05:20.283979110 +0100
|
||||
@@ -0,0 +1,29 @@
|
||||
+.TH NVSETENV "8" "Oct 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+nvsetenv \- wrapper to invoke nvram
|
||||
+
|
||||
+.SH SYNOPSIS
|
||||
+.B nvsetenv
|
||||
+[ ARG1 ] [ ARG2 ]
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+.B nvsetenv
|
||||
+is just a wrapper to invoke nvram
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+
|
||||
+Without any argument, nvsetenv calls
|
||||
+.I nvram --print-config
|
||||
+
|
||||
+With one argument
|
||||
+.IR ARG1 ,
|
||||
+nvsetenv calls
|
||||
+.I nvram --print-config=ARG1
|
||||
+
|
||||
+With two arguments
|
||||
+.IR "ARG1 ARG2" ,
|
||||
+nvsetenv calls
|
||||
+.I nvram --update-config ARG1=ARG2
|
||||
+
|
||||
+.SH "SEE ALSO"
|
||||
+.IR nvram (8)
|
||||
diff -up powerpc-utils-1.3.10/man/pseries_platform.8.than powerpc-utils-1.3.10/man/pseries_platform.8
|
||||
--- powerpc-utils-1.3.10/man/pseries_platform.8.than 2023-11-27 22:05:20.282979092 +0100
|
||||
+++ powerpc-utils-1.3.10/man/pseries_platform.8 2023-11-27 22:05:20.282979092 +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.
|
||||
diff -up powerpc-utils-1.3.10/man/rtas_event_decode.8.than powerpc-utils-1.3.10/man/rtas_event_decode.8
|
||||
--- powerpc-utils-1.3.10/man/rtas_event_decode.8.than 2023-11-27 22:05:20.283979110 +0100
|
||||
+++ powerpc-utils-1.3.10/man/rtas_event_decode.8 2023-11-27 22:05:20.283979110 +0100
|
||||
@@ -0,0 +1,31 @@
|
||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
||||
+.TH RTAS_EVENT_DECODE 8 "September 2010" "Linux" "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+\fBrtas_event_decode\fP - RTAS message decoder
|
||||
+.SH SYNOPSIS
|
||||
+.B rtas_event_decode
|
||||
+[\fI-dv\fR] [\fI-n eventnum\fR] [\fI-w width\fR]
|
||||
+.SH DESCRIPTION
|
||||
+RTAS messages are placed in the syslog encoded in a binary
|
||||
+format, and are unreadable. This tool will take exactly one
|
||||
+message, parse it, and spit out the human-readable equivalent.
|
||||
+This program expects ascii data on stdin.
|
||||
+
|
||||
+This tool is mostly meant to be used in conjuction with the
|
||||
+rtas_dump shell script, which provides a suitable user
|
||||
+interface.
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+.B \-d
|
||||
+dump the raw RTAS event
|
||||
+.TP
|
||||
+.BI \-n " eventnum"
|
||||
+event number of the RTAS event being dumped
|
||||
+.TP
|
||||
+.B \-v
|
||||
+verbose, print all details, not just header
|
||||
+.TP
|
||||
+.BI \-w " width"
|
||||
+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.10/man/update_flash_nv.8.than powerpc-utils-1.3.10/man/update_flash_nv.8
|
||||
--- powerpc-utils-1.3.10/man/update_flash_nv.8.than 2023-11-27 22:05:20.283979110 +0100
|
||||
+++ powerpc-utils-1.3.10/man/update_flash_nv.8 2023-11-27 22:05:20.283979110 +0100
|
||||
@@ -0,0 +1,15 @@
|
||||
+.\"
|
||||
+.\" Copyright (C) 2015 International Business Machines
|
||||
@ -327,25 +347,3 @@ diff -up powerpc-utils-1.3.5/man/update_flash_nv.8.me powerpc-utils-1.3.5/man/up
|
||||
+.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)
|
||||
|
||||
|
47
SOURCES/powerpc-utils-1.3.10-nvram-manpage.patch
Normal file
47
SOURCES/powerpc-utils-1.3.10-nvram-manpage.patch
Normal file
@ -0,0 +1,47 @@
|
||||
commit d604cc779741c29cbdc8da97cbfc1512fd21fc1b
|
||||
Author: Likhitha Korrapati <likhitha@linux.ibm.com>
|
||||
Date: Fri Aug 11 00:41:14 2023 -0500
|
||||
|
||||
nvram man page and --help output are not in sync
|
||||
|
||||
The nvram man page and the output from --help option are not in
|
||||
sync and few of the options are missing in man page.
|
||||
|
||||
The options that are missing are ascii, dump, nvram-size, zero.
|
||||
These options are added through the commit ids [1], [2].
|
||||
|
||||
This patch adds the above missing options to the nvram.
|
||||
|
||||
[1] https://github.com/ibm-power-utilities/powerpc-utils/commit/0e09f4e2898e7dea556479b018a7f4bf12108099
|
||||
[2] https://github.com/ibm-power-utilities/powerpc-utils/commit/976dbe9bb7b01b135cac3e7bbd1dce0cdc88636a
|
||||
|
||||
Signed-off-by: Likhitha Korrapati <likhitha@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/man/nvram.8 b/man/nvram.8
|
||||
index 2938e34..6071712 100644
|
||||
--- a/man/nvram.8
|
||||
+++ b/man/nvram.8
|
||||
@@ -67,6 +67,22 @@ be more verbose.
|
||||
\fB\--help
|
||||
print usage information including other low level options useful for
|
||||
debugging nvram.
|
||||
+.TP
|
||||
+\fB\--ascii \fIname
|
||||
+print partition contents as ASCII text
|
||||
+.TP
|
||||
+\fB\--dump \fIname
|
||||
+raw dump of partition (use --partitions to see names)
|
||||
+.TP
|
||||
+\fB\--nvram-size
|
||||
+specify size of nvram data, must in multiples of 16 Bytes (for repair
|
||||
+operations)
|
||||
+.TP
|
||||
+\fB\--unzip \fIname
|
||||
+decompress and print compressed data from partition
|
||||
+.TP
|
||||
+\fB\--zero | 0 \fR
|
||||
+terminate config pairs with a NULL character
|
||||
.SH FILES
|
||||
/dev/nvram
|
||||
.SH AUTHOR
|
47
SOURCES/powerpc-utils-1.3.10-nvram-print-config-crash.patch
Normal file
47
SOURCES/powerpc-utils-1.3.10-nvram-print-config-crash.patch
Normal file
@ -0,0 +1,47 @@
|
||||
commit 3f72b8326a2fc9a9dffb4b31d0ce3abf12e24751
|
||||
Author: Likhitha Korrapati <likhitha@linux.ibm.com>
|
||||
Date: Thu Jan 25 15:44:02 2024 +0530
|
||||
|
||||
powerpc/nvram: fix segmentation fault issue in print-config
|
||||
|
||||
print-config option in nvram results in segmentation fault when the
|
||||
user provides a very large value.
|
||||
|
||||
without the patch:
|
||||
[root@xxx powerpc-utils]# nvram --print-config=real-mode?
|
||||
true
|
||||
[root@xxx powerpc-utils]# nvram --print-config=$(perl -e 'p
|
||||
rint "A"x1000000')
|
||||
Segmentation fault (core dumped)
|
||||
|
||||
The Segmentation fault occurs because the code tries to access memory
|
||||
beyond the bounds of the data at index varlen. varlen is the length of
|
||||
the string provided by the user.
|
||||
|
||||
This patch adds a condition to check whether the length of the data is
|
||||
greater than varlen to prevent accessing out of bounds.
|
||||
|
||||
with the patch:
|
||||
[root@xxx powerpc-utils]# ./src/nvram --print-config=real-m
|
||||
ode?
|
||||
true
|
||||
[root@xxx powerpc-utils]# ./src/nvram --print-config=$(perl
|
||||
-e 'print "A"x1000000')
|
||||
|
||||
Reported-by: Shirisha Ganta <shirisha@linux.ibm.com>
|
||||
Signed-off-by: Likhitha Korrapati <likhitha@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/src/nvram.c b/src/nvram.c
|
||||
index f051e9c..095e747 100644
|
||||
--- a/src/nvram.c
|
||||
+++ b/src/nvram.c
|
||||
@@ -1280,7 +1280,7 @@ print_of_config(struct nvram *nvram, char *config_var, char *pname,
|
||||
|
||||
data = (char *)phead + sizeof(*phead);
|
||||
while (*data != '\0') {
|
||||
- if ((data[varlen] == '=') &&
|
||||
+ if (strlen(data) > varlen && (data[varlen] == '=') &&
|
||||
strncmp(config_var, data, varlen) == 0) {
|
||||
printf("%s%c", data + varlen + 1, terminator);
|
||||
rc = 0;
|
51
SOURCES/powerpc-utils-1.3.10-nvram-size-crash.patch
Normal file
51
SOURCES/powerpc-utils-1.3.10-nvram-size-crash.patch
Normal file
@ -0,0 +1,51 @@
|
||||
commit a6d31caf4eaa453d3ec879f02163b3a515789b85
|
||||
Author: Likhitha Korrapati <likhitha@linux.ibm.com>
|
||||
Date: Mon Sep 11 05:23:37 2023 -0500
|
||||
|
||||
powerpc/nvram: Fix Segmentation fault issue in nvram-size.
|
||||
|
||||
nvram-size option results in segmentation fault when the user
|
||||
specifies value larger than the default nvram size
|
||||
|
||||
Without the patch:
|
||||
[root@xxx ~]# nvram --nvram-size 1048592
|
||||
nvram: WARNING: expected 1048592 bytes, but only read 15360!
|
||||
Segmentation fault (core dumped)
|
||||
|
||||
Segmentation fault is caused because the phead->length is becoming 0.
|
||||
And because of this the p_start doesn't get updated which makes the
|
||||
while loop run infinitely resulting in segmentation fault.
|
||||
This patch adds a condition check for phead->length to avoid infinite
|
||||
while loop.
|
||||
|
||||
With the patch:
|
||||
[root@xxx src]# ./nvram --nvram-size 1048592
|
||||
./nvram: WARNING: expected 1048592 bytes, but only read 15360!
|
||||
[root@xxx src]# ./nvram --nvram-size 268435456
|
||||
./nvram: WARNING: expected 268435456 bytes, but only read 15360!
|
||||
[root@xxx src]#
|
||||
|
||||
Reported-by: Shirisha Ganta <shirisha@linux.ibm.com>
|
||||
Signed-off-by: Likhitha Korrapati <likhitha@linux.ibm.com>
|
||||
[tyreld: fixed up else block]
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/src/nvram.c b/src/nvram.c
|
||||
index 095e747..1987c3d 100644
|
||||
--- a/src/nvram.c
|
||||
+++ b/src/nvram.c
|
||||
@@ -460,8 +460,12 @@ nvram_parse_partitions(struct nvram *nvram)
|
||||
c_sum = checksum(phead);
|
||||
if (c_sum != phead->checksum)
|
||||
warn_msg("this partition checksum should be %02x!\n", c_sum);
|
||||
- phead->length = be16toh(phead->length);
|
||||
- p_start += phead->length * NVRAM_BLOCK_SIZE;
|
||||
+ if (phead->length != 0) {
|
||||
+ phead->length = be16toh(phead->length);
|
||||
+ p_start += phead->length * NVRAM_BLOCK_SIZE;
|
||||
+ } else {
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
|
||||
if (verbose)
|
@ -0,0 +1,34 @@
|
||||
commit 1ac96f8ab7c27095be90eb2e69ae57e8b43eccbe
|
||||
Author: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Date: Fri Sep 16 18:39:13 2022 +0200
|
||||
|
||||
drmgr/pmig: remove deprecated call to refrsrc IBM.ManagementServer
|
||||
|
||||
As Nathan reported while reviewing this series:
|
||||
|
||||
This RSCT doc indicates that the IBM.ManagementServer resource class has
|
||||
been superseded:
|
||||
|
||||
https://www.ibm.com/docs/en/rsct/3.2?topic=security-management-domain-configuration
|
||||
|
||||
Removing that deprecated call in this series because it is conflicting with
|
||||
a following patch. The system returned value is stored in rc to prevent
|
||||
compilation error (due to warning if system returned value is not read).
|
||||
|
||||
Suggested-by: Nathan Lynch <nathanl@linux.ibm.com>
|
||||
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/src/drmgr/drmig_chrp_pmig.c b/src/drmgr/drmig_chrp_pmig.c
|
||||
index 94cb49a..f78ff15 100644
|
||||
--- a/src/drmgr/drmig_chrp_pmig.c
|
||||
+++ b/src/drmgr/drmig_chrp_pmig.c
|
||||
@@ -753,8 +753,5 @@ int drmig_chrp_pmig(void)
|
||||
|
||||
post_mobility_update();
|
||||
|
||||
- say(DEBUG, "Refreshing RMC via refrsrc\n");
|
||||
- rc = system("/usr/sbin/rsct/bin/refrsrc IBM.ManagementServer");
|
||||
-
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,110 @@
|
||||
commit 2fbd7c1ff428e534d80f60e03501d625ab594eca
|
||||
Author: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
Date: Wed Jun 15 13:05:51 2022 -0500
|
||||
|
||||
ofpathname: Fix several issues in nvmf boot/install support
|
||||
|
||||
This patch fixes several issues in boot/install over nvme-over-fc
|
||||
device support.
|
||||
|
||||
- change cntlid to ffff
|
||||
- add devnisd from sysfs
|
||||
- add subsysnqn
|
||||
|
||||
Signed-off-by: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/scripts/ofpathname b/scripts/ofpathname
|
||||
index b1d6b09..33d7702 100755
|
||||
--- a/scripts/ofpathname
|
||||
+++ b/scripts/ofpathname
|
||||
@@ -773,8 +773,7 @@ l2of_nvmf()
|
||||
t_wwpn="${t_wwpn#0x}"
|
||||
t_wwpn="${t_wwpn%,*}"
|
||||
nqn=`$CAT $PWD/subsysnqn`
|
||||
- cntlid_dec=`$CAT $PWD/cntlid`
|
||||
- cntlid=`echo "obase=16; $cntlid_dec" |bc`
|
||||
+ cntlid=`echo ffff`
|
||||
if [[ -n $h_wwpn ]]; then
|
||||
for f in `$FIND /sys/devices -name "port_name"`; do
|
||||
sys_wwpn=`$CAT $f 2>/dev/null`
|
||||
@@ -808,6 +807,9 @@ l2of_nvmf()
|
||||
if [[ ${#res} = 0 ]]; then
|
||||
OF_PATH=""
|
||||
else
|
||||
+ goto_dir $res
|
||||
+ devnsid=`$CAT $PWD/nsid | tr -d '\000'`
|
||||
+ devnsid=`echo "obase=16; $devnsid" |bc`
|
||||
OF_PATH="$OF_PATH/namespace@$devnsid"
|
||||
fi
|
||||
fi
|
||||
@@ -818,6 +820,8 @@ l2of_nvmf()
|
||||
if [[ ${#res} = 0 ]]; then
|
||||
OF_PATH=""
|
||||
else
|
||||
+ goto_dir $res
|
||||
+ devpart=`$CAT $PWD/partition | tr -d '\000'`
|
||||
OF_PATH="${OF_PATH}:${devpart}"
|
||||
fi
|
||||
fi
|
||||
@@ -1826,8 +1830,7 @@ of2l_nvmf()
|
||||
ctrl_name=`echo $DEVNAME | cut -d "/" -f 5`
|
||||
OF_WWPN=${ctrl_name%,*}
|
||||
OF_WWPN=${OF_WWPN#*@}
|
||||
- of_cntlid=${ctrl_name%%:*}
|
||||
- of_cntlid=${of_cntlid#*,}
|
||||
+ OF_NQN=`echo $ctrl_name | cut -d "=" -f 2`
|
||||
# set partition number only if ':' is present
|
||||
case "${nsid_part}" in
|
||||
*:*)
|
||||
@@ -1835,6 +1838,7 @@ of2l_nvmf()
|
||||
;;
|
||||
esac
|
||||
local dir
|
||||
+ local found=0
|
||||
|
||||
for dir in `$FIND /sys/devices/virtual/nvme-fabrics -name "nvme[0-9]*"`; do
|
||||
cd $dir
|
||||
@@ -1844,10 +1848,9 @@ of2l_nvmf()
|
||||
t_wwpn="${t_wwpn%,*}"
|
||||
h_wwpn=`$CAT $PWD/address | cut -f 5 -d "-"`
|
||||
h_wwpn="${h_wwpn#0x}"
|
||||
- cntlid_dec=`$CAT $PWD/cntlid 2>/dev/null`
|
||||
- cntlid=`echo "obase=16; $cntlid_dec" |bc`
|
||||
+ nqn=`$CAT $PWD/subsysnqn`
|
||||
if [[ $t_wwpn = $OF_WWPN ]] && \
|
||||
- [[ $cntlid == $of_cntlid ]]; then
|
||||
+ [[ $nqn == $OF_NQN ]]; then
|
||||
for f in `$FIND /sys/devices -name "port_name"`; do
|
||||
sys_wwpn=`$CAT $f 2>/dev/null`
|
||||
sys_wwpn="${sys_wwpn#0x}"
|
||||
@@ -1871,14 +1874,23 @@ of2l_nvmf()
|
||||
fi
|
||||
fi
|
||||
done
|
||||
+
|
||||
if [[ -n $LOGICAL_DEVNAME ]] && \
|
||||
[[ -n $nsid ]]; then
|
||||
- res=`$FIND /sys/devices/virtual -name ${LOGICAL_DEVNAME}n${nsid}`
|
||||
- if [[ ${#res} = 0 ]]; then
|
||||
- LOGICAL_DEVNAME=''
|
||||
- else
|
||||
- LOGICAL_DEVNAME="${LOGICAL_DEVNAME}n${nsid}"
|
||||
- fi
|
||||
+ for dir in `$FIND /sys/block -name "${LOGICAL_DEVNAME}n[0-9]*"`; do
|
||||
+ cd $dir
|
||||
+
|
||||
+ local devnsid=`$CAT ./nsid 2>/dev/null`
|
||||
+ devnsid=`echo "obase=16; $devnsid" |bc`
|
||||
+ if [[ $devnsid = $nsid ]]; then
|
||||
+ found=1
|
||||
+ LOGICAL_DEVNAME="${dir##*/}"
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+ if [[ $found -eq 0 ]]; then
|
||||
+ LOGICAL_DEVNAME=""
|
||||
+ fi
|
||||
fi
|
||||
|
||||
if [[ -n $LOGICAL_DEVNAME ]] && \
|
@ -0,0 +1,79 @@
|
||||
commit 372599ed28d65a79d4c3b3405a8e04034eb58e09
|
||||
Author: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Date: Fri Sep 16 18:39:15 2022 +0200
|
||||
|
||||
drmgr: introduce a DRC type name table
|
||||
|
||||
So that there is only one place to convert the name of the drc to the type
|
||||
of drc and vice versa.
|
||||
|
||||
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/src/drmgr/common.c b/src/drmgr/common.c
|
||||
index 622cfaf..12af756 100644
|
||||
--- a/src/drmgr/common.c
|
||||
+++ b/src/drmgr/common.c
|
||||
@@ -52,6 +52,21 @@ char *remove_slot_fname = REMOVE_SLOT_FNAME;
|
||||
static int dr_lock_fd = 0;
|
||||
static long dr_timeout;
|
||||
|
||||
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
||||
+
|
||||
+static char *drc_type_str[] = {
|
||||
+ [DRC_TYPE_NONE] = "unknwon",
|
||||
+ [DRC_TYPE_PCI] = "pci",
|
||||
+ [DRC_TYPE_SLOT] = "slot",
|
||||
+ [DRC_TYPE_PHB] = "phb",
|
||||
+ [DRC_TYPE_CPU] = "cpu",
|
||||
+ [DRC_TYPE_MEM] = "mem",
|
||||
+ [DRC_TYPE_PORT] = "port",
|
||||
+ [DRC_TYPE_HIBERNATE] = "phib",
|
||||
+ [DRC_TYPE_MIGRATION] = "pmig",
|
||||
+ [DRC_TYPE_ACC] = "acc",
|
||||
+};
|
||||
+
|
||||
/**
|
||||
* set_output level
|
||||
* @brief Common routine to set the output level
|
||||
@@ -1521,35 +1536,12 @@ int do_kernel_dlpar_common(const char *cmd, int cmdlen, int silent_error)
|
||||
|
||||
enum drc_type to_drc_type(const char *arg)
|
||||
{
|
||||
- if (!strncmp(arg, "pci", 3))
|
||||
- return DRC_TYPE_PCI;
|
||||
-
|
||||
- if (!strncmp(arg, "slot", 4))
|
||||
- return DRC_TYPE_SLOT;
|
||||
-
|
||||
- if (!strncmp(arg, "phb", 3))
|
||||
- return DRC_TYPE_PHB;
|
||||
-
|
||||
- if (!strncmp(arg, "cpu", 3))
|
||||
- return DRC_TYPE_CPU;
|
||||
-
|
||||
- if (!strncmp(arg, "mem", 3))
|
||||
- return DRC_TYPE_MEM;
|
||||
+ enum drc_type i;
|
||||
|
||||
- if (!strncmp(arg, "port", 4))
|
||||
- return DRC_TYPE_PORT;
|
||||
-
|
||||
- if (!strncmp(arg, "phib", 4))
|
||||
- return DRC_TYPE_HIBERNATE;
|
||||
-
|
||||
- if (!strncmp(arg, "pmig", 4))
|
||||
- return DRC_TYPE_MIGRATION;
|
||||
-
|
||||
- /*
|
||||
- * Accelerator
|
||||
- */
|
||||
- if (!strncmp(arg, "acc", 3))
|
||||
- return DRC_TYPE_ACC;
|
||||
+ for (i = DRC_TYPE_NONE + 1; i < ARRAY_SIZE(drc_type_str); i++) {
|
||||
+ if (!strcmp(arg, drc_type_str[i]))
|
||||
+ return i;
|
||||
+ }
|
||||
|
||||
return DRC_TYPE_NONE;
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
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;
|
@ -0,0 +1,120 @@
|
||||
commit 7698adc945372e901c2bc3f7066a5a1c219bf1d8
|
||||
Author: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Date: Fri Sep 16 18:39:18 2022 +0200
|
||||
|
||||
drmgr: add the drmgr-hooks man file.
|
||||
|
||||
This man page describe the various drmgr's hooks.
|
||||
|
||||
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index ba7a3c5..5c0ca3c 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -48,6 +48,7 @@ man_MANS = \
|
||||
man/vcpustat.8 \
|
||||
man/rtas_dbg.8 \
|
||||
man/drmgr.8 \
|
||||
+ man/drmgr-hooks.8 \
|
||||
man/lparnumascore.8
|
||||
|
||||
EXTRA_DIST += $(bin_SCRIPTS) $(sbin_SCRIPTS) $(man_MANS)
|
||||
diff --git a/man/drmgr-hooks.8 b/man/drmgr-hooks.8
|
||||
new file mode 100644
|
||||
index 0000000..621e4f0
|
||||
--- /dev/null
|
||||
+++ b/man/drmgr-hooks.8
|
||||
@@ -0,0 +1,82 @@
|
||||
+.\"
|
||||
+.\" Copyright (C) 2022 International Business Machines
|
||||
+.\"
|
||||
+.TH DRMGR-HOOKS 8 "May 24, 2022" Linux "Linux on Power Service Tools"
|
||||
+.SH NAME
|
||||
+drmgr\-hooks \- Hooks run by drmgr
|
||||
+.SH DESCRIPTION
|
||||
+When
|
||||
+.B drmgr
|
||||
+is run to perform PowerVM Dynamic Logical Partitioning (DLPAR) operations,
|
||||
+a set of hooks may be triggered to validate, and, or be aware of the incoming operation.
|
||||
+.P
|
||||
+Not all the DLPAR operations are providing hook calls.
|
||||
+Currently only the LPAR Migration operation (LPM) is concerned.
|
||||
+.P
|
||||
+The hooks are executable files stored in a directory named "DRC TYPE" in
|
||||
+.IR /etc/drmgr.d/ .
|
||||
+For instance, hooks run when a LPAR migration is done are stored in
|
||||
+.IR /etc/drmgr.d/pmig .
|
||||
+.P
|
||||
+Hook files can be symbolic links to executable files. All the hooks can be stored in
|
||||
+.IR /etc/drmgr.d
|
||||
+and linked into multiple directories to provide multiple DRC type's hooks.
|
||||
+.SH ARGUMENTS
|
||||
+.P
|
||||
+Hooks are called without any arguments but with at least these 2 environment variable set:
|
||||
+.TP
|
||||
+.BI "DRC_TYPE"
|
||||
+The Dynamic reconfiguration connector type to act upon from the following list:
|
||||
+.BR pmig ", " pci ", " cpu ", " mem ", " port ", " slot ", " phb "."
|
||||
+.TP
|
||||
+.BI "PHASE"
|
||||
+The phase of the operation from the following list:
|
||||
+.BR check ", " undocheck ", " pre ", " post "."
|
||||
+.SH LPAR MIGRATION
|
||||
+.P
|
||||
+When a LPAR migration is initiated the
|
||||
+.B check
|
||||
+phase is first triggered. Hooks called at check phase may returned a non zero value to prevent the migration operation to happen.
|
||||
+The error messages displayed in
|
||||
+.BR STDOUT " or " STDERR
|
||||
+would be reported to the end user through the HMC.
|
||||
+.P
|
||||
+If the
|
||||
+.B check
|
||||
+phase has failed, because at least one hook has returned a non null value, the
|
||||
+.B undocheck
|
||||
+phase is launched. Return value for the
|
||||
+.B
|
||||
+undocheck
|
||||
+phase is ignored.
|
||||
+.P
|
||||
+If the
|
||||
+.B check
|
||||
+phase succeeded, the
|
||||
+.BR pre " and later " post
|
||||
+phases are triggered. Returned values for these 2 phases are ignored, and the
|
||||
+.B post
|
||||
+phase is triggered even if the LPM operation has failed.
|
||||
+.SH ENVIRONMENT
|
||||
+.P
|
||||
+The drmgr's hooks are called while holding the DLPAR lock, so any other
|
||||
+DLPAR operation initiated from a hook is expected to fail.
|
||||
+.P
|
||||
+The hooks standard input
|
||||
+.B STDIN
|
||||
+is redirected to
|
||||
+.I /dev/null
|
||||
+while STDOUT and STDERR are redirected to pipes.
|
||||
+The outputs done in these pipes are reported to the end user when a hook has returned an error value and that error value is not ignored (e.g in the LPM, the
|
||||
+.B check
|
||||
+phase but not the
|
||||
+.BR pre "or " post
|
||||
+phase)
|
||||
+.P
|
||||
+Except the variables specified in the ARGUMENTS section, all the environment variables are unset before calling the hook.
|
||||
+.SH FILES
|
||||
+.IR /etc/drmgr.d/pmig/
|
||||
+.SH AUTHOR
|
||||
+Laurent Dufour <ldufour@linux.ibm.com>
|
||||
+.SH SEE ALSO
|
||||
+.BR drmgr (8)
|
||||
diff --git a/man/drmgr.8 b/man/drmgr.8
|
||||
index 09944bd..f40136b 100644
|
||||
--- a/man/drmgr.8
|
||||
+++ b/man/drmgr.8
|
||||
@@ -158,3 +158,4 @@ was written by IBM Corporation
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR lsslot "(8)"
|
||||
+.BR drmgr-hooks "(8)"
|
@ -0,0 +1,33 @@
|
||||
commit 8a7aa61c5f520df03e53e6f7e1d63b7d5c432376
|
||||
Author: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
Date: Wed Nov 15 14:37:43 2023 -0600
|
||||
|
||||
powerpc-utils/scripts/ofpathname: handle nsid of nvme device as hex number
|
||||
|
||||
Installation fails if nsid of nvme device is greater than 10.
|
||||
|
||||
The patch fixes the issue and handle nsid of nvme ad a hex number.
|
||||
|
||||
Signed-off-by: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/scripts/ofpathname b/scripts/ofpathname
|
||||
index 3abe4d1..833d03f 100755
|
||||
--- a/scripts/ofpathname
|
||||
+++ b/scripts/ofpathname
|
||||
@@ -722,6 +722,7 @@ l2of_nvme()
|
||||
err $ERR_NO_OFPATH
|
||||
fi
|
||||
|
||||
+ devnsid=$(printf "%x" $devnsid)
|
||||
OF_PATH="$OF_PATH/$devtype@$devnsid"
|
||||
|
||||
# No partition (pZ) specified.
|
||||
@@ -1798,6 +1799,7 @@ of2l_nvme()
|
||||
cd $dir
|
||||
|
||||
local devnsid=`$CAT ./nsid 2>/dev/null`
|
||||
+ devnsid=$(printf "%x" $devnsid)
|
||||
if [[ $devnsid = $nsid ]]; then
|
||||
LOGICAL_DEVNAME="${dir##*/}"
|
||||
break
|
@ -0,0 +1,131 @@
|
||||
commit c015807d5bef0ebdeaf99883793173f2b636e740
|
||||
Author: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
Date: Wed Jun 15 13:05:18 2022 -0500
|
||||
|
||||
bootlist: Add install/boot support for nvmf devices
|
||||
|
||||
This patch adds the boot/installation support for nvme-over-fc devices.
|
||||
It can set nvmf device as boot device in both of logical device name
|
||||
and open firmware device path name.
|
||||
|
||||
Signed-off-by: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/scripts/bootlist b/scripts/bootlist
|
||||
index b5cfbd9..1929f65 100755
|
||||
--- a/scripts/bootlist
|
||||
+++ b/scripts/bootlist
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
OFPATHNAME=/usr/sbin/ofpathname
|
||||
NVRAM=/usr/sbin/nvram
|
||||
+FIND=/usr/bin/find
|
||||
PSERIES_PLATFORM=$(dirname $0)/pseries_platform
|
||||
|
||||
#
|
||||
@@ -288,6 +289,63 @@ dm_to_part()
|
||||
done
|
||||
}
|
||||
|
||||
+# is_nvmf_device
|
||||
+# Check to see if this is a nvmf device
|
||||
+#
|
||||
+is_nvmf_device()
|
||||
+{
|
||||
+ local res
|
||||
+
|
||||
+ res=`$FIND /sys/devices/virtual/nvme-fabrics -name $1 2>/dev/null`
|
||||
+ if [[ ${#res} = 0 ]]; then
|
||||
+ echo "no"
|
||||
+ else
|
||||
+ echo "yes"
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+# get_link
|
||||
+# return the directory path that a link points to.
|
||||
+# The only parameter is the link name.
|
||||
+#
|
||||
+get_link()
|
||||
+{
|
||||
+ local ln_name=$1;
|
||||
+
|
||||
+ echo `ls -l $ln_name 2>/dev/null | awk -F"->" '{print $2}'`
|
||||
+}
|
||||
+
|
||||
+add_nvmf()
|
||||
+{
|
||||
+ local DEVNAME=$1
|
||||
+
|
||||
+ ctrl_name=$DEVNAME
|
||||
+ local startctr=$ctr
|
||||
+
|
||||
+ local dir
|
||||
+ for dir in `$FIND /sys/devices/virtual/nvme-fabrics -name "$ctrl_name"`; do
|
||||
+ cd $dir
|
||||
+ link=`get_link "device"`
|
||||
+ cd $link
|
||||
+ for slave in $PWD/*; do
|
||||
+ slavedev=${slave##*/}
|
||||
+ if [[ "$slavedev" == nvme[0-9]* ]] ; then
|
||||
+ cd $slave
|
||||
+ res=`$FIND . -name "${ctrl_name}*"`
|
||||
+ if [[ ${#res} != 0 ]]; then
|
||||
+ LOGICAL_NAMES[$ctr]=${slavedev}
|
||||
+ ctr=$[$ctr + 1]
|
||||
+ fi
|
||||
+ fi
|
||||
+ done
|
||||
+ done
|
||||
+
|
||||
+ if [[ "$startctr" = "$ctr" ]] ; then
|
||||
+ LOGICAL_NAMES[$ctr]=$1
|
||||
+ ctr=$[$ctr + 1]
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
add_logical()
|
||||
{
|
||||
local DEVNAME=$1
|
||||
@@ -432,7 +490,30 @@ while [[ -n $1 ]]; do
|
||||
exit -1
|
||||
else
|
||||
# add this element to the array
|
||||
- add_logical $1
|
||||
+ if [[ "$1" == *"dm-"* ]] ; then
|
||||
+ add_logical $1
|
||||
+ else
|
||||
+ if [[ "$1" == *"nvme-of"* ]]; then
|
||||
+ ctrl_name=`get_logical_device_name $1`
|
||||
+ else
|
||||
+ ctrl_name=$1
|
||||
+ ctrl_name=${ctrl_name##*/}
|
||||
+ fi
|
||||
+ ctrl_name="${ctrl_name%n[0-9]*}"
|
||||
+ is_nvmf=$(is_nvmf_device $ctrl_name)
|
||||
+ if [[ $is_nvmf = "yes" ]]; then
|
||||
+ if [[ "$1" == *"nvme-of"* ]]; then
|
||||
+ master_of_path=$1
|
||||
+ else
|
||||
+ master_of_path=`get_of_device_name $1`
|
||||
+ fi
|
||||
+ namespace_base=${master_of_path##*/}
|
||||
+ DEVTYPE="nvme-of"
|
||||
+ add_nvmf $ctrl_name
|
||||
+ else
|
||||
+ add_logical $1
|
||||
+ fi
|
||||
+ fi
|
||||
fi
|
||||
|
||||
shift
|
||||
@@ -453,6 +534,9 @@ if [[ ${#LOGICAL_NAMES[*]} -ne 0 ]]; then
|
||||
if [[ -z ${OF_DEVPATH[$ctr]} ]]; then
|
||||
# See if this is an OF pathname
|
||||
OF_DEVPATH[$ctr]=`get_of_device_name ${LOGICAL_NAMES[$ctr]}`
|
||||
+ if [[ $DEVTYPE = "nvme-of" ]]; then
|
||||
+ OF_DEVPATH[$ctr]=${OF_DEVPATH[$ctr]}/$namespace_base
|
||||
+ fi
|
||||
else
|
||||
OF_DEVPATH[$ctr]=${LOGICAL_NAMES[$ctr]}
|
||||
fi
|
@ -0,0 +1,36 @@
|
||||
commit c3ce3040ea9ed49345756136d61eb402e32402e8
|
||||
Author: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Date: Fri Sep 16 18:39:12 2022 +0200
|
||||
|
||||
drmgr/pmig: remove unused code
|
||||
|
||||
The original system id is read but never used, so remove that useless code.
|
||||
Remove also an unjustified sleep(5) call.
|
||||
|
||||
Reviewed-by: Nathan Lynch <nathanl@linux.ibm.com>
|
||||
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/src/drmgr/drmig_chrp_pmig.c b/src/drmgr/drmig_chrp_pmig.c
|
||||
index 569eeb6..94cb49a 100644
|
||||
--- a/src/drmgr/drmig_chrp_pmig.c
|
||||
+++ b/src/drmgr/drmig_chrp_pmig.c
|
||||
@@ -695,7 +695,6 @@ void post_mobility_update(void)
|
||||
int drmig_chrp_pmig(void)
|
||||
{
|
||||
int rc;
|
||||
- char sys_src[20];
|
||||
uint64_t stream_val;
|
||||
|
||||
/* Ensure that this partition is migratable/mobile */
|
||||
@@ -732,10 +731,6 @@ int drmig_chrp_pmig(void)
|
||||
say(ERROR, "Invalid streamid specified: %s\n", strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
-
|
||||
- /* Get the ID of the original system, for later logging */
|
||||
- get_str_attribute(OFDT_BASE, "system-id", sys_src, 20);
|
||||
- sleep(5);
|
||||
|
||||
/* Now do the actual migration */
|
||||
do {
|
@ -0,0 +1,93 @@
|
||||
commit d0bc79aedaf76eff09a5d1f399da09561a4d4d7d
|
||||
Author: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Date: Fri Sep 16 18:39:17 2022 +0200
|
||||
|
||||
drmgr: introducing the LPM hooks
|
||||
|
||||
There are 3 hooks run when an LPM is performed:
|
||||
1. check before the LPM is really initiated
|
||||
1 bis. undocheck if check failed.
|
||||
2. pre just before entering the switch over
|
||||
3. post at the end of the LPM operation
|
||||
|
||||
Only the check hook's return status is taken in account. If the check hook
|
||||
return value is different from 0, the LPM is aborted and the outputs of the
|
||||
check hook are reported to the end user through the HMC.
|
||||
|
||||
In the case at least one check hook returned a non zero status, the
|
||||
undocheck event is run (for all the hooks), and the pre and post events are
|
||||
not triggered.
|
||||
|
||||
The post event is triggered even if the LPM operation has failed.
|
||||
|
||||
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/src/drmgr/drmig_chrp_pmig.c b/src/drmgr/drmig_chrp_pmig.c
|
||||
index f78ff15..f169fa5 100644
|
||||
--- a/src/drmgr/drmig_chrp_pmig.c
|
||||
+++ b/src/drmgr/drmig_chrp_pmig.c
|
||||
@@ -691,11 +691,15 @@ void post_mobility_update(void)
|
||||
devtree_update();
|
||||
}
|
||||
}
|
||||
-
|
||||
+
|
||||
int drmig_chrp_pmig(void)
|
||||
{
|
||||
int rc;
|
||||
uint64_t stream_val;
|
||||
+ enum drc_type drc_type = DRC_TYPE_NONE;
|
||||
+
|
||||
+ if (usr_action == MIGRATE)
|
||||
+ drc_type = DRC_TYPE_MIGRATION;
|
||||
|
||||
/* Ensure that this partition is migratable/mobile */
|
||||
if (! pmig_capable()) {
|
||||
@@ -704,14 +708,11 @@ int drmig_chrp_pmig(void)
|
||||
return -1;
|
||||
}
|
||||
|
||||
- /* Today we do no pre-checks for migratability. The only check
|
||||
- * we could do is whether the "ibm,suspend-me" RTAS call exists.
|
||||
- * But if it doesn't, the firmware level doesn't support migration,
|
||||
- * in which case why the heck are we being invoked anyways.
|
||||
- */
|
||||
- if (strcmp(usr_p_option, "check") == 0) {
|
||||
- say(DEBUG, "check: Nothing to do...\n");
|
||||
- return 0;
|
||||
+ if (usr_action == MIGRATE && (strcmp(usr_p_option, "check") == 0)) {
|
||||
+ rc = run_hooks(drc_type, HOOK_CHECK);
|
||||
+ if (rc)
|
||||
+ run_hooks(drc_type, HOOK_UNDOCHECK);
|
||||
+ return rc;
|
||||
}
|
||||
|
||||
/* The only other command is pre, any other command is invalid */
|
||||
@@ -734,6 +735,9 @@ int drmig_chrp_pmig(void)
|
||||
|
||||
/* Now do the actual migration */
|
||||
do {
|
||||
+ if (usr_action == MIGRATE)
|
||||
+ run_hooks(drc_type, HOOK_PRE);
|
||||
+
|
||||
if (usr_action == MIGRATE)
|
||||
rc = do_migration(stream_val);
|
||||
else if (usr_action == HIBERNATE)
|
||||
@@ -748,10 +752,12 @@ int drmig_chrp_pmig(void)
|
||||
|
||||
syslog(LOG_LOCAL0 | LOG_INFO, "drmgr: %s rc %d\n",
|
||||
(usr_action == MIGRATE ? "migration" : "hibernation"), rc);
|
||||
- if (rc)
|
||||
- return rc;
|
||||
|
||||
- post_mobility_update();
|
||||
+ if (!rc)
|
||||
+ post_mobility_update();
|
||||
|
||||
- return 0;
|
||||
+ /* Post hook is called even if the migration has failed */
|
||||
+ if (usr_action == MIGRATE)
|
||||
+ run_hooks(drc_type, HOOK_POST);
|
||||
+ return rc;
|
||||
}
|
@ -0,0 +1,219 @@
|
||||
commit e0928dc5e5375591a4cff6ffabc6063771288f59
|
||||
Author: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Date: Fri Sep 16 18:39:16 2022 +0200
|
||||
|
||||
drmgr: introducing the hook framework
|
||||
|
||||
The hook framework run in a sequence any executable file found in the
|
||||
relevant directory (/etc/drmgr.d/<DRC TYPE NAME>/)
|
||||
|
||||
The hook are run according to the versionsort()'s output order.
|
||||
|
||||
The hook inherits from drmgr its standard I/O streams. All others file
|
||||
descriptor should have the close on exec flag set to ensure they will be
|
||||
closed when executing an hook.
|
||||
|
||||
The hooks are run with no arguments, arguments are passed through
|
||||
environment variable.
|
||||
|
||||
The inherited environment is cleaned and 2 environment variables
|
||||
are set:
|
||||
- DRC_TYPE containing the DRC type string
|
||||
- PHASE containing the current phase
|
||||
|
||||
There are 4 known phases: check, undocheck, pre and post.
|
||||
|
||||
The hook's run is recorded in the drmgr's log, so blocking hook could be
|
||||
identified.
|
||||
|
||||
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/src/drmgr/common.c b/src/drmgr/common.c
|
||||
index 12af756..9cd91d1 100644
|
||||
--- a/src/drmgr/common.c
|
||||
+++ b/src/drmgr/common.c
|
||||
@@ -49,6 +49,8 @@ char *remove_slot_fname = REMOVE_SLOT_FNAME;
|
||||
|
||||
#define SYSFS_DLPAR_FILE "/sys/kernel/dlpar"
|
||||
|
||||
+#define DR_SCRIPT_DIR "/etc/drmgr.d"
|
||||
+
|
||||
static int dr_lock_fd = 0;
|
||||
static long dr_timeout;
|
||||
|
||||
@@ -67,6 +69,13 @@ static char *drc_type_str[] = {
|
||||
[DRC_TYPE_ACC] = "acc",
|
||||
};
|
||||
|
||||
+static char *hook_phase_name[] = {
|
||||
+ [HOOK_CHECK] = "check",
|
||||
+ [HOOK_UNDOCHECK] = "undocheck",
|
||||
+ [HOOK_PRE] = "pre",
|
||||
+ [HOOK_POST] = "post",
|
||||
+};
|
||||
+
|
||||
/**
|
||||
* set_output level
|
||||
* @brief Common routine to set the output level
|
||||
@@ -1546,3 +1555,138 @@ enum drc_type to_drc_type(const char *arg)
|
||||
return DRC_TYPE_NONE;
|
||||
}
|
||||
|
||||
+static int run_one_hook(enum drc_type drc_type, enum hook_phase phase,
|
||||
+ const char *name)
|
||||
+{
|
||||
+ int rc;
|
||||
+ pid_t child;
|
||||
+
|
||||
+ fflush(NULL);
|
||||
+ child = fork();
|
||||
+ if (child == -1) {
|
||||
+ say(ERROR, "Can't fork to run a hook: %s\n", strerror(errno));
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (child) {
|
||||
+ /* Father side */
|
||||
+ while (waitpid(child, &rc, 0) == -1) {
|
||||
+ if (errno == EINTR)
|
||||
+ continue;
|
||||
+ say(ERROR, "waitpid error: %s\n", strerror(errno));
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (WIFSIGNALED(rc)) {
|
||||
+ say(INFO, "hook '%s' terminated by signal %d\n",
|
||||
+ name, WTERMSIG(rc));
|
||||
+ rc = 1;
|
||||
+ } else {
|
||||
+ rc = WEXITSTATUS(rc);
|
||||
+ say(INFO, "hook '%s' exited with status %d\n",
|
||||
+ name, rc);
|
||||
+ }
|
||||
+ return rc;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ /* Child side */
|
||||
+ say(DEBUG, "Running hook '%s' for phase %s (PID=%d)\n",
|
||||
+ name, hook_phase_name[phase], getpid());
|
||||
+
|
||||
+ if (chdir("/")) {
|
||||
+ say(ERROR, "Can't change working directory to / : %s\n",
|
||||
+ strerror(errno));
|
||||
+ exit(255);
|
||||
+ }
|
||||
+
|
||||
+ if (clearenv() ||
|
||||
+ setenv("DRC_TYPE", drc_type_str[drc_type], 1) ||
|
||||
+ setenv("PHASE", hook_phase_name[phase], 1)) {
|
||||
+ say(ERROR, "Can't set environment variables: %s\n",
|
||||
+ strerror(errno));
|
||||
+ exit(255);
|
||||
+ }
|
||||
+
|
||||
+ execl(name, name, (char *)NULL);
|
||||
+ say(ERROR, "Can't exec hook %s : %s\n", strerror(errno));
|
||||
+ exit(255);
|
||||
+}
|
||||
+
|
||||
+static int is_file_or_link(const struct dirent *entry)
|
||||
+{
|
||||
+ if ((entry->d_type == DT_REG) || (entry->d_type == DT_LNK))
|
||||
+ return 1;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Run all executable hooks found in a given directory.
|
||||
+ * Return 0 if all run script have returned 0 status.
|
||||
+ */
|
||||
+int run_hooks(enum drc_type drc_type, enum hook_phase phase)
|
||||
+{
|
||||
+ int rc = 0, fdd, num, i;
|
||||
+ DIR *dir;
|
||||
+ struct dirent **entries = NULL;
|
||||
+
|
||||
+ /* Sanity check */
|
||||
+ if (drc_type <= DRC_TYPE_NONE || drc_type >= ARRAY_SIZE(drc_type_str)) {
|
||||
+ say(ERROR, "Invalid DRC TYPE detected (%d)\n", drc_type);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (phase < HOOK_CHECK || phase > HOOK_POST) {
|
||||
+ say(ERROR, "Invalid hook phase %d\n", phase);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ dir = opendir(DR_SCRIPT_DIR);
|
||||
+ if (dir == NULL) {
|
||||
+ if (errno == ENOENT)
|
||||
+ return 0;
|
||||
+ say(ERROR, "Can't open %s: %s\n", DR_SCRIPT_DIR,
|
||||
+ strerror(errno));
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ fdd = dirfd(dir);
|
||||
+ num = scandirat(fdd, drc_type_str[drc_type], &entries,
|
||||
+ is_file_or_link, versionsort);
|
||||
+ closedir(dir);
|
||||
+
|
||||
+ for (i = 0; i < num; i++) {
|
||||
+ struct stat st;
|
||||
+ struct dirent *entry = entries[i];
|
||||
+ char *name;
|
||||
+
|
||||
+ if (asprintf(&name, "%s/%s/%s", DR_SCRIPT_DIR,
|
||||
+ drc_type_str[drc_type], entry->d_name) == -1) {
|
||||
+ say(ERROR,
|
||||
+ "Can't allocate filename string (%zd bytes)\n",
|
||||
+ strlen(DR_SCRIPT_DIR) + 1 +
|
||||
+ strlen(drc_type_str[drc_type]) + 1 +
|
||||
+ strlen(entry->d_name) + 1);
|
||||
+ rc = 1;
|
||||
+ free(entry);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * Report error only in the case the hook itself fails.
|
||||
+ * Any other error (file is not executable etc.) is ignored.
|
||||
+ */
|
||||
+ if (stat(name, &st))
|
||||
+ say(WARN, "Can't stat file %s: %s\n",
|
||||
+ name, strerror(errno));
|
||||
+ else if (S_ISREG(st.st_mode) && (st.st_mode & S_IXUSR) &&
|
||||
+ run_one_hook(drc_type, phase, name))
|
||||
+ rc = 1;
|
||||
+
|
||||
+ free(name);
|
||||
+ free(entry);
|
||||
+ }
|
||||
+
|
||||
+ free(entries);
|
||||
+ return rc;
|
||||
+}
|
||||
diff --git a/src/drmgr/dr.h b/src/drmgr/dr.h
|
||||
index 58fdb5c..5526c29 100644
|
||||
--- a/src/drmgr/dr.h
|
||||
+++ b/src/drmgr/dr.h
|
||||
@@ -70,6 +70,8 @@ enum drc_type {DRC_TYPE_NONE, DRC_TYPE_PCI, DRC_TYPE_SLOT, DRC_TYPE_PHB,
|
||||
DRC_TYPE_CPU, DRC_TYPE_MEM, DRC_TYPE_PORT,
|
||||
DRC_TYPE_HIBERNATE, DRC_TYPE_MIGRATION, DRC_TYPE_ACC};
|
||||
|
||||
+enum hook_phase {HOOK_CHECK, HOOK_UNDOCHECK, HOOK_PRE, HOOK_POST};
|
||||
+
|
||||
extern enum drmgr_action usr_action;
|
||||
extern int display_capabilities;
|
||||
extern int usr_slot_identification;
|
||||
@@ -133,6 +135,8 @@ void print_dlpar_capabilities(void);
|
||||
|
||||
void set_output_level(int);
|
||||
|
||||
+int run_hooks(enum drc_type drc_type, enum hook_phase phase);
|
||||
+
|
||||
#define DR_BUF_SZ 256
|
||||
|
||||
int drslot_chrp_slot(void);
|
@ -0,0 +1,47 @@
|
||||
commit f2a4619ef6be747f53e5f631f8b23b5edb9bb023
|
||||
Author: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Date: Fri Sep 16 18:39:14 2022 +0200
|
||||
|
||||
drmgr: prevent file descriptor to be inherited when execing a child
|
||||
|
||||
When a file descriptor is opened and remain opened, the O_CLOEXEC should be
|
||||
set so execed children are not inheriting it.
|
||||
|
||||
There is no need for file descriptor opened and closed immediately, like in
|
||||
probe_cpu().
|
||||
|
||||
Reviewed-by: Nathan Lynch <nathanl@linux.ibm.com>
|
||||
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/src/drmgr/common.c b/src/drmgr/common.c
|
||||
index 393a997..622cfaf 100644
|
||||
--- a/src/drmgr/common.c
|
||||
+++ b/src/drmgr/common.c
|
||||
@@ -174,7 +174,7 @@ inline int dr_init(void)
|
||||
}
|
||||
|
||||
|
||||
- log_fd = open(DR_LOG_PATH, O_RDWR | O_CREAT | O_APPEND,
|
||||
+ log_fd = open(DR_LOG_PATH, O_RDWR | O_CREAT | O_APPEND | O_CLOEXEC,
|
||||
S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
|
||||
if (log_fd == -1) {
|
||||
log_fd = 0;
|
||||
@@ -314,7 +314,7 @@ int dr_lock(void)
|
||||
mode_t old_mode;
|
||||
|
||||
old_mode = umask(0);
|
||||
- dr_lock_fd = open(DR_LOCK_FILE, O_RDWR | O_CREAT,
|
||||
+ dr_lock_fd = open(DR_LOCK_FILE, O_RDWR | O_CREAT | O_CLOEXEC,
|
||||
S_IRUSR | S_IRGRP | S_IROTH);
|
||||
if (dr_lock_fd < 0)
|
||||
return -1;
|
||||
@@ -1496,7 +1496,7 @@ int do_kernel_dlpar_common(const char *cmd, int cmdlen, int silent_error)
|
||||
|
||||
/* write to file */
|
||||
if (fd == -1) {
|
||||
- fd = open(SYSFS_DLPAR_FILE, O_WRONLY);
|
||||
+ fd = open(SYSFS_DLPAR_FILE, O_WRONLY | O_CLOEXEC);
|
||||
if (fd < 0) {
|
||||
say(ERROR,
|
||||
"Could not open %s to initiate DLPAR request\n",
|
@ -1,41 +1,3 @@
|
||||
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
|
||||
|
40
SOURCES/powerpc-utils-git04e5c9-handle_nsid_as_hex.patch
Normal file
40
SOURCES/powerpc-utils-git04e5c9-handle_nsid_as_hex.patch
Normal file
@ -0,0 +1,40 @@
|
||||
commit 04e5c9646296e1f12048723bba4cee663c3f74ed
|
||||
Author: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
Date: Thu Dec 1 05:22:37 2022 -0600
|
||||
|
||||
ofpathname: Handle nsid as hex in nvmf boot/install support
|
||||
|
||||
Didn't handle nsid correctly in nvmf boot/install support.
|
||||
Need to handle it as hexadecimal number
|
||||
|
||||
For example,
|
||||
/pci@800000020000132/fibre-channel@0,1/nvme-of/controller@50050768101935e5,ffff
|
||||
:nqn=nqn.1986-03.com.ibm:nvme:2145.0000020420006CEA/namespace@26c
|
||||
|
||||
26c should be a hexadecimal number.
|
||||
|
||||
Signed-off-by: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/scripts/ofpathname b/scripts/ofpathname
|
||||
index c576fb8..3abe4d1 100755
|
||||
--- a/scripts/ofpathname
|
||||
+++ b/scripts/ofpathname
|
||||
@@ -809,7 +809,7 @@ l2of_nvmf()
|
||||
else
|
||||
goto_dir $res
|
||||
devnsid=`$CAT $PWD/nsid | tr -d '\000'`
|
||||
- devnsid=`echo "obase=16; $devnsid" |bc`
|
||||
+ devnsid=$(printf "%x" $devnsid)
|
||||
OF_PATH="$OF_PATH/namespace@$devnsid"
|
||||
fi
|
||||
fi
|
||||
@@ -1886,7 +1886,7 @@ of2l_nvmf()
|
||||
for dev_name in `$FIND /sys/block -name "${ana_name##*/}n[0-9]*"`; do
|
||||
cd $dev_name
|
||||
local devnsid=`$CAT ./nsid 2>/dev/null`
|
||||
- devnsid=`echo "obase=16; $devnsid" |bc`
|
||||
+ devnsid=$(printf "%x" $devnsid)
|
||||
if [[ $devnsid = $nsid ]]; then
|
||||
found=1
|
||||
NS_ID="${dev_name##*n}"
|
@ -0,0 +1,118 @@
|
||||
commit 3847a1c25a640394c4afd2b8938ad21190bf5dbe
|
||||
Author: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
Date: Fri Oct 28 09:20:38 2022 -0500
|
||||
|
||||
Support multiple dev paths for a nvmf boot device
|
||||
|
||||
This patch adds the support for multiple dev/of paths with a nvmf boot dev
|
||||
|
||||
# bootlist -m normal -o nvme1n4
|
||||
nvme1n4
|
||||
nvme3n4
|
||||
nvme5n4
|
||||
nvme6n4
|
||||
# bootlist -m normal -o
|
||||
nvme1n4
|
||||
nvme3n4
|
||||
nvme5n4
|
||||
nvme6n4
|
||||
# bootlist -m normal -r
|
||||
/pci@800000020000017/fibre-channel@0/nvme-of/controller@50050768101935e5,ffff:nqn=nqn.1986-03.com.ibm:nvme:2145.0000020420006CEA/namespace@147
|
||||
/pci@800000020000017/fibre-channel@0/nvme-of/controller@5005076810193675,ffff:nqn=nqn.1986-03.com.ibm:nvme:2145.0000020420006CEA/namespace@147
|
||||
/pci@800000020000017/fibre-channel@0,1/nvme-of/controller@5005076810193675,ffff:nqn=nqn.1986-03.com.ibm:nvme:2145.0000020420006CEA/namespace@147
|
||||
/pci@800000020000017/fibre-channel@0,1/nvme-of/controller@50050768101935e5,ffff:nqn=nqn.1986-03.com.ibm:nvme:2145.0000020420006CEA/namespace@147
|
||||
|
||||
Signed-off-by: Wen Xiong <wenxiong@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/scripts/bootlist b/scripts/bootlist
|
||||
index 1929f65..cc8718e 100755
|
||||
--- a/scripts/bootlist
|
||||
+++ b/scripts/bootlist
|
||||
@@ -327,16 +327,10 @@ add_nvmf()
|
||||
cd $dir
|
||||
link=`get_link "device"`
|
||||
cd $link
|
||||
- for slave in $PWD/*; do
|
||||
- slavedev=${slave##*/}
|
||||
- if [[ "$slavedev" == nvme[0-9]* ]] ; then
|
||||
- cd $slave
|
||||
- res=`$FIND . -name "${ctrl_name}*"`
|
||||
- if [[ ${#res} != 0 ]]; then
|
||||
- LOGICAL_NAMES[$ctr]=${slavedev}
|
||||
- ctr=$[$ctr + 1]
|
||||
- fi
|
||||
- fi
|
||||
+ for slave in `ls -d $PWD/nvme*`; do
|
||||
+ slavedev=${slave##*/}
|
||||
+ LOGICAL_NAMES[$ctr]=${slavedev}
|
||||
+ ctr=$[$ctr + 1]
|
||||
done
|
||||
done
|
||||
|
||||
@@ -502,11 +496,17 @@ while [[ -n $1 ]]; do
|
||||
ctrl_name="${ctrl_name%n[0-9]*}"
|
||||
is_nvmf=$(is_nvmf_device $ctrl_name)
|
||||
if [[ $is_nvmf = "yes" ]]; then
|
||||
- if [[ "$1" == *"nvme-of"* ]]; then
|
||||
- master_of_path=$1
|
||||
- else
|
||||
- master_of_path=`get_of_device_name $1`
|
||||
- fi
|
||||
+ if [[ "$1" == *"nvme-of"* ]]; then
|
||||
+ master_of_path=$1
|
||||
+ else
|
||||
+ master_of_path=`get_of_device_name $1`
|
||||
+ fi
|
||||
+
|
||||
+ if [[ -z $master_of_path ]]; then
|
||||
+ echo "Device $1 does not appear to be valid." >&2
|
||||
+ exit 1
|
||||
+ fi
|
||||
+
|
||||
namespace_base=${master_of_path##*/}
|
||||
DEVTYPE="nvme-of"
|
||||
add_nvmf $ctrl_name
|
||||
diff --git a/scripts/ofpathname b/scripts/ofpathname
|
||||
index 33d7702..c576fb8 100755
|
||||
--- a/scripts/ofpathname
|
||||
+++ b/scripts/ofpathname
|
||||
@@ -1875,19 +1875,28 @@ of2l_nvmf()
|
||||
fi
|
||||
done
|
||||
|
||||
+ local ana_dir
|
||||
if [[ -n $LOGICAL_DEVNAME ]] && \
|
||||
[[ -n $nsid ]]; then
|
||||
- for dir in `$FIND /sys/block -name "${LOGICAL_DEVNAME}n[0-9]*"`; do
|
||||
- cd $dir
|
||||
-
|
||||
- local devnsid=`$CAT ./nsid 2>/dev/null`
|
||||
- devnsid=`echo "obase=16; $devnsid" |bc`
|
||||
- if [[ $devnsid = $nsid ]]; then
|
||||
- found=1
|
||||
- LOGICAL_DEVNAME="${dir##*/}"
|
||||
- break
|
||||
- fi
|
||||
+ for ana_dir in `$FIND /sys/devices/virtual/nvme-fabrics -name "$LOGICAL_DEVNAME"`; do
|
||||
+ cd $ana_dir
|
||||
+ link=`get_link "device"`
|
||||
+ cd $link
|
||||
+ for ana_name in `ls -d $PWD/nvme*`; do
|
||||
+ for dev_name in `$FIND /sys/block -name "${ana_name##*/}n[0-9]*"`; do
|
||||
+ cd $dev_name
|
||||
+ local devnsid=`$CAT ./nsid 2>/dev/null`
|
||||
+ devnsid=`echo "obase=16; $devnsid" |bc`
|
||||
+ if [[ $devnsid = $nsid ]]; then
|
||||
+ found=1
|
||||
+ NS_ID="${dev_name##*n}"
|
||||
+ LOGICAL_DEVNAME="${LOGICAL_DEVNAME}n${NS_ID}"
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+ done
|
||||
done
|
||||
+
|
||||
if [[ $found -eq 0 ]]; then
|
||||
LOGICAL_DEVNAME=""
|
||||
fi
|
70
SOURCES/powerpc-utils-rtas_dbg_return_negativ_value.patch
Normal file
70
SOURCES/powerpc-utils-rtas_dbg_return_negativ_value.patch
Normal file
@ -0,0 +1,70 @@
|
||||
commit 9caa77e4477a73064a6deea253fd3faea32648fb
|
||||
Author: Likhitha Korrapati <likhitha@linux.ibm.com>
|
||||
Date: Fri Nov 17 01:42:29 2023 -0500
|
||||
|
||||
rtas_dbg: Fix the large negative values in rtas_dbg
|
||||
|
||||
without the patch:
|
||||
[root@xxx powerpc-utils]# rtas_dbg -l ibm,rks-hcalls
|
||||
Could not get rtas token for ibm,indicator-0002
|
||||
Could not get rtas token for ibm,integrated-stop-self
|
||||
Could not get rtas token for ibm,indicator-9005
|
||||
Could not get rtas token for ibm,extended-os-term
|
||||
Could not get rtas token for ibm,indicator-0001
|
||||
Could not get rtas token for ibm,sensor-0009
|
||||
Could not get rtas token for ibm,recoverable-epow3
|
||||
Could not get rtas token for ibm,sensor-9005
|
||||
Could not get rtas token for ibm,change-msix-capable
|
||||
Could not get rtas token for ibm,sensor-0005
|
||||
Could not get rtas token for ibm,sensor-0001
|
||||
ibm,rks-hcalls -536870912
|
||||
|
||||
The large negatives values are due to incompatible format(%d).
|
||||
The data type of the token variable is uint32_t.This patch
|
||||
modifies the format(%u) to align with its data type(uint32_t).
|
||||
|
||||
with the patch:
|
||||
[root@xxx powerpc-utils]# ./src/rtas_dbg -l ibm,rks-hcalls
|
||||
Could not get rtas token for ibm,indicator-0002
|
||||
Could not get rtas token for ibm,integrated-stop-self
|
||||
Could not get rtas token for ibm,indicator-9005
|
||||
Could not get rtas token for ibm,extended-os-term
|
||||
Could not get rtas token for ibm,indicator-0001
|
||||
Could not get rtas token for ibm,sensor-0009
|
||||
Could not get rtas token for ibm,recoverable-epow3
|
||||
Could not get rtas token for ibm,sensor-9005
|
||||
Could not get rtas token for ibm,change-msix-capable
|
||||
Could not get rtas token for ibm,sensor-0005
|
||||
Could not get rtas token for ibm,sensor-0001
|
||||
ibm,rks-hcalls 3758096384
|
||||
|
||||
Reported-by: Shirisha Ganta <shirisha@linux.ibm.com>
|
||||
Signed-off-by: Likhitha Korrapati <likhitha@linux.ibm.com>
|
||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
||||
|
||||
diff --git a/src/rtas_dbg.c b/src/rtas_dbg.c
|
||||
index ebc7474..6c7854a 100644
|
||||
--- a/src/rtas_dbg.c
|
||||
+++ b/src/rtas_dbg.c
|
||||
@@ -200,10 +200,10 @@ void print_rtas_tokens(struct rtas_token *tok, struct rtas_token *tok_list)
|
||||
struct rtas_token *t;
|
||||
|
||||
if (tok)
|
||||
- printf("%-40s%d\n", tok->name, tok->token);
|
||||
+ printf("%-40s%u\n", tok->name, tok->token);
|
||||
else {
|
||||
for (t = tok_list; t; t = t->next)
|
||||
- printf("%-40s%d\n", t->name, t->token);
|
||||
+ printf("%-40s%u\n", t->name, t->token);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,7 +217,7 @@ int set_rtas_dbg(struct rtas_token *tok)
|
||||
args.nret = htobe32(1);
|
||||
args.args[0] = htobe32(tok->token);
|
||||
|
||||
- printf("Enabling rtas debug for %s (%d)\n", tok->name, tok->token);
|
||||
+ printf("Enabling rtas debug for %s (%u)\n", tok->name, tok->token);
|
||||
|
||||
rc = rtas(&args);
|
||||
|
@ -0,0 +1,65 @@
|
||||
commit 46c524be975a108d2b8d1cadb95003b9c2670c8e
|
||||
Author: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
Date: Thu Jun 29 16:41:37 2023 +0200
|
||||
|
||||
ppc64_cpu: Support partial SMT level through SYS FS smt/control files
|
||||
|
||||
The next kernel release will support partial SMT level [1] though the SYS
|
||||
FS file "devices/system/cpu/smt/control". This allows the SMT level to be
|
||||
recorded in the kernel. With the current SMT level stored in the kernel,
|
||||
when a new CPU is added, only the necessary threads are brought online.
|
||||
|
||||
The legacy way to active threads through the SYS FS files
|
||||
'devices/system/cpu/cpu<n>/online', is still used in the case the new SYS
|
||||
FS API is not available. This allows compatibility with the previous kernel
|
||||
versions.
|
||||
|
||||
[1] https://lore.kernel.org/linuxppc-dev/20230705145143.40545-1-ldufour@linux.ibm.com/
|
||||
|
||||
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
|
||||
|
||||
diff --git a/src/ppc64_cpu.c b/src/ppc64_cpu.c
|
||||
index 5fdf86a..c33a293 100644
|
||||
--- a/src/ppc64_cpu.c
|
||||
+++ b/src/ppc64_cpu.c
|
||||
@@ -56,6 +56,8 @@
|
||||
#define DIAGNOSTICS_RUN_MODE 42
|
||||
#define CPU_OFFLINE -1
|
||||
|
||||
+#define SYS_SMT_CONTROL "/sys/devices/system/cpu/smt/control"
|
||||
+
|
||||
#ifdef HAVE_LINUX_PERF_EVENT_H
|
||||
struct cpu_freq {
|
||||
int offline;
|
||||
@@ -360,6 +362,20 @@ static int is_dscr_capable(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Depends on kernel's CONFIG_HOTPLUG_CPU
|
||||
+ */
|
||||
+static int set_smt_control(int smt_state)
|
||||
+{
|
||||
+ if (set_attribute(SYS_SMT_CONTROL, "%d", smt_state)) {
|
||||
+ /* Silently ignore kernel not supporting this feature */
|
||||
+ if (errno != ENODEV)
|
||||
+ perror(SYS_SMT_CONTROL);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int do_smt(char *state, bool numeric)
|
||||
{
|
||||
int rc = 0;
|
||||
@@ -388,7 +404,9 @@ static int do_smt(char *state, bool numeric)
|
||||
return -1;
|
||||
}
|
||||
|
||||
- rc = set_smt_state(smt_state);
|
||||
+ /* Try using smt/control if failing, fall back to the legacy way */
|
||||
+ if (set_smt_control(smt_state))
|
||||
+ rc = set_smt_state(smt_state);
|
||||
}
|
||||
|
||||
return rc;
|
@ -1,27 +1,68 @@
|
||||
Name: powerpc-utils
|
||||
Version: 1.3.10
|
||||
Release: 6%{?dist}
|
||||
Release: 11%{?dist}
|
||||
Summary: PERL-based scripts for maintaining and servicing PowerPC systems
|
||||
|
||||
Group: System Environment/Base
|
||||
License: GPLv2
|
||||
URL: https://github.com/ibm-power-utilities/powerpc-utils
|
||||
Source0: https://github.com/ibm-power-utilities/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||
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
|
||||
# bz#2110129, Add NVMf-FC boot support for Power - powerpc-utils
|
||||
Patch5: powerpc-utils-c01580-add_NVMf-FC_boot_support_part1.patch
|
||||
Patch6: powerpc-utils-2fbd7c-add_NVMf-FC_boot_support_part2.patch
|
||||
Patch7: powerpc-utils-git3847a1-support_multiple_dev_paths_for_a_nvmf_boot_device.patch
|
||||
Patch8: powerpc-utils-git04e5c9-handle_nsid_as_hex.patch
|
||||
Patch9: powerpc-utils-fix_setting_primary_slave_across_reboots.patch
|
||||
|
||||
# lparstat: Fix display of mode for dedicated-donating partition
|
||||
Patch10: powerpc-utils-f4c2b0-fix_display_of_mode_for_dedicated_donating_partition.patch
|
||||
|
||||
# lparstat: Fix negative values seen while running lparstat with -E option
|
||||
Patch11: powerpc-utils-73ba26-lparstat-fix_negative_values.patch
|
||||
|
||||
# report-mixed-SMT-state
|
||||
Patch11: powerpc-utils-1.3.10-lparstat-report-mixed-SMT-state.patch
|
||||
Patch12: 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
|
||||
Patch13: powerpc-utils-1.3.10-lparstat-Fix-offline-threads-uninitialized-entries.patch
|
||||
|
||||
# ppc64_cpu: Support partial SMT level through SYS FS smt/control files
|
||||
Patch14: powerpc-utils-support_partial_SMT_level_through_SYS_FS.patch
|
||||
|
||||
# new hook mechanism has been introduced in powerpc-utils allowing application to be aware of the ongoing LPM
|
||||
patch15: powerpc-utils-c3ce3040ea9ed49345756136d61eb402e32402e8.patch
|
||||
patch16: powerpc-utils-1ac96f8ab7c27095be90eb2e69ae57e8b43eccbe.patch
|
||||
Patch17: powerpc-utils-f2a4619ef6be747f53e5f631f8b23b5edb9bb023.patch
|
||||
Patch18: powerpc-utils-372599ed28d65a79d4c3b3405a8e04034eb58e09.patch
|
||||
Patch19: powerpc-utils-e0928dc5e5375591a4cff6ffabc6063771288f59.patch
|
||||
Patch20: powerpc-utils-d0bc79aedaf76eff09a5d1f399da09561a4d4d7d.patch
|
||||
Patch21: powerpc-utils-7698adc945372e901c2bc3f7066a5a1c219bf1d8.patch
|
||||
|
||||
# lpar can't boot up after installation if nsid of nvme device is greater than 10.
|
||||
Patch22: powerpc-utils-8a7aa61c5f520df03e53e6f7e1d63b7d5c432376.patch
|
||||
|
||||
# rtas_dbg -l returns large negativ value
|
||||
Patch23: powerpc-utils-rtas_dbg_return_negativ_value.patch
|
||||
|
||||
# Support multiple dev paths for a nvme boot device
|
||||
Patch24: 0001-scripts-bootlist-Support-multiple-dev-paths-for-a-nv.patch
|
||||
|
||||
# segault when running nvram --print-config
|
||||
Patch25: powerpc-utils-1.3.10-nvram-print-config-crash.patch
|
||||
|
||||
# segault when running nvram --nvram-size 268435456
|
||||
Patch26: powerpc-utils-1.3.10-nvram-size-crash.patch
|
||||
|
||||
# nvram help page and man page are not in sync
|
||||
Patch27: powerpc-utils-1.3.10-nvram-manpage.patch
|
||||
|
||||
ExclusiveArch: ppc %{power64}
|
||||
|
||||
@ -51,13 +92,20 @@ Requires(preun): systemd
|
||||
Requires(postun): systemd
|
||||
Requires: kmod
|
||||
Requires: which
|
||||
Requires: gawk
|
||||
Requires: bc
|
||||
Requires: findutils
|
||||
Requires: grep
|
||||
Requires: sed
|
||||
Requires: systemd-udev
|
||||
Requires: coreutils
|
||||
Requires: /usr/bin/awk
|
||||
Requires: /usr/bin/basename
|
||||
Requires: /usr/bin/bc
|
||||
Requires: /usr/bin/cat
|
||||
Requires: /usr/bin/cut
|
||||
Requires: /usr/bin/echo
|
||||
Requires: /usr/bin/find
|
||||
Requires: /bin/grep
|
||||
Requires: /usr/bin/head
|
||||
Requires: /usr/bin/ls
|
||||
Requires: /usr/bin/sed
|
||||
Requires: /usr/bin/tr
|
||||
Requires: /usr/bin/udevadm
|
||||
|
||||
|
||||
%description core
|
||||
Core utilities for maintaining and servicing PowerPC systems.
|
||||
@ -66,7 +114,6 @@ Core utilities for maintaining and servicing PowerPC systems.
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
|
||||
%build
|
||||
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
|
||||
./autogen.sh
|
||||
@ -87,7 +134,7 @@ rm -rf $RPM_BUILD_ROOT/usr/share/doc/packages/powerpc-utils
|
||||
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
|
||||
install -pDm 644 %{SOURCE1} %{buildroot}%{_udevrulesdir}/90-nx-gzip.rules
|
||||
|
||||
# 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
|
||||
@ -102,6 +149,9 @@ 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*
|
||||
|
||||
# add hierachy /etc/drmgr.d/pmig
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/drmgr.d/pmig
|
||||
|
||||
%post core
|
||||
%systemd_post hcn-init.service
|
||||
# update the smt.state file with current SMT
|
||||
@ -129,7 +179,8 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
|
||||
%files core
|
||||
%license COPYING
|
||||
%dir %{_localstatedir}/lib/powerpc-utils
|
||||
%config(noreplace) %{_localstatedir}/lib/powerpc-utils/smt.state
|
||||
%dir /etc/drmgr.d/pmig
|
||||
%verify(not md5 size mtime) %config(noreplace) %{_localstatedir}/lib/powerpc-utils/smt.state
|
||||
%{_unitdir}/smtstate.service
|
||||
%{_unitdir}/smt_off.service
|
||||
%{_unitdir}/hcn-init.service
|
||||
@ -201,123 +252,158 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
|
||||
%{_mandir}/man8/nvram.8*
|
||||
%{_mandir}/man8/ofpathname.8*
|
||||
%{_mandir}/man8/drmgr.8*
|
||||
%{_mandir}/man8/drmgr-hooks.8*
|
||||
%{_mandir}/man8/lparnumascore.8*
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Jul 26 2023 Than Ngo <than@redhat.com> - 1.3.10-6
|
||||
* Sat Jun 29 2024 Than Ngo <than@redhat.com> - 1.3.10-11
|
||||
- Resolves: RHEL-23620, nvram help page and man page are not in sync
|
||||
- Resolves: RHEL-23619, segault when running nvram --nvram-size 268435456
|
||||
- Resolves: RHEL-23624, segault when running nvram --print-config
|
||||
|
||||
* Tue Jan 30 2024 Than Ngo <than@redhat.com> - 1.3.10-10
|
||||
- Resolves: RHEL-22830, Support multiple dev paths for a nvme boot device
|
||||
|
||||
* Wed Jan 10 2024 Than Ngo <than@redhat.com> - 1.3.10-9
|
||||
- Resolves: RHEL-20350, getting larger Negative value while running rtas_dbg -l
|
||||
- Resolves: RHEL-19076, installation fails if nsid of nvme device is greater than 10
|
||||
- Resolves: RHEL-11456, add new /etc/drmgr.d/pmig hierarchy
|
||||
|
||||
* Mon Nov 27 2023 Than Ngo <than@redhat.com> - 1.3.10-8
|
||||
- Resolves: RHEL-16045, Support partial SMT level through SYS FS smt/control files
|
||||
- Resolves: RHEL-11456, LPM hooks
|
||||
|
||||
* Wed Jul 26 2023 Than Ngo <than@redhat.com> - 1.3.10-7
|
||||
- Fix negative values seen while running lpar
|
||||
- Fix lparstat error with mixed SMT state
|
||||
Resolves: #2225135
|
||||
Resolves: #2225371
|
||||
|
||||
* 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
|
||||
* Wed May 10 2023 Than Ngo <than@redhat.com> - 1.3.10-6
|
||||
- Resolves: #2166870, lparstat: Fix display of mode for dedicated-donating partition
|
||||
- Resolves: #2169269, lparstat: Fix negative values seen while running lparstat with -E option
|
||||
|
||||
* 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 Dec 12 2022 Than Ngo <than@redhat.com> - 1.3.10-5
|
||||
- Resolves: #2125152, HNV bond fails to come up with sriov interface as active slave
|
||||
|
||||
* 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
|
||||
* Thu Dec 08 2022 Than Ngo <than@redhat.com> - 1.3.10-4
|
||||
- Resolves: #2150698, handle nsid of nvmf device as hexadecimal number
|
||||
- Resolves: #2150697, setup multiple device path for a nvmf boot device
|
||||
|
||||
* 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
|
||||
* Thu Nov 03 2022 Than Ngo <than@redhat.com> - 1.3.10-3
|
||||
- Resolves: #2111991, Add udev rule for the nx-gzip in to the core subpackage
|
||||
- Resolves: #2121470, Fix lsslot -c mem output when using 4GB LMB size
|
||||
- Resolves: #2110129, Add NVMf-FC boot support for Power
|
||||
|
||||
* Mon Jun 06 2022 Than Ngo <than@redhat.com> - 1.3.10-2
|
||||
- Related: #2089106, install smt.state as config file
|
||||
|
||||
* 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
|
||||
- Resolves: #1920964, P10 Power Mode Reporting
|
||||
- Resolves: #2050893, Linux Hybrid Network Virtualizatio
|
||||
- Resolves: #2065169, bootloader fails to update boot order after OS install
|
||||
- Resolves: #2071862, Fix NM HNV setting primary slave
|
||||
- Resolves: #2089106, 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
|
||||
* Fri Jan 14 2022 Than Ngo <than@redhat.com> - 1.3.9-6
|
||||
- Resolves: #2039201, santize devspec output of a newline if one is present
|
||||
|
||||
* Thu Dec 09 2021 Than Ngo <than@redhat.com> - 1.3.9-1
|
||||
- Resolves: #2028690, rebase to 1.3.9
|
||||
* Tue Dec 07 2021 Than Ngo <than@redhat.com> - 1.3.9-5
|
||||
- Resolves: #2024038 - HNV interface fails to configure when added in lpar shutdown state
|
||||
|
||||
* 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.9-4
|
||||
- enable support vnic as backend for HNV interface
|
||||
- fixed hexdump format
|
||||
Resolves: #2022235
|
||||
|
||||
* Thu Nov 11 2021 Than Ngo <than@redhat.com> - 1.3.8-9
|
||||
- Resolves: #2022225, enable support vnic as backend for HNV interfaces
|
||||
* Wed Oct 20 2021 Than Ngo <than@redhat.com> - 1.3.9-3
|
||||
- Resolves: #2014916, marked smt.state as %%ghost
|
||||
|
||||
* Thu Oct 07 2021 Than Ngo <than@redhat.com> - 1.3.8-8
|
||||
- lsdevinfo: optimize criteria filtering
|
||||
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 1.3.9-2
|
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||
Related: rhbz#1991688
|
||||
|
||||
* Fri Jul 16 2021 Than Ngo <than@redhat.com> - 1.3.8-7
|
||||
- Related: #1938420, Fix checking HCNID array size at boot time
|
||||
* Mon Jul 19 2021 Than Ngo <than@redhat.com> - 1.3.9-1
|
||||
- Resolves: #1873868, rebase to 1.3.9
|
||||
|
||||
* 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)
|
||||
* Fri Jun 11 2021 Than Ngo <than@redhat.com> - 1.3.8-9
|
||||
- Resolves: #1937038, New lparstat -x option to report the security flavor
|
||||
- Use od instead xxd
|
||||
- rebase patch fix_boot-time_bonding_interface_cleanup_and_avoid_use_ifcfg
|
||||
- ppc64_cpu --help does not list --version as an option
|
||||
- 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
|
||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.3.8-8
|
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||
|
||||
* 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
|
||||
* Mon Feb 08 2021 Than Ngo <than@redhat.com> - 1.3.8-7
|
||||
- updated hcnmgr manpage
|
||||
|
||||
* 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
|
||||
* Mon Feb 08 2021 Than Ngo <than@redhat.com> - 1.3.8-6
|
||||
- Fix boot-time bonding interface cleanup and avoid use ifcfg
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.8-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Tue Dec 22 2020 Than Ngo <than@redhat.com> - 1.3.8-4
|
||||
- additional patches to support Linux Hybrid Network Virtualization
|
||||
- move commands that dont depend on perl to core subpackage
|
||||
- update hcnmgr patch
|
||||
- sys_ident: Skip length field from search
|
||||
- ofpathname: Use NVMe controller physical nsid
|
||||
|
||||
* Thu Oct 01 2020 Than Ngo <than@redhat.com> - 1.3.8-3
|
||||
- add hcnmgr man page
|
||||
|
||||
* Thu Oct 01 2020 Than Ngo <than@redhat.com> - 1.3.8-2
|
||||
- Related: #1853297, add missing hcnmgr manpage and Req on which
|
||||
- clean up systemd service
|
||||
|
||||
* 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
|
||||
* Fri Sep 04 2020 Than Ngo <than@redhat.com> - 1.3.8-1
|
||||
- update to 1.3.8
|
||||
|
||||
* Wed Jun 24 2020 Than Ngo <than@redhat.com> - 1.3.6-11
|
||||
- Resolves: #1847604, ofpathname: failed to boot
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.7-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Fri Jun 19 2020 Than Ngo <than@redhat.com> - 1.3.6-10
|
||||
- Resolves: #1848839, update lparstat man page with -E option
|
||||
* Thu Jul 09 2020 Than Ngo <than@redhat.com> - 1.3.7-6
|
||||
- Track and expose idle PURR and SPURR ticks
|
||||
- ofpathname: speed up l2of_scsi()
|
||||
- ofpathname: failed to boot
|
||||
- update lparstat man page with -E option
|
||||
- enable support for ibm,drc-info property
|
||||
|
||||
* Fri May 22 2020 Than Ngo <than@redhat.com> - 1.3.6-9
|
||||
- Resolves: #1837751, ofpathname: speed up l2of_scsi()
|
||||
* Sat Mar 28 2020 Than Ngo <than@redhat.com> - 1.3.7-5
|
||||
- move drmgr in core to avoid pulling in Perl
|
||||
|
||||
* Fri May 15 2020 Than Ngo <than@redhat.com> - 1.3.6-8
|
||||
- Related: #1783285, update the patches V4
|
||||
* Mon Mar 09 2020 Than Ngo <than@redhat.com> - 1.3.7-4
|
||||
- update_flash_nv: fixup null byte command substitution warning
|
||||
- drmgr: Fix segfault when running 'drmgr -c pmig -h'
|
||||
|
||||
* Wed May 13 2020 Than Ngo <than@redhat.com> - 1.3.6-7
|
||||
- Resolves: #1783285, Track and expose idle PURR and SPURR ticks
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.7-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* 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
|
||||
* Thu Dec 19 2019 Than Ngo <than@redhat.com> - 1.3.7-2
|
||||
- add systemd service to set default system SMT mode
|
||||
|
||||
* Wed Dec 04 2019 Than Ngo <than@redhat.com> - 1.3.6-5
|
||||
- Resolves: #1779257, Safe bootlist update
|
||||
* Wed Dec 18 2019 Than Ngo <than@redhat.com> - 1.3.7-1
|
||||
- update to 1.3.7
|
||||
|
||||
* Wed Jul 24 2019 Than Ngo <than@redhat.com> - 1.3.6-4
|
||||
- Resolves: #1719372 - wrong disk gets booted after installation
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.6-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Fri Jun 07 2019 Than Ngo <than@redhat.com> - 1.3.6-3
|
||||
- Resolves: #1718254, improve handling of errors from subsidiary scripts
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.6-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Wed Jun 05 2019 Than Ngo <than@redhat.com> - 1.3.6-2
|
||||
- Resolves: #1716425, lparstat and update_flash fixes
|
||||
* Wed Jan 16 2019 Than Ngo <than@redhat.com> - 1.3.6-1
|
||||
- update to 1.3.6
|
||||
|
||||
* Mon Apr 01 2019 Than Ngo <than@redhat.com> - 1.3.6-1
|
||||
- Resolves: #1666618, rebase to 1.3.6
|
||||
* Fri Nov 30 2018 Than Ngo <than@redhat.com> - 1.3.5-4
|
||||
- install missing pseries_platform and update_flash_nv man pages
|
||||
|
||||
* Tue Dec 04 2018 Than Ngo <than@redhat.com> - 1.3.5-5
|
||||
- Related: #1655903, add missing man pages
|
||||
* Thu Nov 29 2018 Than Ngo <than@redhat.com> - 1.3.5-3
|
||||
- added pseries_platform and update_flash_nv man pages
|
||||
|
||||
* Tue Dec 04 2018 Than Ngo <than@redhat.com> - 1.3.5-4
|
||||
- Resolves: #1655903, lsslot -c mem is not displaying any information
|
||||
|
||||
* Tue Nov 27 2018 Than Ngo <than@redhat.com> - 1.3.5-3
|
||||
- Resolves: #1653621, fix to display logical name using bootlist -o option
|
||||
|
||||
* Sat Nov 10 2018 Than Ngo <than@redhat.com> - 1.3.5-2
|
||||
- fix metadate issue detected by rpmdiff
|
||||
Related: #1608172
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.5-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Mon Jun 18 2018 Dan Horák <dan[at]danny.cz> - 1.3.5-1
|
||||
- Rebased to 1.3.5
|
||||
|
Loading…
Reference in New Issue
Block a user