|
@@ -60,9 +60,15 @@ int starpu_disk_register(struct starpu_disk_ops *func, void *parameter, starpu_s
|
|
|
/* register disk */
|
|
|
unsigned memory_node = _starpu_memory_node_register(STARPU_DISK_RAM, 0);
|
|
|
|
|
|
- /* TODO: all NUMA nodes actually... */
|
|
|
- _starpu_register_bus(STARPU_MAIN_RAM, memory_node);
|
|
|
- _starpu_register_bus(memory_node, STARPU_MAIN_RAM);
|
|
|
+ /* Connect the disk memory node to all numa memory nodes */
|
|
|
+ int nb_numa_nodes = _starpu_get_nb_numa_nodes();
|
|
|
+ int numa_node;
|
|
|
+ for (numa_node = 0; numa_node < nb_numa_nodes; numa_node++)
|
|
|
+ {
|
|
|
+ int numa_memnode = _starpu_numalogid_to_memnode(numa_node);
|
|
|
+ _starpu_register_bus(STARPU_MAIN_RAM, numa_memnode);
|
|
|
+ _starpu_register_bus(numa_memnode, STARPU_MAIN_RAM);
|
|
|
+ }
|
|
|
|
|
|
/* connect disk */
|
|
|
void *base = func->plug(parameter, size);
|