diff options
author | Gerald Pfeifer <gerald@FreeBSD.org> | 2015-04-30 10:28:45 +0000 |
---|---|---|
committer | Gerald Pfeifer <gerald@FreeBSD.org> | 2015-04-30 10:28:45 +0000 |
commit | 5edcaf4e14cb6c1c3c4cd5bf19c941cfe04fb79b (patch) | |
tree | 35635b9e7a04545274652ec1669af1caa9c045ba /lang/gcc48 | |
parent | 90c53bdd1ed366cd0ed6b9d8a770c07b44267246 (diff) | |
download | freebsd-ports-5edcaf4e14cb6c1c3c4cd5bf19c941cfe04fb79b.zip |
Remove the libgomp performance patches again. Too many problem
reports by users.
Diffstat (limited to 'lang/gcc48')
-rw-r--r-- | lang/gcc48/files/patch-libgomp-freebsd-affinity | 117 | ||||
-rw-r--r-- | lang/gcc48/files/patch-libgomp-posix-affinity | 18 |
2 files changed, 0 insertions, 135 deletions
diff --git a/lang/gcc48/files/patch-libgomp-freebsd-affinity b/lang/gcc48/files/patch-libgomp-freebsd-affinity deleted file mode 100644 index 7b35399a66a2..000000000000 --- a/lang/gcc48/files/patch-libgomp-freebsd-affinity +++ /dev/null @@ -1,117 +0,0 @@ ---- libgomp/config/bsd/freebsd_affinity.c.orig 2015-04-26 05:29:16.795040000 -0700 -+++ libgomp/config/bsd/freebsd_affinity.c 2015-04-26 05:29:03.462728000 -0700 -@@ -0,0 +1,114 @@ -+/* Copyright (C) 2015 Free Software Foundation, Inc. -+ Contributed by Adrian Chadd <adrian@FreeBSD.org>. -+ Based on work by Jakub Jelinek <jakub@redhat.com>. -+ -+ This file is part of the GNU OpenMP Library (libgomp). -+ -+ Libgomp is free software; you can redistribute it and/or modify it -+ under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 3, or (at your option) -+ any later version. -+ -+ Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY -+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+ more details. -+ -+ Under Section 7 of GPL version 3, you are granted additional -+ permissions described in the GCC Runtime Library Exception, version -+ 3.1, as published by the Free Software Foundation. -+ -+ You should have received a copy of the GNU General Public License and -+ a copy of the GCC Runtime Library Exception along with this program; -+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+/* This is a FreeBSD specific implementation of a CPU affinity setting. */ -+ -+#include "libgomp.h" -+ -+#include <stdlib.h> -+#include <unistd.h> -+#include <pthread.h> -+#include <pthread_np.h> -+ -+static unsigned int affinity_counter; -+ -+void -+gomp_init_affinity (void) -+{ -+ cpuset_t cpuset, cpusetnew; -+ size_t idx, widx; -+ unsigned long cpus = 0; -+ -+ if (pthread_getaffinity_np (pthread_self (), sizeof (cpuset), &cpuset)) -+ { -+ gomp_error ("could not get CPU affinity set"); -+ free (gomp_cpu_affinity); -+ gomp_cpu_affinity = NULL; -+ gomp_cpu_affinity_len = 0; -+ return; -+ } -+ -+ CPU_ZERO (&cpusetnew); -+ if (gomp_cpu_affinity_len == 0) -+ { -+ unsigned long count = CPU_COUNT(&cpuset); -+ if (count >= 65536) -+ count = 65536; -+ gomp_cpu_affinity = malloc (count * sizeof (unsigned short)); -+ if (gomp_cpu_affinity == NULL) -+ { -+ gomp_error ("not enough memory to store CPU affinity list"); -+ return; -+ } -+ for (widx = idx = 0; widx < count && idx < 65536; idx++) -+ if (CPU_ISSET (idx, &cpuset)) -+ { -+ cpus++; -+ gomp_cpu_affinity[widx++] = idx; -+ } -+ } -+ else -+ for (widx = idx = 0; idx < gomp_cpu_affinity_len; idx++) -+ if (gomp_cpu_affinity[idx] < CPU_SETSIZE -+ && CPU_ISSET (gomp_cpu_affinity[idx], &cpuset)) -+ { -+ if (! CPU_ISSET (gomp_cpu_affinity[idx], &cpusetnew)) -+ { -+ cpus++; -+ CPU_SET (gomp_cpu_affinity[idx], &cpusetnew); -+ } -+ gomp_cpu_affinity[widx++] = gomp_cpu_affinity[idx]; -+ } -+ -+ if (widx == 0) -+ { -+ gomp_error ("no CPUs left for affinity setting"); -+ free (gomp_cpu_affinity); -+ gomp_cpu_affinity = NULL; -+ gomp_cpu_affinity_len = 0; -+ return; -+ } -+ -+ gomp_cpu_affinity_len = widx; -+ if (cpus < gomp_available_cpus) -+ gomp_available_cpus = cpus; -+ CPU_ZERO (&cpuset); -+ CPU_SET (gomp_cpu_affinity[0], &cpuset); -+ pthread_setaffinity_np (pthread_self (), sizeof (cpuset), &cpuset); -+ affinity_counter = 1; -+} -+ -+void -+gomp_init_thread_affinity (pthread_attr_t *attr) -+{ -+ unsigned int cpu; -+ cpuset_t cpuset; -+ -+ cpu = __atomic_fetch_add (&affinity_counter, 1, MEMMODEL_RELAXED); -+ cpu %= gomp_cpu_affinity_len; -+ CPU_ZERO (&cpuset); -+ CPU_SET (gomp_cpu_affinity[cpu], &cpuset); -+ pthread_attr_setaffinity_np (attr, sizeof (cpuset_t), &cpuset); -+} diff --git a/lang/gcc48/files/patch-libgomp-posix-affinity b/lang/gcc48/files/patch-libgomp-posix-affinity deleted file mode 100644 index c4ab742f061b..000000000000 --- a/lang/gcc48/files/patch-libgomp-posix-affinity +++ /dev/null @@ -1,18 +0,0 @@ ---- libgomp/config/posix/affinity.c.orig 2015-04-26 05:29:27.925344000 -0700 -+++ libgomp/config/posix/affinity.c 2015-04-26 05:29:44.449277000 -0700 -@@ -26,6 +26,10 @@ - - #include "libgomp.h" - -+#ifdef __FreeBSD__ -+#include "../bsd/freebsd_affinity.c" -+#else -+ - void - gomp_init_affinity (void) - { -@@ -36,3 +40,4 @@ - { - (void) attr; - } -+#endif |