irqbalance/irqbalance.spec
qinyu 9ba312d482 bugfix:fix potential dead loop when parsing interrupts
when parsing /proc/interrupts and if a chip name start with numbers,
current procedure would consider those  numbers as interrupt count thus
lead to miscount. Failed parsing would trigger new parsing and cause
dead loop which can't be stopped by SIGINT and SIGTERM. So fix this
by adding signal checks in loop.

Signed-off-by: qinyu <qinyu32@huawei.com>
2022-07-12 14:34:26 +08:00

315 lines
8.0 KiB
RPMSpec

Summary: A dynamic adaptive IRQ balancing daemon
Name: irqbalance
Version: 1.9.0
Release: 2
Epoch: 3
License: GPLv2
Source0: https://github.com/Irqbalance/irqbalance/archive/v%{version}.tar.gz#/irqbalance-%{version}.tar.gz
Source1: irqbalance.service
Source2: irqbalance.sysconfig
Source3: irqbalance.rules
Source4: irq_balancer
Url: https://github.com/irqbalance/irqbalance
BuildRequires: autoconf automake libtool libcap-ng systemd
BuildRequires: glib2-devel pkgconf libcap-ng-devel ncurses-devel
Requires: ncurses-libs
%ifnarch %{arm}
BuildRequires: numactl-devel
Requires: numactl-libs
%endif
%define _hardened_build 1
Patch6000: bugfix-parse_proc_interrupts-fix-parsing-interrupt-counts.patch
Patch6001: bugfix-add-keep_going-check-to-prevent-irqbalance-from-failing-to-exit-after-SIGTERM.patch
Patch9000: feature-aarch64-add-the-regular-to-get-the-correct-i.patch
Patch9001: feature-add-new-user-irq-policy-config-rule.patch
Patch9002: feature-add-the-switch-of-printing-log.patch
Patch9003: feature-introduce-verifyhint-to-detect-hint-variatio.patch
Patch9004: feature-add-switch-to-clear-affinity-hint.patch
Patch9005: feature-add-new-irq-migrate-rule-to-avoid-high-cpu-i.patch
Patch9006: feature-enable-irqbalance-to-link-with-multiple-clie.patch
Patch9007: feature-add-ability-to-set-hintpolicy-during-runtime.patch
Patch9008: feature-encapsulate-and-compile-the-functions-in-irqbalance-ui.patch
Patch9010: bugfix-set-hint-name-in-add_new_irq-to-avoid-segment.patch
%description
Irqbalance is a daemon to help balance the cpu load generated by
interrupts across all of a systems cpus. Irqbalance identifies the
highest volume interrupt sources, and isolates each of them to a
single unique cpu, so that load is spread as much as possible over
an entire processor set, while minimizing cache miss rates for irq
handlers.
%package devel
Summary: The development files of irqbalance client
Requires: glib2-devel ncurses-devel irqbalance-libs
%description devel
Development files for irqbalance client.
%package libs
Summary: The shared librariy of irqbalance client
Requires: glib2 ncurses-libs
%description libs
Shared librariy for irqbalance client.
%package_help
%prep
%autosetup -p1
%build
./autogen.sh
%configure
CFLAGS="%{optflags}" %make_build CFLAGS+='-fstack-protector-strong '
cd ui
rm -rf *.o
make
cd -
%install
install -D -p -m 0755 %{name} %{buildroot}%{_sbindir}/%{name}
install -D -p -m 0644 %{SOURCE1} %{buildroot}/%{_unitdir}/%{name}.service
install -D -p -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/%{name}
install -D -p -m 0755 %{SOURCE3} %{buildroot}%{_sysconfdir}/sysconfig/%{name}.rules
install -D -p -m 0755 %{SOURCE4} %{buildroot}%{_sbindir}/irq_balancer
install -D -p -m 0755 ui/irqbalance_client.h %{buildroot}/%{_includedir}/irqbalance_client.h
install -D -p -m 0755 ui/libirqbalance_client.so %{buildroot}/%{_libdir}/libirqbalance_client.so
install -d %{buildroot}%{_mandir}/man1/
install -p -m 0644 ./%{name}.1 %{buildroot}%{_mandir}/man1/
%check
make check
%files
%doc COPYING AUTHORS
%{_sbindir}/%{name}
%{_unitdir}/%{name}.service
%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
%{_sysconfdir}/sysconfig/%{name}.rules
%{_sbindir}/irq_balancer
%files devel
%{_includedir}/irqbalance_client.h
%files libs
%{_libdir}/libirqbalance_client.so
%files help
%{_mandir}/man1/*
%post
%systemd_post %{name}.service
%preun
%systemd_preun %{name}.service
%postun
%systemd_postun_with_restart %{name}.service
%triggerun -- %{name} < 2:0.56-3
if /sbin/chkconfig --level 3 %{name} ; then
/bin/systemctl enable %{name}.service >/dev/null 2>&1 || :
fi
/sbin/chkconfig --del %{name} >/dev/null 2>&1 || :
%changelog
* Tue Jul 12 2022 qinyu <qinyu32@huawei.com> - 3:1.9.0-2
- Type:bugfix
- ID:NA
- SUG:restart
- DESC: fix potential dead loop when parsing interrupts
* Thu Jul 7 2022 Liu Chao <liuchao173@huawei.com> - 3:1.9.0-1
- Type:enhanced
- ID:NA
- SUG:restart
- DESC: upgrade to v1.9.0
* Thu Jun 2 2022 Liu Chao <liuchao173@huawei.com> - 3:1.8.0-6
- Type:bugfix
- ID:NA
- SUG:restart
- DESC: assign pol to -1 when user_policy_list isn't NULL
* Tue Apr 12 2022 Liu Chao <liuchao173@huawei.com> - 3:1.8.0-5
- Type:bugfix
- ID:NA
- SUG:restart
- DESC: fix irqbalance-ui build error when ncuses upgrades to 6.3
* Mon Nov 1 2021 Liu Chao <liuchao173@huawei.com> - 3:1.8.0-4
- Type:bugfix
- ID:NA
- SUG:restart
- DESC:set hint->name in add_new_irq to avoid segmentation fault
* Wed Aug 25 2021 Liu Chao <liuchao173@huawei.com> - 3:1.8.0-3
- Type:bugfix
- ID:NA
- SUG:restart
- DESC:fix unsigned integer subtraction sign overflow
* Tue Aug 24 2021 Liu Chao <liuchao173@huawei.com> - 3:1.8.0-2
- Type:bugfix
- ID:NA
- SUG:restart
- DESC:fix opendir fails in check_platform_device
* Sat Apr 17 2021 Liu Chao <liuchao173@huawei.com> - 3:1.8.0-1
- Type:enhanced
- ID:NA
- SUG:restart
- DESC:upgrade to v1.8.0
* Fri Apr 9 2021 Liu Chao <liuchao173@huawei.com> - 3:1.7.0-5
- Type:enhanced
- ID:NA
- SUG:restart
- DESC:backport patches
* Tue Mar 2 2021 Liu Chao <liuchao173@huawei.com> - 3:1.7.0-4
- Type:enhanced
- ID:NA
- SUG:restart
- DESC:remove PIDFile in irqbalance.service and add IRQBALANCE_BANNED_INTERRUPTS in irqbalance.sysconfig
* Tue Jan 15 2021 Yunfeng Ye<yeyunfeng@huawei.com> - 3:1.7.0-3
- Type:enhanced
- ID:NA
- SUG:restart
- DESC:support IRQBALANCE_BANNED_CPULIST env variable
* Thu Sep 10 2020 Chunsheng Luo <luochunsheng@huawei.com> - 3:1.7.0-2
- Type:enhanced
- ID:NA
- SUG:NA
- DESC:fixup SOURCE0 url
* Fri Aug 14 2020 Liu Chao <liuchao173@huawei.com> - 3:1.7.0-1
- Type:enhanced
- ID:NA
- SUG:restart
- DESC:rebase to v1.7.0
* Fri Jul 3 2020 Liu Chao <liuchao173@huawei.com> - 3:1.6.0-1
- Type:enhanced
- ID:NA
- SUG:restart
- DESC:rebase to v1.6.0
* Tue Mar 24 2020 Liu chao <liuchao173@huawei.com> - 3:1.4.0-19
- Type:bugfix
- ID:NA
- SUG:restart
- DESC:refactor patches
* Tue Mar 24 2020 Shuaishuai Song <songshuaishuai2@huawei.com> - 3:1.4.0-18
- Type:bugfix
- ID:NA
- SUG:restart
- DESC: fix no fPIC error
* Wed Mar 11 2020 yuxiangyang<yuxiangyang4@huawei.com> - 3:1.4.0-17
- Type:bugfix
- ID:NA
- SUG:restart
- DESC: fix rpmbuild error on x86_64 architecture
* Wed Mar 11 2020 liuchao<liuchao173@huawei.com> - 3:1.4.0-16
- Type:enhanced
- ID:NA
- SUG:restart
- DESC:synchronize patches
* Mon Dec 30 2019 yuxiangyang<yuxiangyang4@huawei.com> - 3:1.4.0-15
- Type:enhanced
- ID:NA
- SUG:restart
- DESC:update Huawei copyright
* Thu Dec 26 2019 caomeng<caomeng5@huawei.com> - 3:1.4.0-14
- Type:NA
- ID:NA
- SUG:restart
- DESC:rename the patch
* Fri Dec 20 2019 caomeng<caomeng5@huawei.com> - 3:1.4.0-13
- Type:NA
- ID:NA
- SUG:restart
- DESC:change the url
* Fri Dec 20 2019 liuchao<liuchao173@huawei.com> - 3:1.4.0-12
- Type:bugfix
- ID:NA
- SUG:restart
- DESC:synchronize patches
* Wed Nov 13 2019 liuchao<liuchao173@huawei.com> - 3:1.4.0-11
- Type:other
- ID:NA
- SUG:restart
- DESC:remove backport prefix of community patches
* Mon Nov 11 2019 liuchao<liuchao173@huawei.com> - 3:1.4.0-10
- Type:bugfix
- ID:NA
- SUG:restart
- DESC:add patches from community
* Fri Nov 8 2019 liuchao<liuchao173@huawei.com> - 3:1.4.0-9
- Type:bugfix
- ID:NA
- SUG:NA
- DESC: fix strcat may cause buffer overrun
* Thu Oct 17 2019 caomeng<caomeng5@huawei.com> - 3:1.4.0-8
- Type:other
- ID:NA
- SUG:NA
- DESC: add help package
* Mon Oct 14 2019 liuchao<liuchao173@huawei.com> - 3:1.4.0-7
- Type: bugfix
- ID:NA
- SUG:NA
- DESC: make the return value of getline handled correct and change irq ban check path to devpath
* Mon Sep 23 2019 hejingxian<hejingxian@huawei.com> - 3:1.4.0-6
- Type: enhancement
- ID:NA
- SUG:NA
- DESC: add avoid duplicate-entry insert, guess_arm_irq_hints and new config rule patches
* Thu Sep 12 2019 caomeng<caomeng5@huawei.com> - 3:1.4.0-5
- Type:other
- ID:NA
- SUG:NA
- DESC: fix make in parallel way
* Fri Aug 30 2019 caomeng<caomeng5@huawei.com> - 3:1.4.0-4
- Type:other
- ID:NA
- SUG:NA
- DESC: fix SP comile option
* Thu Aug 29 2019 caomeng<caomeng5@huawei.com> - 3:1.4.0-3
- Type:other
- ID:NA
- SUG:NA
- DESC: openeuler rewrite spec file
* Thu Aug 29 2019 caomeng<caomeng5@huawei.com> - 3:1.4.0-2
- Package init