Name: tuned-profiles-ice-pf-msix-limit Version: 1.0 Release: 1.git.0.1fd2802%{?dist} Summary: TuneD profile for limiting Intel E810 PF MSI-X reservation License: GPL-2.0-or-later URL: https://github.com/redhat-performance/tuned Source0: tuned-profiles-ice-pf-msix-limit-git-0.1fd2802.tar.gz BuildArch: noarch Requires: tuned >= 2.11 Requires: ethtool Requires: iproute >= 5.0 %description Additional TuneD profile targeted to Intel E810 (ice driver) SR-IOV deployments. The profile limits the Physical Function's (PF) MSI-X vector reservation and active channel count, leaving more vectors available for Virtual Functions (VFs). On nodes with high CPU counts the ice driver's default algorithm reserves an excessive number of MSI-X vectors for the PF. This profile corrects the imbalance via devlink driverinit parameters and ethtool channel reduction. The following profile is provided: ice-pf-msix-limit — Limit E810 PF MSI-X vector reservation for SR-IOV %prep %setup -q -n tuned-profiles-ice-pf-msix-limit-git-0.1fd2802 %install # Profile directory mkdir -p %{buildroot}%{_prefix}/lib/tuned/ice-pf-msix-limit install -m 0644 profiles/ice-pf-msix-limit/tuned.conf \ %{buildroot}%{_prefix}/lib/tuned/ice-pf-msix-limit/tuned.conf install -m 0755 profiles/ice-pf-msix-limit/script.sh \ %{buildroot}%{_prefix}/lib/tuned/ice-pf-msix-limit/script.sh # Variables config (user-editable) mkdir -p %{buildroot}%{_sysconfdir}/tuned install -m 0644 ice-pf-msix-limit-variables.conf \ %{buildroot}%{_sysconfdir}/tuned/ice-pf-msix-limit-variables.conf # Man page mkdir -p %{buildroot}%{_mandir}/man7 install -m 0644 man/tuned-profiles-ice-pf-msix-limit.7 \ %{buildroot}%{_mandir}/man7/tuned-profiles-ice-pf-msix-limit.7 # Documentation mkdir -p %{buildroot}%{_docdir}/%{name} install -m 0644 README.md \ %{buildroot}%{_docdir}/%{name}/README.md %files %config(noreplace) %{_sysconfdir}/tuned/ice-pf-msix-limit-variables.conf %{_prefix}/lib/tuned/ice-pf-msix-limit %{_mandir}/man7/tuned-profiles-ice-pf-msix-limit.7* %doc README.md %post # If tuned is active, signal it to pick up the new profile if systemctl is-active tuned.service &>/dev/null; then tuned-adm list &>/dev/null || true fi %postun # On full removal, if the active profile was ours, switch to default if [ "$1" -eq 0 ]; then if systemctl is-active tuned.service &>/dev/null; then active=$(tuned-adm active 2>/dev/null | grep -oP 'Current active profile: \K.*') if [ "$active" = "ice-pf-msix-limit" ]; then tuned-adm profile balanced &>/dev/null || true fi fi fi %changelog * Fri Mar 06 2026 Carlos Goncalves - 1.0-1 - Initial release