commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r7712 - gnuradio/branches/developers/eb/gcell-multi-q/


From: eb
Subject: [Commit-gnuradio] r7712 - gnuradio/branches/developers/eb/gcell-multi-q/src/lib
Date: Fri, 15 Feb 2008 17:16:52 -0700 (MST)

Author: eb
Date: 2008-02-15 17:16:52 -0700 (Fri, 15 Feb 2008)
New Revision: 7712

Modified:
   gnuradio/branches/developers/eb/gcell-multi-q/src/lib/gc_job_manager_impl.cc
   gnuradio/branches/developers/eb/gcell-multi-q/src/lib/gc_mem_pool.cc
Log:
minor fixes

Modified: 
gnuradio/branches/developers/eb/gcell-multi-q/src/lib/gc_job_manager_impl.cc
===================================================================
--- 
gnuradio/branches/developers/eb/gcell-multi-q/src/lib/gc_job_manager_impl.cc    
    2008-02-16 00:16:19 UTC (rev 7711)
+++ 
gnuradio/branches/developers/eb/gcell-multi-q/src/lib/gc_job_manager_impl.cc    
    2008-02-16 00:16:52 UTC (rev 7712)
@@ -142,7 +142,7 @@
     d_options.max_client_threads = DEFAULT_MAX_CLIENT_THREADS;
 
   d_numa_avail = numa_available() != -1;
-  fprintf(stderr,"numa_avail = %d\n", d_numa_avail);
+  // fprintf(stderr,"numa_avail = %d\n", d_numa_avail);
 
   int ncpu_nodes = spe_cpu_info_get(SPE_COUNT_PHYSICAL_CPU_NODES, -1);
   int nusable_spes = spe_cpu_info_get(SPE_COUNT_USABLE_SPES, -1);
@@ -242,7 +242,7 @@
       d_queue2node[i] = i;
 
     // split spes between nodes
-    unsigned int nspes_per_node = d_options.nspes / d_nnodes;
+    unsigned int nspes_per_node = (d_options.nspes + d_nnodes - 1) / d_nnodes;
     for (unsigned int i = 0; i < d_options.nspes; i++){
       d_spe2node[i]  = i / nspes_per_node;
       d_spe2queue[i] = i / nspes_per_node;
@@ -317,9 +317,11 @@
     d_worker[i].node = d_spe2node[i];
     d_worker[i].spu_args = &d_spu_args[i];
 
+#if 0
     int qidx = d_spe2queue[i];
     printf("d_worker[%d] qidx = %d\n", i, qidx);
     printf("d_queue[qidx] = %p\n", d_queue[qidx]);
+#endif
 
     d_worker[i].spu_args->queue = ptr_to_ea(d_queue[d_spe2queue[i]]);
     d_worker[i].spu_args->comp_info[0] = ptr_to_ea(&d_comp_info[2*i+0]);

Modified: gnuradio/branches/developers/eb/gcell-multi-q/src/lib/gc_mem_pool.cc
===================================================================
--- gnuradio/branches/developers/eb/gcell-multi-q/src/lib/gc_mem_pool.cc        
2008-02-16 00:16:19 UTC (rev 7711)
+++ gnuradio/branches/developers/eb/gcell-multi-q/src/lib/gc_mem_pool.cc        
2008-02-16 00:16:52 UTC (rev 7712)
@@ -61,13 +61,21 @@
   d_avail = p;
   d_pool_size = pool_size;
 
-  // now mbind it before anybody touches it
+  // mbind it before anybody touches it
 
   unsigned long nodemask = (1UL << node);
-  if (mbind(d_base, d_pool_size, MPOL_BIND, &nodemask, sizeof(nodemask) * 8, 
0) == -1){
-    if (1 || errno != ENOSYS)          // not implemented (on PS3)
+  if (mbind(d_base, d_pool_size, MPOL_BIND,
+           &nodemask, (sizeof(nodemask) * 8) - 1, MPOL_MF_STRICT) == -1){
+    if (errno != ENOSYS)               // not implemented (on PS3)
       perror("gc_mem_pool: mbind");
   }
+
+  // touch it to ensure allocation where we want it
+
+  char *q = (char *) d_base;
+  for (size_t i = 0; i < pool_size; i += page_size)
+    q[i] = 0;
+
 }
 
 void *





reply via email to

[Prev in Thread] Current Thread [Next in Thread]