|
|
@@ -568,10 +568,11 @@ struct _starpu_data_request *_starpu_create_request_to_fetch_data(starpu_data_ha
|
|
|
/* if the data is in write only mode (and not SCRATCH or REDUX), there is no need for a source, data will be initialized by the task itself */
|
|
|
if (mode & STARPU_W)
|
|
|
dst_replicate->initialized = 1;
|
|
|
- if (starpu_node_get_kind(requesting_node) == STARPU_CPU_RAM && !nwait)
|
|
|
+ if (starpu_node_get_kind(requesting_node) == STARPU_CPU_RAM && !nwait
|
|
|
+ && !_starpu_malloc_willpin_on_node(requesting_node))
|
|
|
{
|
|
|
- /* And this is the main RAM, really no need for a
|
|
|
- * request, just allocate */
|
|
|
+ /* And this is the main RAM without pinning, really no need for a
|
|
|
+ * request, just quickly allocate and be done */
|
|
|
if (_starpu_allocate_memory_on_node(handle, dst_replicate, is_prefetch) == 0)
|
|
|
{
|
|
|
_starpu_update_data_state(handle, dst_replicate, mode);
|