- 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
This commit is contained in:
Than Ngo 2020-12-22 12:23:23 +01:00
parent 9b0e5ec27e
commit f30d899cba
7 changed files with 470 additions and 111 deletions

View File

@ -0,0 +1,78 @@
From 21c860888425762468d339950518ab8b0940ecea Mon Sep 17 00:00:00 2001
From: Tyrel Datwyler <tyreld@linux.ibm.com>
Date: Mon, 5 Oct 2020 13:03:45 -0700
Subject: [PATCH] ofpathname: Use NVMe controller physical nsid
Linux creates logical block devices of the the form nvmeXnYpZ such that X = the
controller, Y = namepsace, and Z = partition. For example:
/dev/nvme0n1p1
The Linux namespace numbering scheme for namespaces always starts at 1 and
increases monotonically regardless of the actual numbering scheme of the
namespaces as seen by the physical NVMe controller. Accordingly, the Open
firmware path binding utilizes the namespace id as seen by the controller and
not the necessarily the one given in the logical block device name.
As such we need to use the "nsid" attribute in the sysfs entry for the logical
device to properly map back and forth from OP pathnames.
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
---
scripts/ofpathname | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/scripts/ofpathname b/scripts/ofpathname
index 2ceae25..41b8c5c 100755
--- a/scripts/ofpathname
+++ b/scripts/ofpathname
@@ -659,6 +659,11 @@ l2of_nvme()
devspec=`$CAT $PWD/device/devspec | tr -d '\000'`
if [[ -n $devspec ]]; then
found=1
+ if [[ -n $devnsid ]]; then
+ # Linux logical nsid might not match nvme controller nsid
+ goto_dir $dir "nsid"
+ devnsid=`$CAT $PWD/nsid | tr -d '\000'`
+ fi
break
fi
done
@@ -1609,16 +1614,9 @@ of2l_nvme()
local dir
local link
- for dir in `$FIND /sys/block -name "nvme*n$nsid"`; do
+ for dir in `$FIND /sys/class/nvme -name "nvme[0-9]*"`; do
cd $dir
- link=`get_link "device"` # points to nvme[0-9]+ (non-namespace)
- if [[ -n $link ]]; then
- cd $link
- else
- continue
- fi
-
link=`get_link "device"` # points to pci address dir
if [[ -n $link ]]; then
cd $link
@@ -1635,6 +1633,16 @@ of2l_nvme()
fi
done
+ for dir in `$FIND /sys/block -name "${LOGICAL_DEVNAME}n[0-9]*"`; do
+ cd $dir
+
+ local devnsid=`$CAT ./nsid 2>/dev/null`
+ if [[ $devnsid = $nsid ]]; then
+ LOGICAL_DEVNAME="${dir##*/}"
+ break
+ fi
+ done
+
if [[ -n $LOGICAL_DEVNAME ]] \
&& [[ -n $part ]]; then
--
1.8.3.1

View File

@ -0,0 +1,13 @@
diff -up powerpc-utils-1.3.8/src/sys_ident.c.me powerpc-utils-1.3.8/src/sys_ident.c
--- powerpc-utils-1.3.8/src/sys_ident.c.me 2020-10-06 15:35:56.620350621 +0200
+++ powerpc-utils-1.3.8/src/sys_ident.c 2020-10-06 15:36:31.468849936 +0200
@@ -267,7 +267,8 @@ print_proc_sn_value(void)
"parameter from RTAS\n");
return 2;
}
- pos = strstr(buf, "uid=");
+ /* Ignore length field (first 2 bytes) */
+ pos = strstr(buf +2, "uid=");
if (pos == NULL) {
fprintf(stderr, "Parameter from RTAS does "
"not contain uid\n");

View File

@ -0,0 +1,162 @@
commit 4b2d10942e2d964ecc1fe58c9460c34993ff10be
Author: Mingming Cao <mmc@linux.vnet.ibm.com>
Date: Thu Nov 19 21:38:24 2020 -0800
Disable vnic as backup vdevice for migratable SR_IOV
In version 1.0 we only allow configure ibmveth as
migritable SR_IOV backup vdevice. When ibmvnic become
more stablized we will enable vnic as backup.
Signed-off-by: Mingming Cao <mmc@linux.vnet.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/scripts/hcnmgr b/scripts/hcnmgr
index 1135a85..0c09d8c 100644
--- a/scripts/hcnmgr
+++ b/scripts/hcnmgr
@@ -37,6 +37,8 @@ DRC_INDEX=0
DEVNAME=""
MODE=""
PHYSLOC=""
+VIO_TYPE=""
+VNIC_SPT=""
# Usage statements
usage() {
@@ -80,6 +82,7 @@ E_EPERM=1 # Platform not supported
E_BUSY=16 # Device busy
E_ENODEV=19 # Failed get device name
E_NOMODULE=5 # Failed to load bonding module
+E_INVAL_DEV=6 # Vdevice not supported
E_ENETUNREACH=101 # No network management command nmcli
#
@@ -93,19 +96,22 @@ err() {
case $eno in
"$E_INVAL")
- e_mesg="$HCNCMD:error code $eno, hybrid network ID HCNID does not exist"
+ e_mesg="$HCNCMD:error code $eno, Hybrid network ID HCNID does not exist"
+ ;;
+ "$E_INVAL_DEV")
+ e_mesg="$HCNCMD:error code $eno, Backing vdevice not supported"
;;
"$E_EPERM")
- e_mesg="$HCNCMD:error code $eno, platform is not supported"
+ e_mesg="$HCNCMD:error code $eno, Platform is not supported"
;;
"$E_BUSY")
- e_mesg="$HCNCMD:error code $eno, network device busy, no backup device"
+ e_mesg="$HCNCMD:error code $eno, Network device busy, no backup device"
;;
"$E_ENODEV")
- e_mesg="$HCNCMD:error code $eno, failed to find device or get device name"
+ e_mesg="$HCNCMD:error code $eno, Failed to find device or get device name"
;;
"$E_NOMODULE")
- e_mesg="$HCNCMD:error code $eno, failed to load bonding module"
+ e_mesg="$HCNCMD:error code $eno, Failed to load bonding module"
;;
"$E_ENETUNREACH")
e_mesg="$HCNCMD:error code $eno, nmcli command not installed"
@@ -147,6 +153,7 @@ hcnlog() {
esac
}
+
# function search_dev:
# Given DRX_INDEX, Search for device-tree, looking for migratable SR_IOV
# backend vnic or ibmveth device to configure hybrid network
@@ -171,6 +178,7 @@ search_dev() {
if [ -e "$dev"/ibm,hcn-id ] && get_dev_hcn "$dev"; then
hcnlog DEBUG "search_dev: found device "
hcnlog DEBUG "search_dev: exit"
+ VIO_TYPE="SRIOV"
return $E_SUCCESS
fi
done
@@ -184,6 +192,7 @@ search_dev() {
if [[ $index == "$1" ]]; then
hcnlog DEBUG "found matching drc_index $index in $dev"
if [ -e "$dev"/ibm,hcn-id ] && get_dev_hcn "$dev"; then
+ VIO_TYPE="VNIC"
hcnlog DEBUG "search_dev: found device "
hcnlog DEBUG "search_dev: exit"
return $E_SUCCESS
@@ -201,6 +210,7 @@ search_dev() {
if [ -e "$dev"/ibm,hcn-id ] && get_dev_hcn "$dev"; then
hcnlog DEBUG "search_dev: found device "
hcnlog DEBUG "search_dev: exit"
+ VIO_TYPE="L_LAN"
return $E_SUCCESS
fi
fi
@@ -340,6 +350,10 @@ do_config_vdevice() {
cfghcn() {
hcnlog DEBUG "cfghcn: enter $1"
search_dev "$1"
+ if [[ $VIO_TYPE == "VNIC" && $VNIC_SPT == "OFF" ]]; then
+ hcnlog WARN "Backing device $VIO_TYPE for Migratable VF is not supported in hcnmgr version $VERSION"
+ err $E_INVAL_DEV
+ fi
do_config_vdevice
return $E_SUCCESS
}
@@ -512,23 +526,10 @@ scanhcn() {
done
done
- hcnlog DEBUG "search vnic device with ibm,hcn-id propterty......"
+ hcnlog DEBUG "search ibmveth device with ibm,hcn-id propterty......"
# Look at every vNIC device with ibm,hcn-id propterty
# join or create bond for this hcnid if not exist, add vnic device as
# slave for this bond accosiated with hcnid, if not already to
- for dev in "$DT_PATH"/vdevice/vnic*; do
- [ -d "$dev" ] || continue
- if [ -e "$dev"/ibm,hcn-id ] && get_dev_hcn "$dev"; then
- hcnlog DEBUG "scanhcn found vnic device with hcnid "
- hcnlog INFO "scanhcn configure HCN and vnic device"
- do_config_vdevice
- fi
- done
-
- # Look at every veth device with ibm,hcn-id propterty
- # join or create bond for this hcnid if not exist, add ibmveth device as
- # slave for this bond accosiated with hcnid, if not already to
- hcnlog DEBUG "search ibmveth device with ibm,hcn-id propterty......"
for dev in "$DT_PATH"/vdevice/l-lan*; do
[ -d "$dev" ] || continue
if [ -e "$dev"/ibm,hcn-id ] && get_dev_hcn "$dev"; then
@@ -538,6 +539,21 @@ scanhcn() {
fi
done
+ if [[ $VNIC_SPT != "OFF" ]]; then
+ hcnlog DEBUG "search vnic device with ibm,hcn-id propterty......"
+ # Look at every vNIC device with ibm,hcn-id propterty
+ # join or create bond for this hcnid if not exist, add vnic device as
+ # slave for this bond accosiated with hcnid, if not already to
+ for dev in "$DT_PATH"/vdevice/vnic*; do
+ [ -d "$dev" ] || continue
+ if [ -e "$dev"/ibm,hcn-id ] && get_dev_hcn "$dev"; then
+ hcnlog DEBUG "scanhcn found vnic device with hcnid "
+ hcnlog INFO "scanhcn configure HCN and vnic device"
+ do_config_vdevice
+ fi
+ done
+ fi
+
# Next clean up dead connections left from orgitinal LPAR after inactive miration
# list of all HCN ids
@@ -583,6 +599,9 @@ fi
if ! nmcli --version >/dev/null 2>&1; then
err $E_ENETUNREACH
fi
+if [[ $VERSION == "1.0" ]]; then
+ VNIC_SPT="OFF"
+fi
#Validate bonding module is loaded
if ! lsmod | grep -q bonding; then

View File

@ -0,0 +1,86 @@
commit e51995667279164a6c8ce4c3ba0217fffda22d6d
Author: Mingming Cao <mmc@linux.vnet.ibm.com>
Date: Thu Nov 19 21:41:31 2020 -0800
Clean up dead network config interface after inactive migration
With inactive parition migration, we found there are
dead network interface asscoiated with the SR_IOV from
source LPAR that still exist.
We need to cleanup the old network interface
related to this devname from source LPAR. Normally
in the active parition migration case, this was done
when HMC issue commands to OS remove the
VF from hybrid network. Because of the inactive
migration, the OS was not notified before migration
that the VF was removed, thus leaves the dead network
interface belongs on the original MVF on source lpar
not cleaned up. This cause the confusion of the network
manager to bring up the bondings with new MVFs at destination
LPAR.
After inactive parition migration the same devname
could possiblily used at the destination LPAR.
It can be assigned to a different hybrid
network (different hcnid). At the OS boot time,
the same devname but with different hcnid will
be configured. However the old network work interface
associated with the same devname from the source LPAR
has not been cleaned up yet.
This patch fix this by during the boot time scan and
if found an VFs has more than two bonding interfaces,
or has old VF ifcfg, removed the expired one.
Signed-off-by: Mingming Cao <mmc@linux.vnet.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/scripts/hcnmgr b/scripts/hcnmgr
index 0c09d8c..a76505e 100644
--- a/scripts/hcnmgr
+++ b/scripts/hcnmgr
@@ -518,6 +518,27 @@ scanhcn() {
[ -d "$dev" ] || continue
if [ -e "$dev"/ibm,hcn-id ] && get_dev_hcn "$dev"; then
hcnlog DEBUG "scanhcn found sr-iov device with hcnid "
+
+ # After online from inactive migration, destination
+ # LPAR may have same mvf devname but associated with different
+ # bonding than from source LPAR
+ # clean up expired bonding SR_IOV connections
+
+ for cfg in $(ls $IFCONFIG_PATH | grep "$DEVNAME" | grep "bond"); do
+ hid=$(echo "$cfg" | sed -e 's/ifcfg-//' | cut -d '-' -f 1 | sed -e 's/bond//')
+ if [ -e "$IFCONFIG_PATH/ifcfg-$DEVNAME" ]; then
+ rm "$IFCONFIG_PATH/ifcfg-$DEVNAME"
+ fi
+ if [[ $hid != "" && $hid != "$HCNID" ]] ; then
+ hcnlog INFO "Delete dead bonding slave ifcfg file $IFCONFIG_PATH/$cfg"
+ rm $IFCONFIG_PATH/"$cfg"
+ if nmcli -f NAME con show | grep -q "bond$hid-$DEVNAME\s"; then
+ hcnlog INFO "Delete dead bonding connection $connection"
+ nmcli con delete "bond$hid-$DEVNAME"
+ fi
+ fi
+ done
+
hcnlog INFO "scanhcn configure HCN and sr-iov device"
do_config_vdevice
# Save found HCN ids in array HcnIds
@@ -558,13 +579,12 @@ scanhcn() {
# list of all HCN ids
ids="${HcnIds[*]}"
-
# After inactive migration, LPAR may have old bonding connections
# with network device on original LPAR
- # clean up dead bonding connections
+ # clean up dead bonding connections
for connection in $(nmcli -f NAME con show | grep "${ids// /\\|}"); do
dev=$(echo "$connection" | cut -d '-' -f 2)
- if [ ! -e /sys/class/net/"$dev" ]; then
+ if [[ $dev != "NAME" && ! -e /sys/class/net/"$dev" ]]; then
hcnlog INFO "Delete dead bonding connection $connection"
nmcli con delete "$connection"
fi

View File

@ -0,0 +1,94 @@
commit f1ec5f04fdac3e87c3c85c2d85f79339d916e864
Author: Mingming Cao <mmc@linux.vnet.ibm.com>
Date: Thu Nov 19 21:30:40 2020 -0800
HNV fixes for qrydev and remove lsdevinfo
This patch fixes a few issues found during testing:
1) Fix qrydev checking for active interface error
2) Skip collecting lsdevinfo right before migration
When the LPARs has large number of devices, this can
take quite a long time and flood the log message.
3) Wait for OS ready to lookup device name for configure
HNV device. We need give OS longer time to prepare pci
device after DLPAR to show up for ofpathname(). We have
run into several issues HNV issues the hcncfgdrc command
to configure the vdevices before ofpathname able
to find the device name yet.
4) Currently the hybrid network virtualization is only
supported on PowerVM LPAR. We should allow exit the hcnmgr
gracefully on other power platform instead of return error.
Signed-off-by: Mingming Cao <mmc@linux.vnet.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/scripts/hcnmgr b/scripts/hcnmgr
index e699c6a..1135a85 100644
--- a/scripts/hcnmgr
+++ b/scripts/hcnmgr
@@ -218,7 +218,7 @@ search_dev() {
# $1 path to device-tree device
#
get_dev_hcn() {
- local wait=30
+ local wait=12
local dev=$1
hcnlog DEBUG "get_dev_hcn: enter $1"
@@ -235,7 +235,7 @@ get_dev_hcn() {
fi
hcnlog DEBUG "ofpathname return $?, devname is $DEVNAME rety counter $wait"
- sleep 1
+ sleep 15
((wait--))
if [[ $wait == 0 ]]; then
@@ -393,7 +393,7 @@ qrydev() {
BOND_PATH=$BOND_BASEPATH/$BONDNAME/bonding
hcnlog DEBUG "check if the network interface for this SR_IOV is not up, return success"
- if ! nmcli -f DEVICE con show --active | grep -q "$BONDNAME-$DEVNAME"; then
+ if ! nmcli -f DEVICE con show --active | grep -q "$DEVNAME"; then
hcnlog DEBUG "network connection $BONDNAME-$DEVNAME is inactive or nonexist"
hcnlog DEBUG "HCNID $HCNID devname $DEVNAME mode $MODE physloc $PHYSLOC"
hcnlog DEBUG "qryhcn: exit"
@@ -435,7 +435,6 @@ show_hcnstatus() {
nmcli connection show >>$LOG_FILE
nmcli device status >>$LOG_FILE
ip addr show >>$LOG_FILE
- lsdevinfo >>$LOG_FILE
}
#
@@ -569,10 +568,15 @@ exec &> >(tee -a $LOG_FILE)
NOW=$(date +"%m-%d-%Y %T")
echo "=======================$NOW============================"
+HCNCMD=$(basename "$0")
+hcnlog DEBUG "$HCNCMD enter"
+
#Validate this tool is running on powerpc platform
. "$PSERIES_PLATFORM"
if [ "$platform" != "$PLATFORM_PSERIES_LPAR" ]; then
- err $E_EPERM
+ hcnlog INFO "HNV is only supported on PowerVM LPAR"
+ hcnlog INFO "$HCNCMD exit"
+ exit 0
fi
#Validate NMCLI packages is install to manage networking
@@ -588,9 +592,6 @@ if ! lsmod | grep -q bonding; then
fi
fi
-HCNCMD=$(basename "$0")
-hcnlog DEBUG "$HCNCMD enter"
-
#getops for help and version
while getopts "sVhd:" arg; do
case "$arg" in

View File

@ -37,85 +37,6 @@ diff -up powerpc-utils-1.3.8/man/hcnmgr.8.me powerpc-utils-1.3.8/man/hcnmgr.8
+.B +.B
+\fB-h\fP +\fB-h\fP
+Display this help information and exit +Display this help information and exit
diff -up powerpc-utils-1.3.8/scripts/hcnmgr.me powerpc-utils-1.3.8/scripts/hcnmgr
--- powerpc-utils-1.3.8/scripts/hcnmgr.me 2020-10-01 13:03:10.839439027 +0200
+++ powerpc-utils-1.3.8/scripts/hcnmgr 2020-10-01 13:06:18.479509944 +0200
@@ -1,4 +1,4 @@
-#! /bin/bash
+#!/usr/bin/bash
# Copyright (c) 2020 International Business Machines
#
@@ -562,34 +562,7 @@ scanhcn() {
# Main
#
-#All echo messages goes into $LOG_FILE
-exec &> >(tee -a $LOG_FILE)
-
-#Start debug log $LOG_FILE with date and time
-NOW=$(date +"%m-%d-%Y %T")
-echo "=======================$NOW============================"
-
-#Validate this tool is running on powerpc platform
-. "$PSERIES_PLATFORM"
-if [ "$platform" != "$PLATFORM_PSERIES_LPAR" ]; then
- err $E_EPERM
-fi
-
-#Validate NMCLI packages is install to manage networking
-if ! nmcli --version >/dev/null 2>&1; then
- err $E_ENETUNREACH
-fi
-
-#Validate bonding module is loaded
-if ! lsmod | grep -q bonding; then
- hcnlog DEBUG "HCNMGR: Bonding module not loaded, load module ..."
- if ! modprobe bonding; then
- err $E_NOMODULE
- fi
-fi
-
HCNCMD=$(basename "$0")
-hcnlog DEBUG "$HCNCMD enter"
#getops for help and version
while getopts "sVhd:" arg; do
@@ -616,6 +589,34 @@ while getopts "sVhd:" arg; do
esac
done
+#All echo messages goes into $LOG_FILE
+exec &> >(tee -a $LOG_FILE)
+
+hcnlog DEBUG "$HCNCMD enter"
+
+#Start debug log $LOG_FILE with date and time
+NOW=$(date +"%m-%d-%Y %T")
+echo "=======================$NOW============================"
+
+#Validate this tool is running on powerpc platform
+. "$PSERIES_PLATFORM"
+if [ "$platform" != "$PLATFORM_PSERIES_LPAR" ]; then
+ err $E_EPERM
+fi
+
+#Validate NMCLI packages is install to manage networking
+if ! nmcli --version >/dev/null 2>&1; then
+ err $E_ENETUNREACH
+fi
+
+#Validate bonding module is loaded
+if ! lsmod | grep -q bonding; then
+ hcnlog DEBUG "HCNMGR: Bonding module not loaded, load module ..."
+ if ! modprobe bonding; then
+ err $E_NOMODULE
+ fi
+fi
+
#Log this scripts command line to syslog
hcnlog INFO "$HCNCMD $*"
diff -up powerpc-utils-1.3.8/Makefile.am.me powerpc-utils-1.3.8/Makefile.am diff -up powerpc-utils-1.3.8/Makefile.am.me powerpc-utils-1.3.8/Makefile.am
--- powerpc-utils-1.3.8/Makefile.am.me 2020-10-01 13:33:29.444024403 +0200 --- powerpc-utils-1.3.8/Makefile.am.me 2020-10-01 13:33:29.444024403 +0200
+++ powerpc-utils-1.3.8/Makefile.am 2020-10-01 13:34:08.284854506 +0200 +++ powerpc-utils-1.3.8/Makefile.am 2020-10-01 13:34:08.284854506 +0200
@ -129,4 +50,3 @@ diff -up powerpc-utils-1.3.8/Makefile.am.me powerpc-utils-1.3.8/Makefile.am
EXTRA_DIST += $(bin_SCRIPTS) $(sbin_SCRIPTS) $(man_MANS) EXTRA_DIST += $(bin_SCRIPTS) $(sbin_SCRIPTS) $(man_MANS)
diff -up powerpc-utils-1.3.8/Makefile.in.me powerpc-utils-1.3.8/Makefile.in

View File

@ -1,7 +1,7 @@
Name: powerpc-utils Name: powerpc-utils
Version: 1.3.8 Version: 1.3.8
Release: 3%{?dist} Release: 4%{?dist}
Summary: Utilities for PowerPC platforms Summary: PERL-based scripts for maintaining and servicing PowerPC systems
License: GPLv2 License: GPLv2
URL: https://github.com/ibm-power-utilities/powerpc-utils URL: https://github.com/ibm-power-utilities/powerpc-utils
@ -20,16 +20,9 @@ BuildRequires: libservicelog-devel >= 1.0.1-2
BuildRequires: perl-generators BuildRequires: perl-generators
BuildRequires: systemd BuildRequires: systemd
Requires: which
# rtas_dump explicit dependency # rtas_dump explicit dependency
Requires: perl(Data::Dumper) Requires: perl(Data::Dumper)
Requires: %{name}-core = %{version}-%{release} Requires: %{name}-core = %{version}-%{release}
Requires: systemd
Requires: kmod
Requires: which
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
Patch1: powerpc-utils-1.3.8-man.patch Patch1: powerpc-utils-1.3.8-man.patch
Patch2: powerpc-utils-1.3.8-makefile.patch Patch2: powerpc-utils-1.3.8-makefile.patch
@ -38,14 +31,23 @@ Patch4: powerpc-utils-1.3.5-update_flash_nv.patch
Patch5: powerpc-utils-1.3.8-install-man.patch Patch5: powerpc-utils-1.3.8-install-man.patch
Patch6: powerpc-utils-manpage-lparstat.patch Patch6: powerpc-utils-manpage-lparstat.patch
Patch7: powerpc-utils-1.3.8-hcnmgr.patch Patch7: powerpc-utils-1.3.8-hcnmgr.patch
Patch8: 0001-ofpathname-Use-NVMe-controller-physical-nsid.patch
Patch9: 0002-sys_ident--skip-length-field-from-search.patch
Patch10: powerpc-utils-1.3.8-f1ec5f04fdac3e87c3c85c2d85f79339d916e864.patch
Patch11: powerpc-utils-1.3.8-4b2d10942e2d964ecc1fe58c9460c34993ff10be.patch
Patch12: powerpc-utils-1.3.8-e51995667279164a6c8ce4c3ba0217fffda22d6d.patch
%description %description
Utilities for PowerPC platforms. PERL-based scripts for maintaining and servicing PowerPC systems.
%package core %package core
Summary: Core utilities for PowerPC platforms Summary: Core utilities for maintaining and servicing PowerPC systems
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
Requires: kmod
Requires: which
Requires: /usr/bin/awk Requires: /usr/bin/awk
Requires: /usr/bin/basename Requires: /usr/bin/basename
Requires: /usr/bin/bc Requires: /usr/bin/bc
@ -62,7 +64,7 @@ Requires: /usr/bin/udevadm
%description core %description core
Utilities needed when installing Fedora on PowerPC systems. Core utilities for maintaining and servicing PowerPC systems.
%prep %prep
@ -100,7 +102,7 @@ ln -s serv_config.8 %{buildroot}%{_mandir}/man8/uspchrp.8
# deprecated, use sosreport instead # deprecated, use sosreport instead
rm -f $RPM_BUILD_ROOT%{_sbindir}/snap $RPM_BUILD_ROOT%{_mandir}/man8/snap.8* rm -f $RPM_BUILD_ROOT%{_sbindir}/snap $RPM_BUILD_ROOT%{_mandir}/man8/snap.8*
%post %post core
systemctl daemon-reload >/dev/null 2>&1 || : systemctl daemon-reload >/dev/null 2>&1 || :
systemctl start hcn-init.service >/dev/null 2>&1 || : systemctl start hcn-init.service >/dev/null 2>&1 || :
systemctl enable hcn-init.service >/dev/null 2>&1 || : systemctl enable hcn-init.service >/dev/null 2>&1 || :
@ -108,7 +110,7 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
/usr/sbin/smtstate --save >/dev/null 2>&1 || : /usr/sbin/smtstate --save >/dev/null 2>&1 || :
%preun %preun core
svc=$(systemctl list-units -la | grep -Fq smtstate.service; echo $?) svc=$(systemctl list-units -la | grep -Fq smtstate.service; echo $?)
if [ "$svc" = "0" ]; then if [ "$svc" = "0" ]; then
systemctl stop smtstate.service >/dev/null 2>&1 || : systemctl stop smtstate.service >/dev/null 2>&1 || :
@ -119,22 +121,28 @@ if systemctl is-enabled hcn-init.service |grep -q "enabled"; then
systemctl disable hcn-init.service >/dev/null 2>&1 || : systemctl disable hcn-init.service >/dev/null 2>&1 || :
fi fi
%postun %postun core
systemctl daemon-reload >/dev/null 2>&1 || : systemctl daemon-reload >/dev/null 2>&1 || :
%files %files
# PERL-based scripts for maintaining and servicing PowerPC systems
%doc README Changelog %doc README Changelog
%{_sbindir}/hvcsadmin
%{_sbindir}/rtas_dump
%{_mandir}/man8/hvcsadmin.8*
%{_mandir}/man8/rtas_dump.8*
%files core
%license COPYING
%dir /var/lib/powerpc-utils %dir /var/lib/powerpc-utils
/var/lib/powerpc-utils/smt.state /var/lib/powerpc-utils/smt.state
%{_unitdir}/smtstate.service %{_unitdir}/smtstate.service
%{_unitdir}/smt_off.service %{_unitdir}/smt_off.service
%{_unitdir}/hcn-init.service %{_unitdir}/hcn-init.service
%{_bindir}/amsstat %{_bindir}/amsstat
%{_sbindir}/activate_firmware %{_sbindir}/activate_firmware
%{_sbindir}/bootlist %{_sbindir}/bootlist
%{_sbindir}/errinjct %{_sbindir}/errinjct
%{_sbindir}/hvcsadmin
%{_sbindir}/lparstat %{_sbindir}/lparstat
%{_sbindir}/lsdevinfo %{_sbindir}/lsdevinfo
%{_sbindir}/lsprop %{_sbindir}/lsprop
@ -145,7 +153,6 @@ systemctl daemon-reload >/dev/null 2>&1 || :
%{_sbindir}/nvsetenv %{_sbindir}/nvsetenv
%{_sbindir}/ppc64_cpu %{_sbindir}/ppc64_cpu
%{_sbindir}/rtas_dbg %{_sbindir}/rtas_dbg
%{_sbindir}/rtas_dump
%{_sbindir}/rtas_event_decode %{_sbindir}/rtas_event_decode
%{_sbindir}/rtas_ibm_get_vpd %{_sbindir}/rtas_ibm_get_vpd
%{_sbindir}/serv_config %{_sbindir}/serv_config
@ -163,13 +170,15 @@ systemctl daemon-reload >/dev/null 2>&1 || :
%{_sbindir}/hcnversion %{_sbindir}/hcnversion
%{_sbindir}/vcpustat %{_sbindir}/vcpustat
%{_sbindir}/smtstate %{_sbindir}/smtstate
%{_sbindir}/nvram
%{_sbindir}/ofpathname
%{_sbindir}/pseries_platform
%{_sbindir}/drmgr
%{_mandir}/man1/amsstat.1* %{_mandir}/man1/amsstat.1*
%{_mandir}/man5/lparcfg.5* %{_mandir}/man5/lparcfg.5*
%{_mandir}/man8/activate_firmware.8* %{_mandir}/man8/activate_firmware.8*
%{_mandir}/man8/bootlist.8* %{_mandir}/man8/bootlist.8*
%{_mandir}/man8/errinjct.8* %{_mandir}/man8/errinjct.8*
%{_mandir}/man8/hvcsadmin.8*
%{_mandir}/man8/lparstat.8* %{_mandir}/man8/lparstat.8*
%{_mandir}/man8/lsdevinfo.8* %{_mandir}/man8/lsdevinfo.8*
%{_mandir}/man8/lsprop.8* %{_mandir}/man8/lsprop.8*
@ -180,7 +189,6 @@ systemctl daemon-reload >/dev/null 2>&1 || :
%{_mandir}/man8/nvsetenv.8* %{_mandir}/man8/nvsetenv.8*
%{_mandir}/man8/ppc64_cpu.8* %{_mandir}/man8/ppc64_cpu.8*
%{_mandir}/man8/rtas_dbg.8* %{_mandir}/man8/rtas_dbg.8*
%{_mandir}/man8/rtas_dump.8*
%{_mandir}/man8/rtas_event_decode.8* %{_mandir}/man8/rtas_event_decode.8*
%{_mandir}/man8/rtas_ibm_get_vpd.8* %{_mandir}/man8/rtas_ibm_get_vpd.8*
%{_mandir}/man8/serv_config.8* %{_mandir}/man8/serv_config.8*
@ -194,21 +202,19 @@ systemctl daemon-reload >/dev/null 2>&1 || :
%{_mandir}/man8/vcpustat.8.gz %{_mandir}/man8/vcpustat.8.gz
%{_mandir}/man8/smtstate.8.gz %{_mandir}/man8/smtstate.8.gz
%{_mandir}/man8/hcnmgr.8* %{_mandir}/man8/hcnmgr.8*
%files core
%license COPYING
%{_sbindir}/nvram
%{_sbindir}/ofpathname
%{_sbindir}/pseries_platform
%{_sbindir}/drmgr
%{_mandir}/man8/nvram.8* %{_mandir}/man8/nvram.8*
%{_mandir}/man8/ofpathname.8* %{_mandir}/man8/ofpathname.8*
%{_mandir}/man8/drmgr.8* %{_mandir}/man8/drmgr.8*
%changelog %changelog
* 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 * Thu Oct 01 2020 Than Ngo <than@redhat.com> - 1.3.8-3
- add hcnmgr man page - add hcnmgr man page