Hello community,
here is the log from the commit of package powerpc-utils.12087 for
openSUSE:Leap:15.1:Update checked in at 2020-03-08 08:39:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.1:Update/powerpc-utils.12087 (Old)
and /work/SRC/openSUSE:Leap:15.1:Update/.powerpc-utils.12087.new.26092
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "powerpc-utils.12087"
Sun Mar 8 08:39:33 2020 rev:1 rq:782087 version:1.3.7.1
Changes:
--------
New Changes file:
--- /dev/null 2019-12-19 10:12:34.003146842 +0100
+++
/work/SRC/openSUSE:Leap:15.1:Update/.powerpc-utils.12087.new.26092/powerpc-utils.changes
2020-03-08 08:39:33.765747750 +0100
@@ -0,0 +1,1306 @@
+-------------------------------------------------------------------
+Wed Jan 15 08:37:36 UTC 2020 - Josef Möllers <[email protected]>
+
+- * Deal with error messages returned sometimes by evaluation
+ of ${devspec} in 'ofpathname'.
+ * Strip embedded nulls from values provided by kernel files.
+ * Redirect more error messages to /dev/null
+ [bsc#1116561,
+ 0001-powerpc-utils-Suppress-errors-reading-kernel-files.patch]
+
+-------------------------------------------------------------------
+Tue Dec 3 15:55:46 UTC 2019 - Josef Möllers <[email protected]>
+
+- Parse new DRC Info: Define data structures to support parsing
+ the new "ibm,drc-info" device tree property. Integrate the new
+ property information into the existing search mechanisms of the
+ userspace 'drmgr' driver.
+ [jsc#SLE-11094, jsc#SLE-11193, jsc#SLE-11092, jsc#SLE-11319, jsc#ECO-935,
+ bsc#1158312, bsc#1161925, fate#326955
+ bug-1158312-parse-ibm-drc-info-property.patch]
+
+- Bump package version to be able to tell the fix for jsc#SLE-11092 is included
+ Kernel can depend on the fixed version this way.
+
+-------------------------------------------------------------------
+Tue Dec 3 15:55:46 UTC 2019 - Josef Möllers <[email protected]>
+
+- Parse new DRC Info: Define data structures to support parsing
+ the new "ibm,drc-info" device tree property. Integrate the new
+ property information into the existing search mechanisms of the
+ userspace 'drmgr' driver.
+ [bsc#1158312, bug-1158312-parse-ibm-drc-info-property.patch]
+
+-------------------------------------------------------------------
+Wed Jul 3 06:59:23 UTC 2019 - [email protected]
+
+- Change the file permissions of smt_off.service to 644
+ [powerpc-utils.spec, bsc#1139777]
+
+-------------------------------------------------------------------
+Thu Jun 27 15:35:42 UTC 2019 - Michal Suchanek <[email protected]>
+
+- Drop compat patch on SLE 12 SP5.
+- Remove unused macro
+
+-------------------------------------------------------------------
+Tue Jun 11 15:15:48 UTC 2019 - [email protected]
+
+- Update to version 1.3.7 (jsc#SLE-6176, bsc#1139456).
+ - lparstat:
+ - add an option to print the lparstat report similar to
+ legacy lparstat tool
+ - introduce the help command line option to print
+ lparstat usage
+ - restrict the physc and entc attribute values to two decimal
+ places
+ - correct calculation of physc to use tbr
+ - Enable desired and maximum memory stats
+ - Show available physical processors in the shared pool
+ - scripts: Improve handling of errors from subsidiary scripts
+ - man/update_flash:
+ - Add details to extract rpm format image
+ - Fix man page
+ - ppc64_cpu: Limit number of CPUs for frequency calculation
+ - lsslot:
+ - Add ibm,dynamic-memory-v2 parsing capability
+ - Split dynamic-memory v1 parsing into separate routine
+ - Patch to display logical name using bootlist -o option
+ - Refresh ofpathname_powernv.patch, systemd-dir.patch,
+ Revert-lparstat-Show-available-physical-processors-i.patch
+
+-------------------------------------------------------------------
+Fri Jan 18 23:18:49 UTC 2019 - Michal Suchanek <[email protected]>
+
+- ibmvscsis module we ship no longer needs support in powerpc-utils
+ (bsc#1120474).
+ - Remove Revert-ibmvscsis-remove-deprecated-ibmvscsis-scripts.patch
+
+-------------------------------------------------------------------
+Mon Dec 17 12:26:15 UTC 2018 - Michal Suchanek <[email protected]>
+
+- Update to upstream v1.3.6 (FATE#326519, bsc#1120474)
+ (see Changelog under powerpc-utils-1.3.6/Changelog)
+- remove upstreamed patches
+ - bootlist-Display-logical-name-using-bootlist-o-option.patch
+ - lsslot-Add-ibm-dynamic-memory-v2-parsing-capability.patch
+ - lsslot-Split-dynamic-memory-v1-parsing-into-separate.patch
+ -
powerpc-utils.bug-1109046_cpu-Limit-number-of-CPUs-for-frequency-calc.patch
+- Patch to preserve compatibility with v1.3.4, v1.3.5
+ + Revert-lparstat-Show-available-physical-processors-i.patch
+- Keep support for ibmvscsis which we still ship
+ + Revert-ibmvscsis-remove-deprecated-ibmvscsis-scripts.patch
+
+-------------------------------------------------------------------
+Mon Sep 24 09:35:18 UTC 2018 - [email protected]
+
+- limit number of CPUs for frequency calculation (bsc#1109046)
+
+- added patches:
+ * powerpc-utils.bug-1109046_cpu-Limit-number-of-CPUs-for-frequency-calc.patch
+
+-------------------------------------------------------------------
+Wed Aug 8 11:46:06 UTC 2018 - [email protected]
+
+- Add support for ibm,dynamic-memory-v2 devicetree property (bsc#1103283)
+ * lsslot-Split-dynamic-memory-v1-parsing-into-separate.patch
+ * lsslot-Add-ibm-dynamic-memory-v2-parsing-capability.patch
+
+- Display logical name using bootlist -o option (bsc#1099910)
+ * bootlist-Display-logical-name-using-bootlist-o-option.patch
+
+-------------------------------------------------------------------
+Wed Jun 20 09:54:04 UTC 2018 - [email protected]
+
+- version update to 1.3.5 (fate#324948)
+ (see Changelog under powerpc-utils-1.3.5/Changelog)
+
+- removed patches:
+ * drmgr-load-rpadlpar_io-on-C-as-well.patch
+ * Revert-lsslot-free-lmb_list-on-error.patch
+
+-------------------------------------------------------------------
+Wed Apr 4 10:36:11 UTC 2018 - [email protected]
+
+- Fix build failure (bsc#1088577)
+
+-------------------------------------------------------------------
+Thu Mar 22 11:11:15 UTC 2018 - [email protected]
+
+- Use spec-cleaner to get %license and SPDX-3.0 string
+
+-------------------------------------------------------------------
+Wed Mar 21 16:31:46 UTC 2018 - [email protected]
+
+- Revert-lsslot-free-lmb_list-on-error.patch (bsc#1086268)
+
+-------------------------------------------------------------------
+Thu Dec 14 13:45:35 UTC 2017 - [email protected]
+
+- Update drmgr-load-rpadlpar_io-on-C-as-well.patch to more robust solution.
+
+-------------------------------------------------------------------
+Thu Nov 30 17:41:30 UTC 2017 - [email protected]
+
+- drmgr: load rpadlpar_io on -C as well (bnc#1064039, bsc#1070113)
+ * drmgr-load-rpadlpar_io-on-C-as-well.patch
+
+-------------------------------------------------------------------
+Fri Oct 20 08:56:52 UTC 2017 - [email protected]
+
+- version update to 1.3.4 (fate#323767)
+ (see Changelog under powerpc-utils-1.3.4/Changelog)
+
+- modified patches:
+ * libvirt-service-dep.patch
+ * ofpathname_powernv.patch
+ * powerpc-utils-lsprop.patch
+ * systemd-dir.patch
+
+- deleted paches:
+ *
powerpc-utils.bug-1039711_ofpathname-avoid-duplicate-entries-of-vFC-devices.patch
+ *
powerpc-utils.bug-1040076_test-for-zlib-presence-at-configuration-time.patch
+ * powerpc-utils.bug-1041531_lsdevinfo-Add-support-for-vNIC-devices.patch
+ * powerpc-utils.bug-1041531_ofpathname-Add-support-for-vNIC-devices.patch
+ * powerpc-utils.bug-1042239_lsslot-Rectify-usr_drc_name-check.patch
+ *
powerpc-utils.bug-1043569_drmgr-Correct-drc-type-checking-in-check_kmods.patch
+
+-------------------------------------------------------------------
+Mon Jun 12 10:13:52 UTC 2017 - [email protected]
+
+- add
powerpc-utils.bug-1043569_drmgr-Correct-drc-type-checking-in-check_kmods.patch
+ drmgr does not load rpadlpar_io module automatically (bsc#1043569)
+
+-------------------------------------------------------------------
+Fri Jun 2 11:03:13 UTC 2017 - [email protected]
+
+- add powerpc-utils.bug-1042239_lsslot-Rectify-usr_drc_name-check.patch
+ lsslot doesn't display the slot information (bsc#1042239)
+
+-------------------------------------------------------------------
+Tue May 30 08:50:53 UTC 2017 - [email protected]
+
+- add patches to enable support for vNIC devices (bsc#1041531)
+ * powerpc-utils.bug-1041531_lsdevinfo-Add-support-for-vNIC-devices.patch
+ * powerpc-utils.bug-1041531_ofpathname-Add-support-for-vNIC-devices.patch
+
+-------------------------------------------------------------------
+Mon May 29 06:36:47 UTC 2017 - [email protected]
+
+- avoid duplicate entries of a Open Firmware device path to logical
+ device path for vfc-client devices (bsc#1039711)
+- test for zlib presence at configuration time (bsc#1040076)
+
+- added patches:
+ *
powerpc-utils.bug-1039711_ofpathname-avoid-duplicate-entries-of-vFC-devices.patch
+ *
powerpc-utils.bug-1040076_test-for-zlib-presence-at-configuration-time.patch
+
++++ 1109 more lines (skipped)
++++ between /dev/null
++++ and
/work/SRC/openSUSE:Leap:15.1:Update/.powerpc-utils.12087.new.26092/powerpc-utils.changes
New:
----
0001-powerpc-utils-Suppress-errors-reading-kernel-files.patch
Revert-lparstat-Show-available-physical-processors-i.patch
bug-1158312-parse-ibm-drc-info-property.patch
libvirt-service-dep.patch
nvsetenv
ofpathname_powernv.patch
powerpc-utils-1.3.7.tar.gz
powerpc-utils-lsprop.patch
powerpc-utils.changes
powerpc-utils.spec
systemd-dir.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ powerpc-utils.spec ++++++
#
# spec file for package powerpc-utils
#
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define realversion 1.3.7
Name: powerpc-utils
Version: %{realversion}.1
Release: 0
Summary: Utilities for PowerPC Hardware
License: GPL-2.0-or-later
Group: System/Management
URL: https://github.com/ibm-power-utilities/powerpc-utils
Source0:
https://github.com/ibm-power-utilities/powerpc-utils/archive/v%{realversion}.tar.gz#/%{name}-%{realversion}.tar.gz
Source1: nvsetenv
Patch1: powerpc-utils-lsprop.patch
Patch2: ofpathname_powernv.patch
Patch3: systemd-dir.patch
Patch4: libvirt-service-dep.patch
# This adds field in the middle of tool output so revert it again in < 15.1
Patch5: Revert-lparstat-Show-available-physical-processors-i.patch
Patch6: bug-1158312-parse-ibm-drc-info-property.patch
Patch7: 0001-powerpc-utils-Suppress-errors-reading-kernel-files.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: librtas-devel
BuildRequires: pkgconfig
BuildRequires: systemd-rpm-macros
BuildRequires: pkgconfig(zlib)
Requires: bc
Requires: coreutils
Requires: findutils
Requires: gawk
Requires: grep
Requires: kmod-compat
Requires: systemd-sysvinit
Requires: udev
Requires: util-linux
Recommends: powerpc-utils-python
ExclusiveArch: ppc ppc64 ppc64le
%{?systemd_requires}
%description
The powerpc-utils package provides a set of tools and utilities and
utilities for maintaining and enabling certain features of Linux on Power.
%prep
%setup -q -n %{name}-%{realversion}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%if 0%{?sle_version} <= 120400 || 0%{?sle_version} == 150000
%patch5 -p1
%endif
%patch6 -p1
%patch7 -p1
%build
autoreconf -fvi
%configure \
--disable-silent-rules \
--with-systemd=%{buildroot}%{_unitdir}
make CFLAGS="%{optflags}" %{?_smp_mflags}
%install
%make_install \
rasdir=%{_sbindir} \
mandir=%{_mandir}
mkdir %{buildroot}/sbin
ln -sf %{_sbindir}/lsprop %{buildroot}/sbin/lsprop
install -m 755 %{SOURCE1} %{buildroot}%{_sbindir}/nvsetenv
ln -sf serv_config %{buildroot}%{_sbindir}/uspchrp
ln -sf %{_mandir}/man8/serv_config.8 %{buildroot}%{_mandir}/man8/uspchrp.8
ln -sf drmgr %{buildroot}%{_sbindir}/drslot_chrp_slot
ln -sf drmgr %{buildroot}%{_sbindir}/drslot_chrp_pci
ln -sf drmgr %{buildroot}%{_sbindir}/drslot_chrp_cpu
ln -sf drmgr %{buildroot}%{_sbindir}/drslot_chrp_phb
ln -sf drmgr %{buildroot}%{_sbindir}/drslot_chrp_mem
ln -sf drmgr %{buildroot}%{_sbindir}/drslot_chrp_hea
ln -sf drmgr %{buildroot}%{_sbindir}/drmig_chrp_pmig
ln -s service %{buildroot}%{_sbindir}/rcsmt_off
# remove docu installed by make_install as we hand-install them in %files
rm -rf %{buildroot}%{_docdir}/%{name}/*
%pre
%service_add_pre smt_off.service
%post
%service_add_post smt_off.service
%preun
%service_del_preun smt_off.service
%postun
%service_del_postun smt_off.service
%files
%license COPYING
%doc README Changelog
%{_mandir}/man*/*
%{_sbindir}/*
%{_bindir}/*
/sbin/lsprop
%attr(644, -, -) %{_unitdir}/smt_off.service
%changelog
++++++ 0001-powerpc-utils-Suppress-errors-reading-kernel-files.patch ++++++
>From 73839d6bab4da24350a60105b7b2c3a6cc7d3a15 Mon Sep 17 00:00:00 2001
From: Michael Bringmann <[email protected]>
Date: Fri, 26 Jul 2019 09:10:51 -0500
Subject: [PATCH] powerpc-utils: Suppress errors reading kernel files
A problem was observed with the evaluation of the '${devspec} by
the script 'ofpathname'. The problem occurred during installation
to an nvme device as follows:
02:29:41,669 INF program: Running... ofpathname /dev/nvme0n1p1
02:29:41,922 INF program: /sbin/ofpathname: line 684: warning: command
substitution: ignored null byte in input
Detailed examination showed that instances of the device-tree
property "/namespace/name" within one or more of the PCI devices
contained null bytes which were echoed along with the value e.g.
[root device-tree]# cat
/proc/device-tree/pci@800000020000029/pci1014,637@0/namespace/name | hexdump -C
00000000 6e 61 6d 65 73 70 61 63 65 00 |namespace.|
0000000a
[root device-tree]#
This patch provides improves handling of errors within that script,
and by some of the follow-on uses of the tool by the 'bootlist' script.
* Deal with error messages returned sometimes by evaluation
of ${devspec} in 'ofpathname'.
* Strip embedded nulls from values provided by kernel files.
* Redirect more error messages to /dev/null
Signed-off-by: Michael Bringmann <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
---
scripts/bootlist | 8 ++++----
scripts/ofpathname | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
Index: powerpc-utils-1.3.7/scripts/bootlist
===================================================================
--- powerpc-utils-1.3.7.orig/scripts/bootlist
+++ powerpc-utils-1.3.7/scripts/bootlist
@@ -207,11 +207,11 @@ show_bootlist()
local devlist=$1
local i
- for i in `$NVRAM --print-config=${devlist} | sed 's/ /\n/g'`; do
+ for i in `$NVRAM --print-config=${devlist} 2> /dev/null | sed 's/ /\n/g'`;
do
if [[ $TRANSLATE_NAMES = "yes" ]]; then
name=`get_logical_device_name $i`
if [[ -z $name ]]; then
- echo "Could not translate $i to logical device name"
+ echo "Could not translate $i to logical device name" >&2
else
case $name in
eth*) parse_eth_info $name $i ;;
@@ -230,7 +230,7 @@ show_bootlist()
. $PSERIES_PLATFORM
if [[ $platform != $PLATFORM_PSERIES_LPAR ]]; then
- echo "bootlist: is not supported on the $platform_name platform"
+ echo "bootlist: is not supported on the $platform_name platform" >&2
exit 1
fi
Index: powerpc-utils-1.3.7/scripts/ofpathname
===================================================================
--- powerpc-utils-1.3.7.orig/scripts/ofpathname
+++ powerpc-utils-1.3.7/scripts/ofpathname
@@ -656,7 +656,7 @@ l2of_nvme()
goto_dir $PWD "device/devspec"
- devspec=`$CAT $PWD/device/devspec`
+ devspec=`$CAT $PWD/device/devspec | tr -d '\000'`
if [[ -n $devspec ]]; then
found=1
break
@@ -681,7 +681,7 @@ l2of_nvme()
# Device type is usually 'namespace'.
# Get it from device-tree just in case.
- devtype=`$CAT /proc/device-tree${devspec}/namespace/name`
+ devtype=`$CAT /proc/device-tree${devspec}/namespace/name | tr -d '\000'`
2> /dev/null
if [[ -z $devtype ]]; then
err $ERR_NO_OFPATH
fi
++++++ Revert-lparstat-Show-available-physical-processors-i.patch ++++++
Index: powerpc-utils-1.3.7/man/lparstat.8
===================================================================
--- powerpc-utils-1.3.7.orig/man/lparstat.8
+++ powerpc-utils-1.3.7/man/lparstat.8
@@ -83,9 +83,6 @@ Shows the percentage of the entitled cap
lbusy
Shows the percentage of logical processor(s) utilization that occurred while
executing at the user and system level.
.TP
-app
-Shows the available physical processors in the shared pool.
-.TP
phint
Shows the number of phantom (targeted to another shared partition in this
pool) interruptions received.
.SH OPTIONS
Index: powerpc-utils-1.3.7/src/lparstat.c
===================================================================
--- powerpc-utils-1.3.7.orig/src/lparstat.c
+++ powerpc-utils-1.3.7/src/lparstat.c
@@ -126,32 +126,6 @@ int get_time_base()
return 0;
}
-void get_sys_uptime(struct sysentry *unused_se, char *uptime)
-{
- FILE *f;
- char buf[80];
-
- f = fopen("/proc/uptime", "r");
- if (!f) {
- fprintf(stderr, "Could not open /proc/uptime\n");
- sprintf(uptime, SE_NOT_VALID);
- return;
- }
-
- if ((fgets(buf, 80, f)) != NULL) {
- char *value;
-
- value = strchr(buf, ' ');
- *value = '\0';
- sprintf(uptime, "%s", buf);
- } else {
- sprintf(uptime, SE_NOT_VALID);
- }
-
- fclose(f);
-}
-
-
void get_cpu_physc(struct sysentry *unused_se, char *buf)
{
struct sysentry *se;
@@ -194,44 +168,6 @@ void get_per_entc(struct sysentry *unuse
sprintf(buf, "%.2f", atof(physc) / atof(entc) * 100.0);
}
-void get_cpu_app(struct sysentry *unused_se, char *buf)
-{
- struct sysentry *se;
- float timebase, app, elapsed_time;
- long long new_app, old_app, newtime, oldtime;
- char *descr, uptime[32];
-
- se = get_sysentry("time");
- if (se->old_value[0] == '\0') {
- /* Single report since boot */
- get_sysdata("uptime", &descr, uptime);
-
- if (!strcmp(uptime, SE_NOT_VALID)) {
- sprintf(buf, "-");
- return;
- }
- elapsed_time = atof(uptime);
- } else {
- newtime = strtoll(se->value, NULL, 0);
- oldtime = strtoll(se->old_value, NULL, 0);
- elapsed_time = (newtime - oldtime) / 1000000.0;
- }
-
- se = get_sysentry("timebase");
- timebase = atof(se->value);
-
- se = get_sysentry("pool_idle_time");
- new_app = strtoll(se->value, NULL, 0);
- if (se->old_value[0] == '\0') {
- old_app = 0;
- } else {
- old_app = strtoll(se->old_value, NULL, 0);
- }
-
- app = (new_app - old_app)/timebase/elapsed_time;
- sprintf(buf, "%.2f", app);
-}
-
int parse_lparcfg()
{
FILE *f;
@@ -615,14 +551,14 @@ int print_iflag_data()
void print_default_output(int interval, int count)
{
- char *fmt = "%5s %5s %5s %8s %8s %5s %5s %5s %5s %5s\n";
+ char *fmt = "%5s %5s %5s %8s %8s %5s %5s %5s %5s\n";
char *descr;
char buf[128];
int offset, smt, active_proc;
char type[32];
char value[32];
char user[32], sys[32], wait[32], idle[32], physc[32], entc[32];
- char lbusy[32], app[32], vcsw[32], phint[32];
+ char lbusy[32], vcsw[32], phint[32];
memset(buf, 0, 128);
get_sysdata("shared_processor_mode", &descr, value);
@@ -657,9 +593,9 @@ void print_default_output(int interval,
fprintf(stdout, "\nSystem Configuration\n%s\n\n", buf);
fprintf(stdout, fmt, "\%user", "\%sys", "\%wait", "\%idle", "physc",
- "\%entc", "lbusy", "app", "vcsw", "phint");
+ "\%entc", "lbusy", "vcsw", "phint");
fprintf(stdout, fmt, "-----", "-----", "-----", "-----", "-----",
- "-----", "-----", "-----", "-----", "-----");
+ "-----", "-----", "-----", "-----");
do {
if (interval) {
@@ -676,10 +612,9 @@ void print_default_output(int interval,
get_sysdata("physc", &descr, physc);
get_sysdata("per_entc", &descr, entc);
get_sysdata("phint", &descr, phint);
- get_sysdata("app", &descr, app);
fprintf(stdout, fmt, user, sys, wait, idle, physc, entc,
- lbusy, app, vcsw, phint);
+ lbusy, vcsw, phint);
fflush(stdout);
} while (--count > 0);
}
Index: powerpc-utils-1.3.7/src/lparstat.h
===================================================================
--- powerpc-utils-1.3.7.orig/src/lparstat.h
+++ powerpc-utils-1.3.7/src/lparstat.h
@@ -46,8 +46,6 @@ extern void get_smt_mode(struct sysentry
extern void get_cpu_stat(struct sysentry *, char *);
extern void get_cpu_physc(struct sysentry *, char *);
extern void get_per_entc(struct sysentry *, char *);
-extern void get_cpu_app(struct sysentry *, char *);
-extern void get_sys_uptime(struct sysentry *, char *);
struct sysentry system_data[] = {
/* System Names */
@@ -227,9 +225,6 @@ struct sysentry system_data[] = {
{.name = "per_entc",
.descr = "Entitled CPU Consumed",
.get = &get_per_entc},
- {.name = "app",
- .descr = "Available physical CPUs in pool",
- .get = &get_cpu_app},
/* Time */
{.name = "time",
@@ -243,11 +238,6 @@ struct sysentry system_data[] = {
{.name = "phint",
.descr = "Phantom Interrupts"},
- /* /proc/uptime */
- {.name = "uptime",
- .descr = "System Uptime",
- .get = &get_sys_uptime},
-
{.name[0] = '\0'},
};
++++++ bug-1158312-parse-ibm-drc-info-property.patch ++++++
>From b0586b5938e9d371e55671422b2f0a5d2cd10c54 Mon Sep 17 00:00:00 2001
From: Michael Bringmann <[email protected]>
Date: Wed, 2 Oct 2019 16:54:52 -0500
Subject: [PATCH] powerpc-utils/devtree: Parse 'ibm,drc-info' property
Parse new DRC Info: Define data structures to support parsing
the new "ibm,drc-info" device tree property. Integrate the new
property information into the existing search mechanisms of the
userspace 'drmgr' driver.
Signed-off-by: Michael Bringmann <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
---
src/drmgr/common_ofdt.c | 223 ++++++++++++++++++++++++++++++++++------
1 file changed, 194 insertions(+), 29 deletions(-)
diff --git a/src/drmgr/common_ofdt.c b/src/drmgr/common_ofdt.c
index 8c9e224..c110bc0 100644
--- a/src/drmgr/common_ofdt.c
+++ b/src/drmgr/common_ofdt.c
@@ -41,6 +41,16 @@ struct drc_prop_grp {
struct of_list_prop drc_domains;
};
+struct drc_info {
+ char *drc_type;
+ char *drc_name_prefix;
+ int drc_index_start;
+ int drc_name_suffix_start;
+ int n_seq_elems;
+ int seq_inc;
+ int drc_power_domain;
+};
+
struct dr_connector *all_drc_lists = NULL;
/**
@@ -186,6 +196,169 @@ build_connectors_list(struct drc_prop_grp *group, int
n_entries,
return 0;
}
+/**
+ * drc_info_connectors_v1
+ *
+ * @param full_path
+ * @param ofdt_path
+ * @param list
+ * @returns 0 on success, !0 otherwise
+ */
+static int drc_info_connectors_v1(char *full_path, char *ofdt_path,
+ struct dr_connector **list)
+{
+ struct dr_connector *out_list = NULL;
+ struct drc_prop_grp prop_grp;
+ struct of_list_prop *drc_names;
+ int n_drcs;
+ int rc = 0;
+
+ rc = get_drc_prop_grp(full_path, &prop_grp);
+ if (rc) {
+ say(DEBUG,
+ "Could not find DRC property group in path: %s.\n",
+ full_path);
+ goto done;
+ }
+
+ drc_names = &prop_grp.drc_names;
+ n_drcs = drc_names->n_entries;
+
+ out_list = zalloc(n_drcs * sizeof(struct dr_connector));
+ if (out_list == NULL)
+ goto done;
+
+ build_connectors_list(&prop_grp, n_drcs, out_list);
+
+done:
+ if (rc) {
+ free_drc_props(&prop_grp);
+ free(out_list);
+ } else {
+ snprintf(out_list->ofdt_path, DR_PATH_MAX, "%s", ofdt_path);
+ *list = out_list;
+ }
+
+ return rc;
+}
+
+/**
+ * drc_info_connectors_v2
+ *
+ * @param full_path
+ * @param ofdt_path
+ * @param list
+ * @returns 0 on success, !0 otherwise
+ */
+static int drc_info_connectors_v2(char *full_path, char *ofdt_path,
+ struct dr_connector **list)
+{
+ struct dr_connector *out_list = NULL;
+ struct drc_info info;
+ char *prop_name = "ibm,drc-info";
+ char *prop_data, *data_ptr;
+ int i, j, n_entries, size, connector_size, ics, rc;
+
+ size = get_property_size(full_path, prop_name);
+ prop_data = zalloc(size);
+ if (prop_data == NULL)
+ return -1;
+ rc = get_property(full_path, prop_name, prop_data, size);
+ if (rc) {
+ free(prop_data);
+ return -1;
+ }
+
+ /* Num of DRC-info sets */
+ data_ptr = prop_data;
+ n_entries = be32toh(*(uint *)data_ptr);
+ data_ptr += 4;
+
+ /* Extract drc-info data */
+ for (j = 0, connector_size = 0; j < n_entries; j++) {
+ info.drc_type = data_ptr;
+ data_ptr += strlen(info.drc_type)+1;
+ info.drc_name_prefix = data_ptr;
+ data_ptr += strlen(info.drc_name_prefix)+1;
+ data_ptr += 4; /* Skip drc-index-start */
+ data_ptr += 4; /* Skip drc-name-suffix-start */
+ info.n_seq_elems = be32toh(*(uint *)data_ptr);
+ data_ptr += 4; /* Advance over n-seq-elems */
+ data_ptr += 4; /* Skip sequential-increment */
+ data_ptr += 4; /* Skip drc-power-domain */
+ if (info.n_seq_elems <= 0)
+ continue;
+ connector_size += info.n_seq_elems;
+ }
+
+ /* Allocate list entry */
+ out_list = zalloc(connector_size * sizeof(struct dr_connector));
+ if (out_list == NULL) {
+ rc = -1;
+ goto done;
+ }
+
+ /* Extract drc-info data */
+ data_ptr = prop_data;
+ data_ptr += 4;
+ for (j = 0, ics = 0; j < n_entries; j++) {
+ info.drc_type = data_ptr;
+ data_ptr += strlen(info.drc_type)+1;
+ info.drc_name_prefix = data_ptr;
+ data_ptr += strlen(info.drc_name_prefix)+1;
+
+ info.drc_index_start = be32toh(*(uint *)data_ptr);
+ data_ptr += 4;
+
+ info.drc_name_suffix_start = be32toh(*(uint *)data_ptr);
+ data_ptr += 4;
+
+ info.n_seq_elems = be32toh(*(uint *)data_ptr);
+ data_ptr += 4;
+
+ info.seq_inc = be32toh(*(uint *)data_ptr);
+ data_ptr += 4;
+
+ info.drc_power_domain = be32toh(*(uint *)data_ptr);
+ data_ptr += 4;
+
+ /* Build connector list */
+ if (info.n_seq_elems <= 0)
+ continue;
+
+ for (i = 0; i < info.n_seq_elems; i++, ics++) {
+ out_list[ics].index = info.drc_index_start+
+ (i*info.seq_inc);
+ out_list[ics].powerdomain = info.drc_power_domain;
+
+ sprintf(out_list[ics].name, "%s%d",
+ info.drc_name_prefix,
+ info.drc_name_suffix_start+(i*info.seq_inc));
+
+ strncpy(out_list[ics].type, info.drc_type, DRC_STR_MAX);
+
+ out_list[ics].next = &out_list[ics+1];
+ }
+ }
+ if (ics > 0)
+ out_list[ics-1].next = NULL;
+
+done:
+ if (prop_data)
+ free(prop_data);
+
+ if (rc) {
+ free(out_list);
+ *list = NULL;
+ } else {
+ snprintf(out_list->ofdt_path, DR_PATH_MAX, "%s", ofdt_path);
+ *list = out_list;
+ }
+
+ return rc;
+}
+
+
/**
* of_to_full_path
*
@@ -232,11 +405,12 @@ of_to_full_path(const char *of_path)
struct dr_connector *
get_drc_info(const char *of_path)
{
- struct dr_connector *list = NULL;
- struct of_list_prop *drc_names;
- struct drc_prop_grp prop_grp;
+ struct stat sbuf;
+ char fname[DR_PATH_MAX];
+ char ofdt_path[DR_PATH_MAX];
char *full_path = NULL;
- int rc, n_drcs;
+ struct dr_connector *list = NULL;
+ int rc;
for (list = all_drc_lists; list; list = list->all_next) {
if (! strcmp(list->ofdt_path, of_path))
@@ -246,33 +420,24 @@ get_drc_info(const char *of_path)
full_path = of_to_full_path(of_path);
if (full_path == NULL)
return NULL;
-
- rc = get_drc_prop_grp(full_path, &prop_grp);
- if (rc) {
- say(DEBUG, "Could not find DRC property group in path: %s.\n",
- full_path);
- goto done;
- }
- drc_names = &prop_grp.drc_names;
- n_drcs = drc_names->n_entries;
-
- list = zalloc(n_drcs * sizeof(struct dr_connector));
- if (list == NULL)
- goto done;
-
- /* XXX Unchecked rc */
- rc = build_connectors_list(&prop_grp, n_drcs, list);
-
- snprintf(list->ofdt_path, DR_PATH_MAX, "%s", of_path);
-
- list->all_next = all_drc_lists;
- all_drc_lists = list;
+ /* ibm,drc-info vs the old implementation */
+ sprintf(fname, "%s/%s", full_path, "ibm,drc-info");
+ snprintf(ofdt_path, DR_PATH_MAX, "%s", of_path);
+ rc = stat(fname, &sbuf);
+ if (rc)
+ rc = drc_info_connectors_v1(full_path, ofdt_path, &list);
+ else
+ rc = drc_info_connectors_v2(full_path, ofdt_path, &list);
-done:
- free_drc_props(&prop_grp);
- if (full_path)
- free(full_path);
+ if (rc == 0) {
+ list->all_next = all_drc_lists;
+ all_drc_lists = list;
+ } else {
+ if (full_path)
+ free(full_path);
+ list = NULL;
+ }
return list;
}
++++++ libvirt-service-dep.patch ++++++
Index: powerpc-utils-1.3.4/systemd/smt_off.service.in
===================================================================
--- powerpc-utils-1.3.4.orig/systemd/smt_off.service.in
+++ powerpc-utils-1.3.4/systemd/smt_off.service.in
@@ -1,6 +1,6 @@
[Unit]
Description=ppc64 set SMT off
-Before=libvirt-bin.service
+Before=libvirtd.service
[Service]
Type=oneshot
++++++ nvsetenv ++++++
#!/bin/sh
if [ "$1" = "--version" ]; then
echo This version of nvsetenv is just a wrapper to invoke nvram
exit 0
fi
if [ -z "$1" ]; then
nvram --print-config
elif [ -z "$2" ]; then
nvram --print-config="$1"
else
nvram --update-config "$1"="$2"
fi
exit $?
++++++ ofpathname_powernv.patch ++++++
Index: powerpc-utils-1.3.7/scripts/ofpathname
===================================================================
--- powerpc-utils-1.3.7.orig/scripts/ofpathname
+++ powerpc-utils-1.3.7/scripts/ofpathname
@@ -1632,7 +1632,7 @@ of2l_nvme()
. $PSERIES_PLATFORM
if [[ $platform = $PLATFORM_POWERNV ]]; then
echo "$OFPATHNAME: is not supported on the $platform_name platform" 1>&2
- exit 1
+ exit 0
fi
if [[ "$#" -eq 0 ]]; then
++++++ powerpc-utils-lsprop.patch ++++++
Index: powerpc-utils-1.3.4/src/lsprop.c
===================================================================
--- powerpc-utils-1.3.4.orig/src/lsprop.c
+++ powerpc-utils-1.3.4/src/lsprop.c
@@ -30,7 +30,7 @@
#endif
int recurse;
-int maxbytes = 128;
+int maxbytes = 64 * 1024;
int words_per_line = 0;
unsigned char *buf;
++++++ systemd-dir.patch ++++++
Index: powerpc-utils-1.3.7/Makefile.am
===================================================================
--- powerpc-utils-1.3.7.orig/Makefile.am
+++ powerpc-utils-1.3.7/Makefile.am
@@ -181,7 +181,7 @@ src_drmgr_lsslot_LDADD = -lrtas
if WITH_SYSTEMD
install-data-hook: systemd/smt_off.service
- $(MKDIR_P) @prefix@${systemd_unit_dir}
- $(INSTALL_SCRIPT) $< @prefix@${systemd_unit_dir}/
- sed -i -e 's,$${exec_prefix},@sbindir@,g'
@prefix@${systemd_unit_dir}/smt_off.service
+ $(MKDIR_P) ${systemd_unit_dir}
+ $(INSTALL_SCRIPT) $< ${systemd_unit_dir}/
+ sed -i -e 's,$${exec_prefix},@sbindir@,g'
${systemd_unit_dir}/smt_off.service
endif