orion pushed to hwloc (f22). "Fix hwloc issue on arm"

notifications at fedoraproject.org notifications at fedoraproject.org
Wed Apr 8 17:02:40 UTC 2015


>From 4c1dd1d39f2a38548778fb187782922c70508741 Mon Sep 17 00:00:00 2001
From: Orion Poplawski <orion at cora.nwra.com>
Date: Sun, 5 Apr 2015 09:40:01 -0600
Subject: Fix hwloc issue on arm


diff --git a/.gitignore b/.gitignore
index b3dd4a3..0c60f8b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 /hwloc-*.tar.bz2
 /lstopo.desktop
+/32ppc-4n4c2c.tar.bz2
diff --git a/hwloc-arm.patch b/hwloc-arm.patch
new file mode 100644
index 0000000..e1aca0d
--- /dev/null
+++ b/hwloc-arm.patch
@@ -0,0 +1,36 @@
+diff -up hwloc-1.10.1/NEWS.arm hwloc-1.10.1/NEWS
+diff -up hwloc-1.10.1/src/topology-linux.c.arm hwloc-1.10.1/src/topology-linux.c
+--- hwloc-1.10.1/src/topology-linux.c.arm	2015-01-19 06:28:30.000000000 -0700
++++ hwloc-1.10.1/src/topology-linux.c	2015-04-04 20:25:11.519848174 -0600
+@@ -2505,6 +2505,10 @@ look_powerpc_device_tree(struct hwloc_to
+   DIR *dt;
+   struct dirent *dirent;
+ 
++  /* only works for Power so far, and not useful on ARM */
++  if (strncmp(data->utsname.machine, "ppc", 3))
++    return;
++
+   ofroot = "/sys/firmware/devicetree/base/cpus";
+   ofrootlen = 34;
+   dt = hwloc_opendir(ofroot, root_fd);
+@@ -2571,6 +2575,10 @@ look_powerpc_device_tree(struct hwloc_to
+         }
+         free(threads);
+       } else if ((unsigned int)-1 != reg) {
++        /* Doesn't work on ARM because cpu "reg" do not start at 0.
++	 * We know the first cpu "reg" is the lowest. The others are likely
++	 * in order assuming the device-tree shows objects in order.
++	 */
+         cpuset = hwloc_bitmap_alloc();
+         hwloc_bitmap_set(cpuset, reg);
+       }
+diff --git a/tests/linux/32ppc-4n4c2c.output b/tests/linux/32ppc-4n4c2c.output
+index e0d73dc..733abb4 100644
+--- a/tests/linux/32ppc-4n4c2c.output
++++ b/tests/linux/32ppc-4n4c2c.output
+@@ -1,4 +1,4 @@
+-Machine (P#0 total=129236992KB Backend=Linux)
++Machine (P#0 total=129236992KB PlatformName=pSeries PlatformModel="CHRP IBM,9125-F2A" Backend=Linux Architecture=ppc)
+   NUMANode L#0 (P#0 local=31195136KB total=31195136KB)
+     L3Cache L#0 (size=32768KB linesize=128)
+       L2Cache L#0 (size=4096KB linesize=128 ways=8)
diff --git a/hwloc.spec b/hwloc.spec
index fd59073..0674305 100644
--- a/hwloc.spec
+++ b/hwloc.spec
@@ -6,6 +6,11 @@ License:   BSD
 Group:     Applications/System
 URL:       http://www.open-mpi.org/projects/hwloc/
 Source0:   http://www.open-mpi.org/software/hwloc/v1.10/downloads/%{name}-%{version}.tar.bz2
+# Updated test file for patch below
+Source1:   https://github.com/open-mpi/hwloc/raw/7a9b00834235ddd3c02699cbab7946edf6fc9030/tests/linux/32ppc-4n4c2c.tar.bz2
+# Fix issue on ARM
+# https://github.com/open-mpi/hwloc/issues/127
+Patch0:    hwloc-arm.patch
 Requires:  %{name}-libs%{?_isa} = %{version}-%{release}
 
 BuildRequires: cairo-devel
@@ -76,6 +81,8 @@ Requires:  %{name}-plugins%{?_isa} = %{version}-%{release}
 
 %prep
 %setup -q
+%patch0 -p1 -b .arm
+cp -a %SOURCE1 tests/linux/
 
 %build
 autoreconf --force --install
@@ -140,6 +147,9 @@ make check
 %{_libdir}/hwloc*
 
 %changelog
+* Sat Apr 4 2015 Orion Poplwski <orion at cora.nwra.com> - 1.10.1-2
+- Fix hwloc issue on arm
+
 * Wed Apr 1 2015 Orion Poplwski <orion at cora.nwra.com> - 1.10.1-1
 - Update to version 1.10.1
 
diff --git a/sources b/sources
index bb00f1f..ebe03ac 100644
--- a/sources
+++ b/sources
@@ -1 +1,2 @@
 f53c1f00bd857b291a89c8926772886e  hwloc-1.10.1.tar.bz2
+30f3a42c1606b06f576967b674d03254  32ppc-4n4c2c.tar.bz2
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/hwloc.git/commit/?h=f22&id=4c1dd1d39f2a38548778fb187782922c70508741


More information about the scm-commits mailing list