[Top][All Lists]
[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 *
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r7712 - gnuradio/branches/developers/eb/gcell-multi-q/src/lib,
eb <=