OBS User unknown 2007-08-16 12:07:21 +00:00 committed by Git OBS Bridge
parent 1c083e7156
commit d6349fd549
9 changed files with 20 additions and 235 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4545b13f71a1397bdb63fe85129921360acfebb3375053950c763c43c6163d05
size 45051

3
numactl-1.0.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:728adb39756843eabf04c2d54beb642a79b0e08b826c1519b793290d0f0ed4f1
size 49824

View File

@ -1,26 +0,0 @@
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);

View File

@ -1,111 +0,0 @@
--- 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<<k))
- maxcpus = i*sizeof(long)+k;
- }
- return maxcpus;
- }
- break;
- }
- numa_warn(W_noproc, "/proc not mounted. Assuming zero nodes: %s",
- strerror(errno));
- return 0;
- }
- maxcpus = 0;
- while (getdelim(&line, &len, '\n', f) > 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)

View File

@ -1,20 +0,0 @@
--- 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;
}

View File

@ -1,25 +0,0 @@
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;
}

View File

@ -1,33 +0,0 @@
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);

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Thu Aug 16 01:33:42 CEST 2007 - ak@suse.de
- Update to 1.0.1
* Only bug fixes since the previous version, no
new functionality.
-------------------------------------------------------------------
Thu Jun 8 17:04:54 CEST 2006 - ak@suse.de

View File

@ -1,7 +1,7 @@
#
# spec file for package numactl (Version 0.9.6)
# spec file for package numactl (Version 1.0.1)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2007 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.
#
@ -11,17 +11,12 @@
# norootforbuild
Name: numactl
License: GPL
License: GPL v2 or later
Summary: NUMA Policy Control
Version: 0.9.6
Release: 5
Version: 1.0.1
Release: 1
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
@ -39,18 +34,12 @@ Authors:
%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
@ -71,7 +60,11 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/lib*
/usr/include/*
%changelog -n numactl
%changelog
* Thu Aug 16 2007 - ak@suse.de
- Update to 1.0.1
* Only bug fixes since the previous version, no
new functionality.
* Thu Jun 08 2006 - ak@suse.de
- Save/restore errno correctly (#182158)
* Thu Jun 08 2006 - ak@suse.de