Resolves: RHEL-32262, update 1.3.12 for rhel-10
This commit is contained in:
parent
9cf154a653
commit
58e5279f28
1
.gitignore
vendored
1
.gitignore
vendored
@ -25,3 +25,4 @@ powerpc-utils-1.2.2.tar.gz
|
|||||||
/powerpc-utils-1.3.9.tar.gz
|
/powerpc-utils-1.3.9.tar.gz
|
||||||
/powerpc-utils-1.3.10.tar.gz
|
/powerpc-utils-1.3.10.tar.gz
|
||||||
/powerpc-utils-1.3.11.tar.gz
|
/powerpc-utils-1.3.11.tar.gz
|
||||||
|
/powerpc-utils-1.3.12.tar.gz
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
diff -up powerpc-utils-1.3.10/Makefile.am.me powerpc-utils-1.3.10/Makefile.am
|
|
||||||
--- powerpc-utils-1.3.10/Makefile.am.me 2022-06-03 12:35:01.335312481 +0200
|
|
||||||
+++ powerpc-utils-1.3.10/Makefile.am 2022-06-03 14:11:58.453820076 +0200
|
|
||||||
@@ -229,7 +229,6 @@ install-data-hook:
|
|
||||||
$(INSTALL_DATA) systemd/smtstate.service $(DESTDIR)${systemd_unit_dir}/
|
|
||||||
$(INSTALL_DATA) systemd/hcn-init.service $(DESTDIR)${systemd_unit_dir}/
|
|
||||||
$(INSTALL_DATA) var/lib/powerpc-utils/smt.state $(DESTDIR)/var/lib/@PACKAGE@/
|
|
||||||
- $(INSTALL_SCRIPT) scripts/functions.suse $(DESTDIR)/usr/lib/@PACKAGE@/
|
|
||||||
$(INSTALL_SCRIPT) scripts/smtstate $(DESTDIR)@sbindir@
|
|
||||||
sed -i -e 's,$${exec_prefix},@prefix@,g' $(DESTDIR)${systemd_unit_dir}/smt_off.service
|
|
||||||
sed -i -e 's,$${exec_prefix},@prefix@,g' $(DESTDIR)${systemd_unit_dir}/smtstate.service
|
|
@ -1,46 +0,0 @@
|
|||||||
commit dee15756bcb287ccf39a904be07c90107b13844b
|
|
||||||
Author: Laurent Dufour <ldufour@linux.ibm.com>
|
|
||||||
Date: Wed May 3 10:50:15 2023 +0200
|
|
||||||
|
|
||||||
lparstat: Fix offline threads uninitialized entries
|
|
||||||
|
|
||||||
When some threads are offline, lparstat -E is failing like that:
|
|
||||||
|
|
||||||
$ ppc64_cpu --info # CPU 20 is offline
|
|
||||||
Core 0: 0* 1* 2* 3* 4* 5* 6* 7*
|
|
||||||
Core 1: 8* 9* 10* 11* 12* 13* 14* 15*
|
|
||||||
Core 2: 16* 17* 18* 19* 20 21* 22* 23*
|
|
||||||
Core 3: 24* 25* 26* 27* 28* 29* 30* 31*
|
|
||||||
Core 4: 32* 33* 34* 35* 36* 37* 38* 39*
|
|
||||||
Core 5: 40* 41* 42* 43* 44* 45* 46* 47*
|
|
||||||
$ lparstat -E
|
|
||||||
Failed to read /sys/devices/system/cpu/cpu0/spurr
|
|
||||||
|
|
||||||
The message is complaining about CPU0 but the real issue is that in
|
|
||||||
parse_sysfs_values() the test cpu_sysfs_fds[i].spurr >= 0 is valid even if
|
|
||||||
the entry has not been initialized (cpu_sysfs_fds is alloc cleared). So
|
|
||||||
if the number of threads online seen in assign_cpu_sysfs_fds is lower than
|
|
||||||
threads_in_system, the loop in parse_sysfs_values() will read uninitialized
|
|
||||||
entry, where .cpu=0.
|
|
||||||
|
|
||||||
To prevent that, unset entries in the cpu_sysfs_fds should have the spurr
|
|
||||||
fd set to -1.
|
|
||||||
|
|
||||||
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
|
|
||||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
|
||||||
|
|
||||||
diff --git a/src/lparstat.c b/src/lparstat.c
|
|
||||||
index a9e7bce..d2fdb3f 100644
|
|
||||||
--- a/src/lparstat.c
|
|
||||||
+++ b/src/lparstat.c
|
|
||||||
@@ -163,6 +163,10 @@ static int assign_cpu_sysfs_fds(int threads_in_system)
|
|
||||||
cpu_idx++;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* Mark extra slots for offline threads unset, see parse_sysfs_values */
|
|
||||||
+ for (; cpu_idx < threads_in_system; cpu_idx++)
|
|
||||||
+ cpu_sysfs_fds[cpu_idx].spurr = -1;
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
error:
|
|
||||||
fprintf(stderr, "Failed to open %s: %s\n",
|
|
@ -1,93 +0,0 @@
|
|||||||
commit b2672fa3d462217ccd057a2cd307af2448e78757
|
|
||||||
Author: Laurent Dufour <ldufour@linux.ibm.com>
|
|
||||||
Date: Wed May 3 10:50:14 2023 +0200
|
|
||||||
|
|
||||||
lparstat: report mixed SMT state
|
|
||||||
|
|
||||||
when SMT state is mixed like this one (CPU 4 is offline):
|
|
||||||
|
|
||||||
$ ppc64_cpu --info
|
|
||||||
Core 0: 0* 1* 2* 3* 4 5* 6* 7*
|
|
||||||
Core 1: 8* 9* 10* 11* 12* 13* 14* 15*
|
|
||||||
Core 2: 16* 17* 18* 19* 20* 21* 22* 23*
|
|
||||||
Core 3: 24* 25* 26* 27* 28* 29* 30* 31*
|
|
||||||
Core 4: 32* 33* 34* 35* 36* 37* 38* 39*
|
|
||||||
Core 5: 40* 41* 42* 43* 44* 45* 46* 47*
|
|
||||||
$ ppc64_cpu --smt
|
|
||||||
SMT=7: 0
|
|
||||||
SMT=8: 1-5
|
|
||||||
|
|
||||||
ppc64_cpu --smt is handling that nicely but lparstat failed reporting the
|
|
||||||
SMT state:
|
|
||||||
$ /usr/sbin/lparstat
|
|
||||||
Failed to get smt state
|
|
||||||
|
|
||||||
System Configuration
|
|
||||||
type=Dedicated mode=Capped smt=Capped lcpu=6 mem=65969728 kB cpus=0 ent=6.00
|
|
||||||
|
|
||||||
%user %sys %wait %idle physc %entc lbusy app vcsw phint
|
|
||||||
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
|
|
||||||
0.02 0.01 0.00 99.97 3.41 56.83 0.02 0.00 4061778 156
|
|
||||||
|
|
||||||
Makes lparstat reporting "smt=mixed" in that case.
|
|
||||||
__do_smt is now returning 0 when the SMT state is mixed instead of -1 which
|
|
||||||
is also reported when an error is detected.
|
|
||||||
This doesn't change the call made by ppc64_cpu which is using
|
|
||||||
print_smt_state=true and so is expecting a returned value equal to 0 or -1.
|
|
||||||
|
|
||||||
With that patch applied, lparstat print that in the above case:
|
|
||||||
$lparstat
|
|
||||||
|
|
||||||
System Configuration
|
|
||||||
type=Dedicated mode=Capped smt=Mixed lcpu=6 mem=65969728 kB cpus=0 ent=6.00
|
|
||||||
|
|
||||||
%user %sys %wait %idle physc %entc lbusy app vcsw phint
|
|
||||||
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
|
|
||||||
0.01 0.01 0.00 99.97 3.43 57.17 0.02 0.00 4105654 156
|
|
||||||
|
|
||||||
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
|
|
||||||
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
|
|
||||||
|
|
||||||
diff --git a/src/common/cpu_info_helpers.c b/src/common/cpu_info_helpers.c
|
|
||||||
index 925f220..c05d96d 100644
|
|
||||||
--- a/src/common/cpu_info_helpers.c
|
|
||||||
+++ b/src/common/cpu_info_helpers.c
|
|
||||||
@@ -245,7 +245,7 @@ int __do_smt(bool numeric, int cpus_in_system, int threads_per_cpu,
|
|
||||||
if (smt_state == 0)
|
|
||||||
smt_state = thread + 1;
|
|
||||||
else if (smt_state > 0)
|
|
||||||
- smt_state = -1; /* mix of SMT modes */
|
|
||||||
+ smt_state = 0; /* mix of SMT modes */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -257,7 +257,7 @@ int __do_smt(bool numeric, int cpus_in_system, int threads_per_cpu,
|
|
||||||
printf("SMT=1\n");
|
|
||||||
else
|
|
||||||
printf("SMT is off\n");
|
|
||||||
- } else if (smt_state == -1) {
|
|
||||||
+ } else if (smt_state == 0) {
|
|
||||||
for (thread = 0; thread < threads_per_cpu; thread++) {
|
|
||||||
if (CPU_COUNT_S(cpu_state_size,
|
|
||||||
cpu_states[thread])) {
|
|
||||||
diff --git a/src/lparstat.c b/src/lparstat.c
|
|
||||||
index eebba1f..a9e7bce 100644
|
|
||||||
--- a/src/lparstat.c
|
|
||||||
+++ b/src/lparstat.c
|
|
||||||
@@ -884,13 +884,15 @@ void get_smt_mode(struct sysentry *se, char *buf)
|
|
||||||
}
|
|
||||||
|
|
||||||
smt_state = parse_smt_state();
|
|
||||||
- if (smt_state < 0) {
|
|
||||||
+ if (smt_state == -1) {
|
|
||||||
fprintf(stderr, "Failed to get smt state\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (smt_state == 1)
|
|
||||||
sprintf(buf, "Off");
|
|
||||||
+ else if (smt_state == 0)
|
|
||||||
+ sprintf(buf, "Mixed");
|
|
||||||
else
|
|
||||||
sprintf(buf, "%d", smt_state);
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
diff --git a/src/lparstat.c b/src/lparstat.c
|
|
||||||
index 31a4ee8..eebba1f 100644
|
|
||||||
--- a/src/lparstat.c
|
|
||||||
+++ b/src/lparstat.c
|
|
||||||
@@ -492,6 +492,15 @@ void get_cpu_util_purr(struct sysentry *unused_se, char *buf)
|
|
||||||
delta_purr = get_delta_value("purr");
|
|
||||||
delta_idle_purr = get_delta_value("idle_purr");
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * Given that these values are read from different
|
|
||||||
+ * sources (purr from lparcfg and idle_purr from sysfs),
|
|
||||||
+ * a small variation in the values is possible.
|
|
||||||
+ * In such cases, round down delta_idle_purr to delta_purr.
|
|
||||||
+ */
|
|
||||||
+ if (delta_idle_purr > delta_purr)
|
|
||||||
+ delta_idle_purr = delta_purr;
|
|
||||||
+
|
|
||||||
physc = (delta_purr - delta_idle_purr) / delta_tb;
|
|
||||||
physc *= 100.00;
|
|
||||||
|
|
||||||
@@ -507,6 +516,15 @@ void get_cpu_idle_purr(struct sysentry *unused_se, char *buf)
|
|
||||||
delta_purr = get_delta_value("purr");
|
|
||||||
delta_idle_purr = get_delta_value("idle_purr");
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * Given that these values are read from different
|
|
||||||
+ * sources (purr from lparcfg and idle_purr from sysfs),
|
|
||||||
+ * a small variation in the values is possible.
|
|
||||||
+ * In such cases, round down delta_idle_purr to delta_purr.
|
|
||||||
+ */
|
|
||||||
+ if (delta_idle_purr > delta_purr)
|
|
||||||
+ delta_idle_purr = delta_purr;
|
|
||||||
+
|
|
||||||
physc = (delta_purr - delta_idle_purr) / delta_tb;
|
|
||||||
idle = (delta_purr / delta_tb) - physc;
|
|
||||||
idle *= 100.00;
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: powerpc-utils
|
Name: powerpc-utils
|
||||||
Version: 1.3.11
|
Version: 1.3.12
|
||||||
Release: 6%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: PERL-based scripts for maintaining and servicing PowerPC systems
|
Summary: PERL-based scripts for maintaining and servicing PowerPC systems
|
||||||
|
|
||||||
License: GPL-2.0-only
|
License: GPL-2.0-only
|
||||||
@ -8,11 +8,6 @@ URL: https://github.com/ibm-power-utilities/powerpc-utils
|
|||||||
Source0: https://github.com/ibm-power-utilities/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
|
Source0: https://github.com/ibm-power-utilities/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||||
Source1: nx-gzip.udev
|
Source1: nx-gzip.udev
|
||||||
Patch0: powerpc-utils-1.3.11-manpages.patch
|
Patch0: powerpc-utils-1.3.11-manpages.patch
|
||||||
Patch1: powerpc-utils-1.3.10-distro.patch
|
|
||||||
# upstream patches
|
|
||||||
Patch50: powerpc-utils-73ba26-lparstat-fix_negative_values.patch
|
|
||||||
Patch51: powerpc-utils-1.3.10-lparstat-Fix-offline-threads-uninitialized-entries.patch
|
|
||||||
Patch52: powerpc-utils-1.3.10-lparstat-report-mixed-SMT-state.patch
|
|
||||||
|
|
||||||
ExclusiveArch: ppc %{power64}
|
ExclusiveArch: ppc %{power64}
|
||||||
|
|
||||||
@ -55,6 +50,7 @@ Requires: /usr/bin/ls
|
|||||||
Requires: /usr/bin/sed
|
Requires: /usr/bin/sed
|
||||||
Requires: /usr/bin/tr
|
Requires: /usr/bin/tr
|
||||||
Requires: /usr/bin/udevadm
|
Requires: /usr/bin/udevadm
|
||||||
|
|
||||||
# udev rule move
|
# udev rule move
|
||||||
Conflicts: libnxz < 0.63-3
|
Conflicts: libnxz < 0.63-3
|
||||||
|
|
||||||
@ -89,9 +85,6 @@ install -pDm 644 %{SOURCE1} %{buildroot}%{_udevrulesdir}/90-nx-gzip.rules
|
|||||||
# remove init script and perl script. They are deprecated
|
# remove init script and perl script. They are deprecated
|
||||||
rm -rf $RPM_BUILD_ROOT/etc/init.d/ibmvscsis.sh $RPM_BUILD_ROOT/usr/sbin/vscsisadmin
|
rm -rf $RPM_BUILD_ROOT/etc/init.d/ibmvscsis.sh $RPM_BUILD_ROOT/usr/sbin/vscsisadmin
|
||||||
|
|
||||||
# nvsetenv is just a wrapper to nvram
|
|
||||||
ln -s nvram.8.gz $RPM_BUILD_ROOT/%{_mandir}/man8/nvsetenv.8.gz
|
|
||||||
|
|
||||||
# symlink uspchrp
|
# symlink uspchrp
|
||||||
ln -s serv_config %{buildroot}%{_sbindir}/uspchrp
|
ln -s serv_config %{buildroot}%{_sbindir}/uspchrp
|
||||||
ln -s serv_config.8 %{buildroot}%{_mandir}/man8/uspchrp.8
|
ln -s serv_config.8 %{buildroot}%{_mandir}/man8/uspchrp.8
|
||||||
@ -99,6 +92,12 @@ 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*
|
||||||
|
|
||||||
|
# drop needless stuffs
|
||||||
|
rm -rf $RPM_BUILD_ROOT%{_prefix}/lib/powerpc-utils
|
||||||
|
|
||||||
|
# keep service name
|
||||||
|
mv $RPM_BUILD_ROOT%{_unitdir}/hcn-init-NetworkManager.service $RPM_BUILD_ROOT%{_unitdir}/hcn-init.service
|
||||||
|
|
||||||
%post core
|
%post core
|
||||||
%systemd_post hcn-init.service
|
%systemd_post hcn-init.service
|
||||||
# update the smt.state file with current SMT
|
# update the smt.state file with current SMT
|
||||||
@ -118,18 +117,25 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
|
|||||||
%files
|
%files
|
||||||
# PERL-based scripts for maintaining and servicing PowerPC systems
|
# PERL-based scripts for maintaining and servicing PowerPC systems
|
||||||
%doc README Changelog
|
%doc README Changelog
|
||||||
|
%license COPYING
|
||||||
%{_sbindir}/hvcsadmin
|
%{_sbindir}/hvcsadmin
|
||||||
%{_sbindir}/rtas_dump
|
%{_sbindir}/rtas_dump
|
||||||
%{_mandir}/man8/hvcsadmin.8*
|
%{_mandir}/man8/hvcsadmin.8*
|
||||||
%{_mandir}/man8/rtas_dump.8*
|
%{_mandir}/man8/rtas_dump.8*
|
||||||
|
|
||||||
%files core
|
%files core
|
||||||
|
%doc README Changelog
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%dir %{_localstatedir}/lib/powerpc-utils
|
%dir %{_localstatedir}/lib/powerpc-utils
|
||||||
%config(noreplace) %{_localstatedir}/lib/powerpc-utils/smt.state
|
%config(noreplace) %{_localstatedir}/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
|
||||||
|
%if 0%{?wicked}
|
||||||
|
%{_unitdir}/hcn-init-wicked.service
|
||||||
|
%else
|
||||||
|
%exclude %{_unitdir}/hcn-init-wicked.service
|
||||||
|
%endif
|
||||||
%{_bindir}/amsstat
|
%{_bindir}/amsstat
|
||||||
%{_sbindir}/activate_firmware
|
%{_sbindir}/activate_firmware
|
||||||
%{_sbindir}/bootlist
|
%{_sbindir}/bootlist
|
||||||
@ -203,6 +209,15 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Apr 09 2024 Than Ngo <than@redhat.com> - 1.3.12-3
|
||||||
|
- Resolves: RHEL-32262, update 1.3.12 for rhel-10
|
||||||
|
|
||||||
|
* Sun Apr 07 2024 Than Ngo <than@redhat.com> - 1.3.12-2
|
||||||
|
- conditionally hcn-init-wicked.service
|
||||||
|
|
||||||
|
* Fri Apr 05 2024 Than Ngo <than@redhat.com> - 1.3.12-1
|
||||||
|
- update to 1.3.12
|
||||||
|
|
||||||
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.11-6
|
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.11-6
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (powerpc-utils-1.3.11.tar.gz) = 448fbbd707a4ad734db79206fabc01f76a41738ce54d6dea86573bf4b7ea8e98e4efe99b1173d91dc0c0f4ee4312c044a7bf087a2a5f50c7e9089f81b1425921
|
SHA512 (powerpc-utils-1.3.12.tar.gz) = 43b192ff48407d49db0f31f2f347b41f44866452f215d37fe6b7705085f57066bf508bd462ff4f0b141f0a292fe15c990dd5693512a562e11a572aa6f0891b5f
|
||||||
|
Loading…
Reference in New Issue
Block a user