Revision: 55018
http://brlcad.svn.sourceforge.net/brlcad/?rev=55018&view=rev
Author: brlcad
Date: 2013-04-03 05:11:55 +0000 (Wed, 03 Apr 2013)
Log Message:
-----------
pass our cpu number to parallel_set_affinity() since there's no reason to incur
a lookup cost here (we know the number) and it keeps open the possibility of
reassignment later.
Modified Paths:
--------------
brlcad/trunk/src/libbu/affinity.c
brlcad/trunk/src/libbu/parallel.h
Modified: brlcad/trunk/src/libbu/affinity.c
===================================================================
--- brlcad/trunk/src/libbu/affinity.c 2013-04-03 05:10:00 UTC (rev 55017)
+++ brlcad/trunk/src/libbu/affinity.c 2013-04-03 05:11:55 UTC (rev 55018)
@@ -53,7 +53,7 @@
int
-parallel_set_affinity(void)
+parallel_set_affinity(int cpu)
{
#if defined(HAVE_PTHREAD_H) && defined (CPU_ZERO)
@@ -68,7 +68,7 @@
/* Clear CPU set and assign our number */
CPU_ZERO(&set_of_cpus);
- CPU_SET(bu_parallel_id() & bu_avail_cpus(), &set_of_cpus);
+ CPU_SET(cpu & bu_avail_cpus(), &set_of_cpus);
/* set affinity mask of current thread */
ret = pthread_setaffinity_np(pthread_self(), sizeof(set_of_cpus),
&set_of_cpus);
@@ -100,7 +100,7 @@
return -1;
/* put each thread into a separate group */
- apolicy.affinity_tag = bu_parallel_id() % bu_avail_cpus();
+ apolicy.affinity_tag = cpu % bu_avail_cpus();
ret = thread_policy_set(curr_thread, THREAD_EXTENDED_POLICY,
(thread_policy_t) &apolicy, THREAD_EXTENDED_POLICY_COUNT);
if (ret != KERN_SUCCESS)
return -1;
@@ -109,7 +109,7 @@
#elif defined(HAVE_WINDOWS_H)
- BOOL ret = SetThreadAffinityMask(GetCurrentThread(), 1 << bu_parallel_id()
% bu_avail_cpus());
+ BOOL ret = SetThreadAffinityMask(GetCurrentThread(), 1 << cpu %
bu_avail_cpus());
if (ret == 0)
return -1;
Modified: brlcad/trunk/src/libbu/parallel.h
===================================================================
--- brlcad/trunk/src/libbu/parallel.h 2013-04-03 05:10:00 UTC (rev 55017)
+++ brlcad/trunk/src/libbu/parallel.h 2013-04-03 05:11:55 UTC (rev 55018)
@@ -30,7 +30,7 @@
* -1 on Failure
*
*/
-extern int parallel_set_affinity(void);
+extern int parallel_set_affinity(int cpu);
extern void thread_set_cpu(int cpu);
extern int thread_get_cpu(void);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire
the most talented Cisco Certified professionals. Visit the
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits