# # spec file for package numad # # Copyright (c) 2021 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/ # Name: numad URL: http://git.fedorahosted.org/git/numad.git Summary: Userspace daemon that automatically binds workloads to NUMA nodes License: LGPL-2.1-only Group: System/Daemons Version: 0.5.20130522 Release: 0 Source0: numad-%{version}.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build Patch1: mainline-sysfs-paths.patch Patch2: numad-sbindir.patch Patch3: numad-opensuse-init.patch Patch4: numad-versioning.patch Patch5: numad-rpm-opt-flags.patch Patch6: numad-opensuse-systemd.patch Patch7: numad-systemd-simple-type.patch Patch8: harden_numad.service.patch %if 0%{?suse_version} > 1140 BuildRequires: pkgconfig(systemd) %{?systemd_requires} %define has_systemd 1 %endif %description numad is a userspace daemon that monitors NUMA usage and resource usage and attempts to configure workloads using cpusets to use a subset of CPUs and memory nodes to maximise the number local memory access for best performance. Alternatively, it can be used to give hints as to how workloads should be manually bound to CPUs and memory nodes. This daemon is primarily intended for scenarios where there are multiple processes each which fit within a NUMA node. Examples of such configurations are virtual machine instances where each VM is smaller than a NUMA node or running multiple JVMs where each instance fits within a NUMA node. If the workload is one process that spans two or more nodes such as a large database server or a single JVM instance then numad is likely to regress performance. %prep %autosetup -p1 %build make OPT_CFLAGS="$RPM_OPT_FLAGS" %{?_smp_mflags} %install %makeinstall prefix=$RPM_BUILD_ROOT%{_prefix} install gzip $RPM_BUILD_ROOT%{_mandir}/man8/numad.8 %{__install} -D -m 644 numad.conf $RPM_BUILD_ROOT/etc/numad.conf %if 0%{?has_systemd} install -D -m 0644 numad.service %{buildroot}%{_unitdir}/numad.service ln -sf ../../usr/sbin/service $RPM_BUILD_ROOT/usr/sbin/rcnumad %endif %if 0%{suse_version} < 1230 %{__install} -d $RPM_BUILD_ROOT%{_sysconfdir}/init.d %{__install} -m 744 numad.init $RPM_BUILD_ROOT%{_sysconfdir}/init.d/numad ln -sf ../../etc/init.d/numad $RPM_BUILD_ROOT/usr/sbin/rcnumad %endif %files %defattr(-,root,root) %{_sbindir}/numad %{_sbindir}/rcnumad %{_mandir}/man8/numad.8.gz %config /etc/numad.conf %if 0%{?has_systemd} %{_unitdir}/numad.service %endif %if 0%{suse_version} < 1230 %config /etc/init.d/numad %endif %pre %if 0%{?has_systemd} %service_add_pre numad.service %endif %preun %if 0%{?has_systemd} %service_del_preun numad.service %else %stop_on_removal numad %endif %post %if 0%{?has_systemd} %service_add_post numad.service %endif %postun %if 0%{?has_systemd} %service_del_postun numad.service %else %restart_on_update numad %insserv_cleanup %endif %changelog