From 1c083e7156f952819a8dfa49965839b43b620ba35066408d4a430393834a9306 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Mon, 15 Jan 2007 23:27:07 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/numactl?expand=0&rev=1 --- .gitattributes | 23 ++++++ .gitignore | 1 + numactl-0.9.6.tar.gz | 3 + numactl-node-to-cpus | 26 +++++++ numactl-number-of-cpus | 111 ++++++++++++++++++++++++++++ numactl-save-errno | 20 +++++ numactl-zero | 25 +++++++ numactl-zero-fix | 33 +++++++++ numactl.changes | 163 +++++++++++++++++++++++++++++++++++++++++ numactl.spec | 150 +++++++++++++++++++++++++++++++++++++ ready | 0 11 files changed, 555 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 numactl-0.9.6.tar.gz create mode 100644 numactl-node-to-cpus create mode 100644 numactl-number-of-cpus create mode 100644 numactl-save-errno create mode 100644 numactl-zero create mode 100644 numactl-zero-fix create mode 100644 numactl.changes create mode 100644 numactl.spec create mode 100644 ready diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/numactl-0.9.6.tar.gz b/numactl-0.9.6.tar.gz new file mode 100644 index 0000000..e8a2754 --- /dev/null +++ b/numactl-0.9.6.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4545b13f71a1397bdb63fe85129921360acfebb3375053950c763c43c6163d05 +size 45051 diff --git a/numactl-node-to-cpus b/numactl-node-to-cpus new file mode 100644 index 0000000..20db157 --- /dev/null +++ b/numactl-node-to-cpus @@ -0,0 +1,26 @@ +diff -urp numactl-0.9.6/libnuma.c numactl/libnuma.c +--- numactl-0.9.6/libnuma.c 2006-05-23 23:20:56.000000000 +0200 ++++ numactl/libnuma.c 2006-03-28 00:17:05.000000000 +0200 +@@ -493,16 +493,12 @@ int numa_node_to_cpus(int node, unsigned + + /* if mask[0] is full shift left before adding another */ + if (bits_in_mask_0 >= sizeof(mask[0])*8) { +- /* skip any leading zeros */ +- if (prev || mask[0]){ +- /* shift over any previously loaded masks */ +- memmove(mask+mask_words+1, mask+mask_words, +- sizeof(mask[0]) * mask_words); +- mask_words++; +- bits_in_mask_0 = 0; +- mask[0] = 0; +- prev = 1; +- } ++ /* shift over any previously loaded masks */ ++ mask_words++; ++ for (n = mask_words; n > 0; n--) ++ memmove(mask+n, mask+n-1, sizeof(mask[0])); ++ bits_in_mask_0 = 0; ++ mask[0] = 0; + } + + mask[0] = (mask[0]*16) + (w - hexdigits); diff --git a/numactl-number-of-cpus b/numactl-number-of-cpus new file mode 100644 index 0000000..92de40d --- /dev/null +++ b/numactl-number-of-cpus @@ -0,0 +1,111 @@ +--- numactl-0.9.8/libnuma.c 2006-04-04 05:52:26.000000000 +0200 ++++ numactl/libnuma.c 2006-06-08 11:50:19.000000000 +0200 +@@ -118,58 +118,26 @@ + static int maxnode = -1; + static int maxcpus = -1; + +-static int number_of_cpus(void) ++static int number_of_configured_cpus(void) + { +- char *line = NULL; +- size_t len = 0; +- char *s; +- FILE *f; +- int cpu; ++ int len = 16; ++ int n; + + if (maxcpus >= 0) + return maxcpus + 1; + +- f = fopen("/proc/cpuinfo","r"); +- if (!f) { +- int n; +- int len = 8192; +- for (;;) { +- unsigned long buffer[CPU_LONGS(len)]; +- memset(buffer, 0, sizeof(buffer)); +- n = numa_sched_getaffinity_int(0, CPU_BYTES(len), +- buffer); +- if (n < 0 && errno == EINVAL && len < 1024*1024) { +- len *= 2; +- continue; +- } +- if (n >= 0) { +- int i, k; +- for (i = 0; i < n / sizeof(long); i++) { +- if (!buffer[i]) +- continue; +- for (k = 0; k< 8; k++) +- if (buffer[i] & (1< 0) { +- if (strncmp(line,"processor",9)) ++ do { ++ unsigned long buffer[CPU_LONGS(len)]; ++ memset(buffer, 0, sizeof(buffer)); ++ n = numa_sched_getaffinity_int(0, CPU_BYTES(len), buffer); ++ if (n < 0 && errno == EINVAL) { ++ if (len >= 1024*1024) ++ break; ++ len *= 2; + continue; +- s = line + strcspn(line, "0123456789"); +- if (sscanf(s, "%d", &cpu) == 1 && cpu > maxcpus) +- maxcpus = cpu; +- } +- free(line); +- fclose(f); +- return maxcpus + 1; ++ } ++ } while (n < 0); ++ return len; + } + + static int fallback_max_node(void) +@@ -440,7 +408,7 @@ + int n; + int buflen_needed; + unsigned long *mask, prev; +- int ncpus = number_of_cpus(); ++ int ncpus = number_of_configured_cpus(); + int i; + int mask_words; + int bits_in_mask_0; +@@ -528,7 +496,7 @@ + + int numa_run_on_node_mask(const nodemask_t *mask) + { +- int ncpus = number_of_cpus(); ++ int ncpus = number_of_configured_cpus(); + int i, k, err; + unsigned long cpus[CPU_LONGS(ncpus)], nodecpus[CPU_LONGS(ncpus)]; + memset(cpus, 0, CPU_BYTES(ncpus)); +@@ -582,7 +550,7 @@ + + nodemask_t numa_get_run_node_mask(void) + { +- int ncpus = number_of_cpus(); ++ int ncpus = number_of_configured_cpus(); + nodemask_t mask; + int i, k; + int max = numa_max_node_int(); +@@ -612,7 +580,7 @@ + + int numa_run_on_node(int node) + { +- int ncpus = number_of_cpus(); ++ int ncpus = number_of_configured_cpus(); + unsigned long cpus[CPU_LONGS(ncpus)]; + + if (node == -1) diff --git a/numactl-save-errno b/numactl-save-errno new file mode 100644 index 0000000..eb04017 --- /dev/null +++ b/numactl-save-errno @@ -0,0 +1,20 @@ +--- numactl/libnuma.c~ 2006-06-08 11:50:19.000000000 +0200 ++++ numactl/libnuma.c 2006-06-08 16:57:12.000000000 +0200 +@@ -122,7 +122,8 @@ + { + int len = 16; + int n; +- ++ int olde = errno; ++ + if (maxcpus >= 0) + return maxcpus + 1; + +@@ -137,6 +138,7 @@ + continue; + } + } while (n < 0); ++ errno = olde; + return len; + } + diff --git a/numactl-zero b/numactl-zero new file mode 100644 index 0000000..c8a363f --- /dev/null +++ b/numactl-zero @@ -0,0 +1,25 @@ +diff -Naurp numactl-0.9.6/libnuma.c numactl-0.9.6-fix/libnuma.c +--- numactl-0.9.6/libnuma.c 2006-03-28 03:28:09.000000000 -0500 ++++ numactl-0.9.6-fix/libnuma.c 2006-03-30 11:23:33.000000000 -0500 +@@ -491,12 +491,17 @@ int numa_node_to_cpus(int node, unsigned + goto out; + } + ++ /* skip any leading zeros */ ++ if (!prev && !(w - hexdigits)) ++ continue; ++ prev = 1; ++ + /* if mask[0] is full shift left before adding another */ + if (bits_in_mask_0 >= sizeof(mask[0])*8) { + /* shift over any previously loaded masks */ ++ memmove(mask+mask_words+1, mask+mask_words, ++ sizeof(mask[0]) * mask_words); + mask_words++; +- for (n = mask_words; n > 0; n--) +- memmove(mask+n, mask+n-1, sizeof(mask[0])); + bits_in_mask_0 = 0; + mask[0] = 0; + } + + diff --git a/numactl-zero-fix b/numactl-zero-fix new file mode 100644 index 0000000..400ce53 --- /dev/null +++ b/numactl-zero-fix @@ -0,0 +1,33 @@ +diff -Naurp numactl-0.9.7-orig/libnuma.c numactl-0.9.7-fix/libnuma.c +--- numactl-0.9.7-orig/libnuma.c 2006-03-30 12:27:29.000000000 -0500 ++++ numactl-0.9.7-fix/libnuma.c 2006-03-30 16:31:13.000000000 -0500 +@@ -491,19 +491,18 @@ int numa_node_to_cpus(int node, unsigned + goto out; + } + +- /* skip any leading zeros */ +- if (!prev && !(w - hexdigits)) +- continue; +- prev = 1; +- + /* if mask[0] is full shift left before adding another */ + if (bits_in_mask_0 >= sizeof(mask[0])*8) { +- /* shift over any previously loaded masks */ +- memmove(mask+mask_words+1, mask+mask_words, +- sizeof(mask[0]) * mask_words); +- mask_words++; +- bits_in_mask_0 = 0; +- mask[0] = 0; ++ /* skip any leading zeros */ ++ if (prev || mask[0]){ ++ /* shift over any previously loaded masks */ ++ memmove(mask+mask_words+1, mask+mask_words, ++ sizeof(mask[0]) * mask_words); ++ mask_words++; ++ bits_in_mask_0 = 0; ++ mask[0] = 0; ++ prev = 1; ++ } + } + + mask[0] = (mask[0]*16) + (w - hexdigits); diff --git a/numactl.changes b/numactl.changes new file mode 100644 index 0000000..ca45a08 --- /dev/null +++ b/numactl.changes @@ -0,0 +1,163 @@ +------------------------------------------------------------------- +Thu Jun 8 17:04:54 CEST 2006 - ak@suse.de + +- Save/restore errno correctly (#182158) + +------------------------------------------------------------------- +Thu Jun 8 11:59:32 CEST 2006 - ak@suse.de + +- Fix cpu buffer sizing for affinity syscalls (#182145) + +------------------------------------------------------------------- +Tue May 23 23:22:30 CEST 2006 - ak@suse.de + +- Fix cpumap parsing again (#177749) + +------------------------------------------------------------------- +Thu Mar 30 19:17:22 CEST 2006 - ak@suse.de + +- Fix the cpumap parsing fix to not corrupt memory (still #161089) + +------------------------------------------------------------------- +Tue Mar 28 10:33:00 CEST 2006 - ak@suse.de + +- Update to 0.9.6: (#161089) + * consolidates earlier changes + * fix migrate pages error handling + * add numa_maps manpage + * fix cpumap parsing on large systems + * some build fixes + +------------------------------------------------------------------- +Thu Mar 23 21:37:24 CET 2006 - ak@suse.de + +- Don't install syscall manpages which are in the normal + manpages now (#158550) + +------------------------------------------------------------------- +Sun Feb 12 22:45:34 CET 2006 - ak@suse.de + +- Install migratepages manpage (followon for #143825) + +------------------------------------------------------------------- +Wed Feb 8 12:41:06 CET 2006 - ak@suse.de + +- Add support for page migration (#143825) + +------------------------------------------------------------------- +Wed Jan 25 21:45:04 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Wed Jan 4 21:24:14 CET 2006 - ak@suse.de + +- Update to numactl 0.9.1 to fix ppc32 build. + +------------------------------------------------------------------- +Tue Jan 3 21:40:11 CET 2006 - ak@suse.de + +- Update to numactl 0.9 + +------------------------------------------------------------------- +Mon Dec 19 08:52:45 CET 2005 - ak@suse.de + +- Update to numactl 0.8 + +------------------------------------------------------------------- +Fri Dec 16 12:05:26 CET 2005 - ro@suse.de + +- do not build as root + +------------------------------------------------------------------- +Mon Oct 10 23:09:58 CEST 2005 - ak@suse.de + +- use RPM_OPT_FLAGS +- fix build on ia64 with debuginfo package + +------------------------------------------------------------------- +Mon Oct 10 10:57:36 CEST 2005 - ak@suse.de + +- Fix includes in manpages (#72853) +- Fix buffer length calculation (#118980) + +------------------------------------------------------------------- +Wed Apr 27 12:04:33 CEST 2005 - jplack@suse.de + +- override broken calculation of libdir in Makefile by using + %{_libdir} rpm macro (#75249). Now it builds on ppc also. + +------------------------------------------------------------------- +Mon Apr 25 18:26:27 CEST 2005 - jplack@suse.de + +- added numactl-LDPS1255-ppc (#75249 - LTC14536) + +------------------------------------------------------------------- +Tue Apr 5 20:31:55 CEST 2005 - ak@suse.de + +- Fix manpages (#72835, #65944) +- Fix thread handling with NPTL (#64496) + +------------------------------------------------------------------- +Mon Nov 22 17:50:42 CET 2004 - ak@suse.de + +- Fix C++ compilation (#45796) + +------------------------------------------------------------------- +Tue Sep 7 15:43:47 CEST 2004 - ak@suse.de + +- Fix numa_node_to_cpus on big machines (#44433) + +------------------------------------------------------------------- +Wed Jun 16 03:27:52 CEST 2004 - ak@suse.de + +- Fix --cpubind on kernels with large NR_CPUS (#42041) + +------------------------------------------------------------------- +Sat Jun 5 20:32:23 CEST 2004 - ak@suse.de + +- update to 0.6.4: + * add copyright headers for GPL and LGPL (#41685) +- Add requires to perl for numastat + +------------------------------------------------------------------- +Thu May 20 20:26:10 CEST 2004 - ak@suse.de + +- update to 0.6.3: + * fix cpu map parsing with large number of CPUs (#40820) + +------------------------------------------------------------------- +Tue May 11 15:25:04 CEST 2004 - ak@suse.de + +- update to 0.6.2: + * fix numademo to use STREAM + * make headers C++ clean + * some other bug fixes. + * add preliminary i386 syscalls + +------------------------------------------------------------------- +Sun Apr 4 16:22:14 CEST 2004 - ak@suse.de + +- compile on ia64 too + +------------------------------------------------------------------- +Thu Apr 1 20:43:27 CEST 2004 - ak@suse.de + +- update to 0.6 final. fix a few bugs in numactl and libnuma and +work on IA64 too + +------------------------------------------------------------------- +Mon Mar 22 18:10:29 CET 2004 - ak@suse.de + +- update to 0.6pre. + +------------------------------------------------------------------- +Mon May 19 09:35:53 CEST 2003 - ak@suse.de + +- update to numactl-0.3. add libnuma and new manpages. add numademo. + +------------------------------------------------------------------- +Wed May 7 15:39:48 CEST 2003 - ak@suse.de + +- package written and created + diff --git a/numactl.spec b/numactl.spec new file mode 100644 index 0000000..d791b48 --- /dev/null +++ b/numactl.spec @@ -0,0 +1,150 @@ +# +# spec file for package numactl (Version 0.9.6) +# +# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +Name: numactl +License: GPL +Summary: NUMA Policy Control +Version: 0.9.6 +Release: 5 +Autoreqprov: on +Source: numactl-%version.tar.gz +Patch0: numactl-zero +Patch1: numactl-zero-fix +Patch2: numactl-node-to-cpus +Patch3: numactl-number-of-cpus +Patch4: numactl-save-errno +Group: System/Management +BuildRoot: %{_tmppath}/%{name}-%{version}-build +ExclusiveArch: ia64 x86_64 ppc64 ppc +Requires: perl + +%description +Control NUMA policy for individual processes. Offer libnuma for +individual NUMA policy in applications. + + + +Authors: +-------- + Andi Kleen (ak@suse.de) + +%prep +%setup +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 + +%build +make CFLAGS="${RPM_OPT_FLAGS}" + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/usr/share/man/man2 +install -d -m 755 $RPM_BUILD_ROOT/usr/bin +install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man8 +install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man3 +install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man5 +install -d -m 755 $RPM_BUILD_ROOT%{_libdir} +install -d -m 755 $RPM_BUILD_ROOT/usr/include +make prefix=${RPM_BUILD_ROOT}/usr install + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%doc %{_mandir}/man8/* +%doc %{_mandir}/man3/* +%doc %{_mandir}/man5/* +/usr/bin/* +%{_libdir}/lib* +/usr/include/* + +%changelog -n numactl +* Thu Jun 08 2006 - ak@suse.de +- Save/restore errno correctly (#182158) +* Thu Jun 08 2006 - ak@suse.de +- Fix cpu buffer sizing for affinity syscalls (#182145) +* Tue May 23 2006 - ak@suse.de +- Fix cpumap parsing again (#177749) +* Thu Mar 30 2006 - ak@suse.de +- Fix the cpumap parsing fix to not corrupt memory (still #161089) +* Tue Mar 28 2006 - ak@suse.de +- Update to 0.9.6: (#161089) + * consolidates earlier changes + * fix migrate pages error handling + * add numa_maps manpage + * fix cpumap parsing on large systems + * some build fixes +* Thu Mar 23 2006 - ak@suse.de +- Don't install syscall manpages which are in the normal + manpages now (#158550) +* Sun Feb 12 2006 - ak@suse.de +- Install migratepages manpage (followon for #143825) +* Wed Feb 08 2006 - ak@suse.de +- Add support for page migration (#143825) +* Wed Jan 25 2006 - mls@suse.de +- converted neededforbuild to BuildRequires +* Wed Jan 04 2006 - ak@suse.de +- Update to numactl 0.9.1 to fix ppc32 build. +* Tue Jan 03 2006 - ak@suse.de +- Update to numactl 0.9 +* Mon Dec 19 2005 - ak@suse.de +- Update to numactl 0.8 +* Fri Dec 16 2005 - ro@suse.de +- do not build as root +* Mon Oct 10 2005 - ak@suse.de +- use RPM_OPT_FLAGS +- fix build on ia64 with debuginfo package +* Mon Oct 10 2005 - ak@suse.de +- Fix includes in manpages (#72853) +- Fix buffer length calculation (#118980) +* Wed Apr 27 2005 - jplack@suse.de +- override broken calculation of libdir in Makefile by using + %%{_libdir} rpm macro (#75249). Now it builds on ppc also. +* Mon Apr 25 2005 - jplack@suse.de +- added numactl-LDPS1255-ppc (#75249 - LTC14536) +* Tue Apr 05 2005 - ak@suse.de +- Fix manpages (#72835, #65944) +- Fix thread handling with NPTL (#64496) +* Mon Nov 22 2004 - ak@suse.de +- Fix C++ compilation (#45796) +* Tue Sep 07 2004 - ak@suse.de +- Fix numa_node_to_cpus on big machines (#44433) +* Wed Jun 16 2004 - ak@suse.de +- Fix --cpubind on kernels with large NR_CPUS (#42041) +* Sat Jun 05 2004 - ak@suse.de +- update to 0.6.4: + * add copyright headers for GPL and LGPL (#41685) +- Add requires to perl for numastat +* Thu May 20 2004 - ak@suse.de +- update to 0.6.3: + * fix cpu map parsing with large number of CPUs (#40820) +* Tue May 11 2004 - ak@suse.de +- update to 0.6.2: + * fix numademo to use STREAM + * make headers C++ clean + * some other bug fixes. + * add preliminary i386 syscalls +* Sun Apr 04 2004 - ak@suse.de +- compile on ia64 too +* Thu Apr 01 2004 - ak@suse.de +- update to 0.6 final. fix a few bugs in numactl and libnuma and + work on IA64 too +* Mon Mar 22 2004 - ak@suse.de +- update to 0.6pre. +* Mon May 19 2003 - ak@suse.de +- update to numactl-0.3. add libnuma and new manpages. add numademo. +* Wed May 07 2003 - ak@suse.de +- package written and created diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4