Resolves: RHEL-16045, Support partial SMT level through SYS FS smt/control files
Resolves: RHEL-11456, LPM hooks
This commit is contained in:
parent
3438b55ded
commit
5aa234473f
@ -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
|
diff -up powerpc-utils-1.3.10/Makefile.am.than powerpc-utils-1.3.10/Makefile.am
|
||||||
--- powerpc-utils-1.3.5/man/pseries_platform.8.me 2018-11-29 16:50:07.601034729 +0100
|
--- powerpc-utils-1.3.10/Makefile.am.than 2023-11-27 22:07:33.391345328 +0100
|
||||||
+++ powerpc-utils-1.3.5/man/pseries_platform.8 2018-11-29 16:50:07.601034729 +0100
|
+++ powerpc-utils-1.3.10/Makefile.am 2023-11-27 22:06:38.715373360 +0100
|
||||||
@@ -0,0 +1,11 @@
|
@@ -26,6 +26,16 @@ sbin_SCRIPTS = \
|
||||||
+.\"
|
scripts/hcnmgr
|
||||||
+.\" Copyright (C) 2015 International Business Machines
|
|
||||||
+.\"
|
man_MANS = \
|
||||||
+.TH pseries_platform 8 "September 2015" Linux "Linux on Power Service Tools"
|
+ man/lsdevinfo.8 \
|
||||||
+.SH NAME
|
+ man/rtas_event_decode.8 \
|
||||||
+pseries_platform \- identify the platform and display the name of platform
|
+ man/ls-vdev.8 \
|
||||||
+.SH SYNOPSIS
|
+ man/lsprop.8 \
|
||||||
+.B /usr/bin/pseries_platform
|
+ man/ls-veth.8 \
|
||||||
+
|
+ man/nvsetenv.8 \
|
||||||
+.SH DESCRIPTION
|
+ man/ls-vscsi.8 \
|
||||||
+The \fIpseries_platform\fR tool can identify the platform and display the name of platform.
|
+ man/pseries_platform.8 \
|
||||||
diff -up powerpc-utils-1.2.15/man/lsdevinfo.8.man powerpc-utils-1.2.15/man/lsdevinfo.8
|
+ man/update_flash_nv.8 \
|
||||||
--- powerpc-utils-1.2.15/man/lsdevinfo.8.man 2013-01-16 15:31:13.886591137 +0100
|
+ man/hcnmgr.8 \
|
||||||
+++ powerpc-utils-1.2.15/man/lsdevinfo.8 2013-01-16 15:31:13.886591137 +0100
|
man/activate_firmware.8 \
|
||||||
@@ -0,0 +1,39 @@
|
man/rtas_ibm_get_vpd.8 \
|
||||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
man/uesensor.8 \
|
||||||
+.TH LSDEVINFO "8" "October 2010" "Linux" "Linux on Power Service Tools"
|
diff -up powerpc-utils-1.3.10/man/hcnmgr.8.than powerpc-utils-1.3.10/man/hcnmgr.8
|
||||||
+.SH NAME
|
--- powerpc-utils-1.3.10/man/hcnmgr.8.than 2023-11-27 22:05:20.283979110 +0100
|
||||||
+lsdevinfo - information on Virtual devices
|
+++ powerpc-utils-1.3.10/man/hcnmgr.8 2023-11-27 22:05:20.283979110 +0100
|
||||||
+
|
|
||||||
+.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
|
|
||||||
@@ -0,0 +1,47 @@
|
@@ -0,0 +1,47 @@
|
||||||
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
|
+.\" 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"
|
+.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>.
|
+was written by Mingming Cao <mingming.cao@ibm.com>.
|
||||||
+.PP
|
+.PP
|
||||||
+This manual page was written by Than Ngo <than@redhat.com>.
|
+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
|
diff -up powerpc-utils-1.3.10/man/lsdevinfo.8.than powerpc-utils-1.3.10/man/lsdevinfo.8
|
||||||
--- powerpc-utils-1.3.5/man/update_flash_nv.8.me 2018-11-29 16:49:51.344987106 +0100
|
--- powerpc-utils-1.3.10/man/lsdevinfo.8.than 2023-11-27 22:05:20.282979092 +0100
|
||||||
+++ powerpc-utils-1.3.5/man/update_flash_nv.8 2018-11-29 16:49:42.589961458 +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 @@
|
@@ -0,0 +1,15 @@
|
||||||
+.\"
|
+.\"
|
||||||
+.\" Copyright (C) 2015 International Business Machines
|
+.\" 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
|
+.SH SEE ALSO
|
||||||
+update_flash(8).
|
+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)
|
|
||||||
|
|
||||||
|
34
powerpc-utils-1ac96f8ab7c27095be90eb2e69ae57e8b43eccbe.patch
Normal file
34
powerpc-utils-1ac96f8ab7c27095be90eb2e69ae57e8b43eccbe.patch
Normal file
@ -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;
|
||||||
|
}
|
79
powerpc-utils-372599ed28d65a79d4c3b3405a8e04034eb58e09.patch
Normal file
79
powerpc-utils-372599ed28d65a79d4c3b3405a8e04034eb58e09.patch
Normal file
@ -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;
|
||||||
|
}
|
120
powerpc-utils-7698adc945372e901c2bc3f7066a5a1c219bf1d8.patch
Normal file
120
powerpc-utils-7698adc945372e901c2bc3f7066a5a1c219bf1d8.patch
Normal file
@ -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)"
|
36
powerpc-utils-c3ce3040ea9ed49345756136d61eb402e32402e8.patch
Normal file
36
powerpc-utils-c3ce3040ea9ed49345756136d61eb402e32402e8.patch
Normal file
@ -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 {
|
93
powerpc-utils-d0bc79aedaf76eff09a5d1f399da09561a4d4d7d.patch
Normal file
93
powerpc-utils-d0bc79aedaf76eff09a5d1f399da09561a4d4d7d.patch
Normal file
@ -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;
|
||||||
|
}
|
219
powerpc-utils-e0928dc5e5375591a4cff6ffabc6063771288f59.patch
Normal file
219
powerpc-utils-e0928dc5e5375591a4cff6ffabc6063771288f59.patch
Normal file
@ -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);
|
47
powerpc-utils-f2a4619ef6be747f53e5f631f8b23b5edb9bb023.patch
Normal file
47
powerpc-utils-f2a4619ef6be747f53e5f631f8b23b5edb9bb023.patch
Normal file
@ -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",
|
65
powerpc-utils-support_partial_SMT_level_through_SYS_FS.patch
Normal file
65
powerpc-utils-support_partial_SMT_level_through_SYS_FS.patch
Normal file
@ -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,31 +1,50 @@
|
|||||||
Name: powerpc-utils
|
Name: powerpc-utils
|
||||||
Version: 1.3.10
|
Version: 1.3.10
|
||||||
Release: 7%{?dist}
|
Release: 8%{?dist}
|
||||||
Summary: PERL-based scripts for maintaining and servicing PowerPC systems
|
Summary: PERL-based scripts for maintaining and servicing PowerPC systems
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
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
|
# bz#2121470, Fix lsslot -c mem output when using 4GB LMB size
|
||||||
Patch3: powerpc-utils-b1b9e7-LMB_size_4GB.patch
|
Patch3: powerpc-utils-b1b9e7-LMB_size_4GB.patch
|
||||||
Patch4: powerpc-utils-e1f1de-lmb_address_in_hexadecimal.patch
|
Patch4: powerpc-utils-e1f1de-lmb_address_in_hexadecimal.patch
|
||||||
|
|
||||||
# bz#2110129, Add NVMf-FC boot support for Power - powerpc-utils
|
# bz#2110129, Add NVMf-FC boot support for Power - powerpc-utils
|
||||||
Patch5: powerpc-utils-c01580-add_NVMf-FC_boot_support_part1.patch
|
Patch5: powerpc-utils-c01580-add_NVMf-FC_boot_support_part1.patch
|
||||||
Patch6: powerpc-utils-2fbd7c-add_NVMf-FC_boot_support_part2.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
|
Patch7: powerpc-utils-git3847a1-support_multiple_dev_paths_for_a_nvmf_boot_device.patch
|
||||||
Patch8: powerpc-utils-git04e5c9-handle_nsid_as_hex.patch
|
Patch8: powerpc-utils-git04e5c9-handle_nsid_as_hex.patch
|
||||||
Patch9: powerpc-utils-fix_setting_primary_slave_across_reboots.patch
|
Patch9: powerpc-utils-fix_setting_primary_slave_across_reboots.patch
|
||||||
|
|
||||||
# lparstat: Fix display of mode for dedicated-donating partition
|
# lparstat: Fix display of mode for dedicated-donating partition
|
||||||
Patch10: powerpc-utils-f4c2b0-fix_display_of_mode_for_dedicated_donating_partition.patch
|
Patch10: powerpc-utils-f4c2b0-fix_display_of_mode_for_dedicated_donating_partition.patch
|
||||||
|
|
||||||
# lparstat: Fix negative values seen while running lparstat with -E option
|
# lparstat: Fix negative values seen while running lparstat with -E option
|
||||||
Patch11: powerpc-utils-73ba26-lparstat-fix_negative_values.patch
|
Patch11: powerpc-utils-73ba26-lparstat-fix_negative_values.patch
|
||||||
|
|
||||||
# report-mixed-SMT-state
|
# report-mixed-SMT-state
|
||||||
Patch12: 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
|
# Fix-offline-threads-uninitialized-entries
|
||||||
Patch13: 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
|
||||||
|
|
||||||
ExclusiveArch: ppc %{power64}
|
ExclusiveArch: ppc %{power64}
|
||||||
|
|
||||||
@ -211,10 +230,15 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
|
|||||||
%{_mandir}/man8/nvram.8*
|
%{_mandir}/man8/nvram.8*
|
||||||
%{_mandir}/man8/ofpathname.8*
|
%{_mandir}/man8/ofpathname.8*
|
||||||
%{_mandir}/man8/drmgr.8*
|
%{_mandir}/man8/drmgr.8*
|
||||||
|
%{_mandir}/man8/drmgr-hooks.8*
|
||||||
%{_mandir}/man8/lparnumascore.8*
|
%{_mandir}/man8/lparnumascore.8*
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* 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
|
* Wed Jul 26 2023 Than Ngo <than@redhat.com> - 1.3.10-7
|
||||||
- Fix negative values seen while running lpar
|
- Fix negative values seen while running lpar
|
||||||
- Fix lparstat error with mixed SMT state
|
- Fix lparstat error with mixed SMT state
|
||||||
|
Loading…
Reference in New Issue
Block a user