Compare commits

...

2 Commits
c8 ... c10

Author SHA1 Message Date
59b993577e import UBI numactl-2.0.19-2.el10 2025-11-11 21:55:38 +00:00
77c5bf3cd6 import UBI numactl-2.0.19-1.el10 2025-05-14 17:43:35 +00:00
7 changed files with 208 additions and 100 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/numactl-2.0.16.tar.gz numactl-2.0.19.tar.gz

View File

@ -1 +0,0 @@
37ea1a333827f279e940bf0ae55d6897b331f19f SOURCES/numactl-2.0.16.tar.gz

View File

@ -0,0 +1,80 @@
From 1159e00f4f8604fdbb36a8fb04a1c86ce3cdc054 Mon Sep 17 00:00:00 2001
From: Pingfan Liu <piliu@redhat.com>
Date: Thu, 23 Jan 2025 18:50:09 +0800
Subject: [PATCH 1/2] libnuma.c: Introduce numa_preferred_err()
After commit 87c6834 ( libnuma: Convert preferred node into a mask),
numa_preferred() returns -1 if no suitable node is found. Before that,
it returns 0.
The users still expect the old behavior, and use 0 as an index to
an array. In order to avoid modifying the existing code, let's introduce
another API numa_preferred_err() to report error if no suitable node is
available and keep numa_preferred() in its original form.
Signed-off-by: Pingfan Liu <piliu@redhat.com>
---
libnuma.c | 12 +++++++++++-
numa.h | 3 +++
versions.ldscript | 1 +
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/libnuma.c b/libnuma.c
index 1ffe207..380e8a6 100644
--- a/libnuma.c
+++ b/libnuma.c
@@ -1947,7 +1947,7 @@ static struct bitmask *__numa_preferred(void)
return bmp;
}
-int numa_preferred(void)
+int numa_preferred_err(void)
{
int first_node = 0;
struct bitmask *bmp;
@@ -1959,6 +1959,16 @@ int numa_preferred(void)
return first_node;
}
+int numa_preferred(void)
+{
+ int first_node = 0;
+
+ first_node = numa_preferred_err();
+ first_node = first_node >= 0 ? first_node : 0;
+
+ return first_node;
+}
+
static void __numa_set_preferred(struct bitmask *bmp)
{
int nodes = numa_bitmask_weight(bmp);
diff --git a/numa.h b/numa.h
index 51a6833..f0b550b 100644
--- a/numa.h
+++ b/numa.h
@@ -140,6 +140,9 @@ int numa_max_node(void);
int numa_max_possible_node(void);
/* Return preferred node */
int numa_preferred(void);
+/* If the preferred node is unavailable, return an error;
+ otherwise, return the preferred node */
+int numa_preferred_err(void);
/* Return node size and free memory */
long long numa_node_size64(int node, long long *freep);
diff --git a/versions.ldscript b/versions.ldscript
index ee48e70..2fd6ebc 100644
--- a/versions.ldscript
+++ b/versions.ldscript
@@ -45,6 +45,7 @@ libnuma_1.1 {
numa_parse_bitmap;
numa_police_memory;
numa_preferred;
+ numa_preferred_err;
numa_run_on_node;
numa_run_on_node_mask;
numa_sched_getaffinity;
--
2.49.0

View File

@ -0,0 +1,37 @@
From 63e02235bdbcf5aa334903be2111a82b27c8c155 Mon Sep 17 00:00:00 2001
From: Pingfan Liu <piliu@redhat.com>
Date: Fri, 24 Jan 2025 11:33:32 +0800
Subject: [PATCH 2/2] doc: Update man for numa_preferred_err()
Signed-off-by: Pingfan Liu <piliu@redhat.com>
---
numa.3 | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/numa.3 b/numa.3
index af24f66..e911953 100644
--- a/numa.3
+++ b/numa.3
@@ -64,6 +64,8 @@ numa \- NUMA policy library
.sp
.B int numa_preferred(void);
.br
+.B int numa_preferred_err(void);
+.br
.B int numa_has_preferred_many(void);
.br
.B struct bitmask *numa_preferred_many(void);
@@ -448,6 +450,10 @@ allocates memory, unless some other policy overrides this.
.\" order of the current node's zonelist to return the correct
.\" node. Need to tighten this up with the syscall results.
+.BR numa_preferred_err ()
+Similiar to numa_preferred(), but If the preferred node is unavailable,
+return an error instead of zero.
+
.BR numa_has_preferred_many ()
Returns > 0 if the system supports multiple preferred nodes.
--
2.49.0

View File

@ -1,26 +0,0 @@
From 66308a7e30a964aaad324f74c74eb5b9d75a2abd Mon Sep 17 00:00:00 2001
From: Pingfan Liu <piliu@redhat.com>
Date: Mon, 12 Jun 2023 21:15:39 +0800
Subject: [PATCH] fix typo in memhog.8
Signed-off-by: Pingfan Liu <piliu@redhat.com>
---
memhog.8 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/memhog.8 b/memhog.8
index e28e784..3846e08 100644
--- a/memhog.8
+++ b/memhog.8
@@ -52,7 +52,7 @@ thread is running on)
# Allocate a 1G region, mmap backed by memhog.mmap file, membind to node 0, repeat test 6 times
memhog -r6 1G --membind 0 -fmemhog.mmap
.TP
-# Allocate a 1G region, iterleave across nodes 0,1,2,3, repeat test 4 times
+# Allocate a 1G region, interleave across nodes 0,1,2,3, repeat test 4 times
memhog -r4 1G --interleave 0-3
.TP
# Allocate a 1G region, (implicit) default policy, repeat test 8 times
--
2.31.1

View File

@ -1,45 +1,21 @@
Name: numactl Name: numactl
Summary: Library for tuning for Non Uniform Memory Access machines Summary: Library for tuning for Non Uniform Memory Access machines
Version: 2.0.16 Version: 2.0.19
Release: 4%{?dist} Release: 2%{?dist}
# libnuma is LGPLv2 and GPLv2 # libnuma is LGPLv2 and GPLv2
# numactl binaries are GPLv2 only # numactl binaries are GPLv2 only
License: GPLv2 License: GPL-2.0-only
Group: System Environment/Base
URL: https://github.com/numactl/numactl URL: https://github.com/numactl/numactl
Source0: https://github.com/numactl/numactl/releases/download/%{version}/numactl-%{version}.tar.gz Source0: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz
Buildroot: %{_tmppath}/%{name}-buildroot
BuildRequires: libtool automake autoconf BuildRequires: make
BuildRequires: libtool automake autoconf
ExcludeArch: s390 %{arm} ExcludeArch: s390 %{arm}
#START INSERT # Patch601: 0001-Fix-fallback-for-set_mempolicy_home_node-syscall.patch
# Patch001: 0001-libnuma.c-Introduce-numa_preferred_err.patch
# Patches 0 through 100 are meant for x86 Patch002: 0002-doc-Update-man-for-numa_preferred_err.patch
#
#
# Patches 101 through 200 are meant for x86_64
#
#
# Patches 301 through 400 are meant for ppc64le
#
#
# Patches 401 through 500 are meant for s390x
#
#
# Patches 501 through 600 are meant for aarch64
#
#
# Patches 601 onward are generic patches
#
Patch601: 0001-fix-typo-in-memhog.8.patch
%description %description
Simple NUMA policy support. It consists of a numactl program to run Simple NUMA policy support. It consists of a numactl program to run
@ -48,8 +24,8 @@ other programs with a specific NUMA policy.
%package libs %package libs
Summary: libnuma libraries Summary: libnuma libraries
# There is a tiny bit of GPLv2 code in libnuma.c # There is a tiny bit of GPLv2 code in libnuma.c
License: LGPLv2 and GPLv2 License: LGPL-2.1-only AND GPL-2.0-only
Group: System Environment/Libraries
%description libs %description libs
numactl-libs provides libnuma, a library to do allocations with numactl-libs provides libnuma, a library to do allocations with
@ -57,36 +33,27 @@ NUMA policy in applications.
%package devel %package devel
Summary: Development package for building Applications that use numa Summary: Development package for building Applications that use numa
Group: System Environment/Libraries
Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release}
License: LGPLv2 and GPLv2 License: LGPL-2.1-only AND GPL-2.0-only
%description devel %description devel
Provides development headers for numa library calls Provides development headers for numa library calls
%prep %prep
%setup -q -n %{name}-%{version} %autosetup
# Fix the missing of standard autotools auxiliary files
#patch autoreconf -i
%patch601 -p1
%build %build
aclocal && automake
%configure --prefix=/usr --libdir=%{_libdir} %configure --prefix=/usr --libdir=%{_libdir}
make clean %make_build
make CFLAGS="$RPM_OPT_FLAGS -I."
%install %install
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
%make_install
make DESTDIR=$RPM_BUILD_ROOT install %ldconfig_scriptlets
%ldconfig_scriptlets libs
%post -p /sbin/ldconfig
%post libs -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%files %files
%doc README.md %doc README.md
@ -105,39 +72,89 @@ make DESTDIR=$RPM_BUILD_ROOT install
%files devel %files devel
%{_libdir}/libnuma.so %{_libdir}/libnuma.so
%{_libdir}/pkgconfig/numa.pc
%exclude %{_libdir}/libnuma.a %exclude %{_libdir}/libnuma.a
%exclude %{_libdir}/libnuma.la %{_libdir}/pkgconfig/numa.pc
%{_includedir}/numa.h %{_includedir}/numa.h
%{_includedir}/numaif.h %{_includedir}/numaif.h
%{_includedir}/numacompat1.h %{_includedir}/numacompat1.h
%{_mandir}/man3/*.3* %{_mandir}/man3/*.3*
%changelog %changelog
* Thu Sep 14 2023 Pingfan Liu <piliu@redhat.com> - 2.0.16-2 * Mon Apr 21 2025 Pingfan Liu <piliu@redhat.com> - 2.0.19-2
- fix typo in memhog.8 - Fix numa_preferred() returned value
- Remove contained patches
* Wed May 12 2021 Pingfan Liu <piliu@redhat.com> - 2.0.12-13 * Mon Nov 18 2024 Pingfan Liu <piliu@redhat.com> - 2.0.19-1
- libnuma: make numa_police_memory() free of race - Rebase to v2.0.19
* Sat May 9 2020 Pingfan Liu <piliu@redhat.com> - 2.0.12-11 * Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 2.0.18-4
- Update manpage description of --localalloc option - Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Fri Mar 13 2020 Pingfan Liu <piliu@redhat.com> - 2.0.12-10 * Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2.0.16-6
- memhog : add man page - Bump release for June 2024 mass rebuild
* Mon Apr 1 2019 Pingfan Liu <piliu@redhat.com> - 2.0.12-3 * Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.16-5
- add gating test cases - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Nov 26 2018 Pingfan Liu <piliu@redhat.com> - 2.0.12-2 * Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.16-4
- Fix: Add ShmemHugePages and ShmemPmdMapped to system_meminfo[] - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Nov 5 2018 Pingfan Liu <piliu@redhat.com> - 2.0.12-1 * Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.16-3
- Rebase to 2.0.12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Aug 10 2018 Lianbo Jiang <lijiang@redhat.com> - 2.0.11-8%{dist} * Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.16-2
- Fix compilation error (bz1611734) - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Oct 08 2022 Filipe Brandenburger <filbranden@gmail.com> - 2.0.16-1
- Upgrade to 2.0.16
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.14-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.14-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.14-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.14-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Nov 11 2020 Florian Weimer <fweimer@redhat.com> - 2.0.14-2
- Trigger rebuild to avoid DT_INIT/DT_FINI with zero values
* Thu Sep 17 2020 Filipe Brandenburger <filbranden@gmail.com> - 2.0.14-1
- Upgrade to 2.0.14
- Re-enabled LTO, now that upstream has been fixed to support it.
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.12-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 01 2020 Jeff Law <law@redhat.com> - 2.0.12-5
- Disable LTO
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.12-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.12-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Jul 25 2018 Filipe Brandenburger <filbranden@gmail.com> - 2.0.12-1
- Rebased to version 2.0.12
* Wed Jul 25 2018 Filipe Brandenburger <filbranden@gmail.com>
- Fix check-rpaths warning about including /usr/lib64 in RPATH of the binaries.
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.11-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sat Mar 24 2018 Richard W.M. Jones <rjones@redhat.com> - 2.0.11-9%{dist}
- Fix major/minor macros on glibc 2.27.
- Update config.{guess,sub} with versions which understand riscv64.
- Remove obsolete Buildroot tag.
* Sat Feb 24 2018 Florian Weimer <fweimer@redhat.com> - 2.0.11-8%{dist} * Sat Feb 24 2018 Florian Weimer <fweimer@redhat.com> - 2.0.11-8%{dist}
- Use LDFLAGS from redhat-rpm-config - Use LDFLAGS from redhat-rpm-config

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (numactl-2.0.19.tar.gz) = a9aa93bdc6333b620c10ff3573d6ff645ab54beece75e67be8cdddb27d062cc56cea34db342005a171877f85f05eb1d24e43f8466be907ba3b7c8b1f897cd954