|
@@ -20,22 +20,24 @@
|
|
|
#include <datawizard/footprint.h>
|
|
|
#include <starpu.h>
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-static starpu_pthread_rwlock_t mc_rwlock[STARPU_MAXNODES];
|
|
|
-
|
|
|
|
|
|
static struct _starpu_spinlock lru_rwlock[STARPU_MAXNODES];
|
|
|
|
|
|
|
|
|
static struct _starpu_mem_chunk_lru_list *starpu_lru_list[STARPU_MAXNODES];
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+static starpu_pthread_rwlock_t mc_rwlock[STARPU_MAXNODES];
|
|
|
+
|
|
|
|
|
|
static struct _starpu_mem_chunk_list *mc_list[STARPU_MAXNODES];
|
|
|
|
|
|
|
|
|
static struct _starpu_mem_chunk_list *memchunk_cache[STARPU_MAXNODES];
|
|
|
|
|
|
+
|
|
|
|
|
|
const unsigned starpu_memstrategy_data_size_coefficient=2;
|
|
|
|
|
@@ -763,8 +765,12 @@ void _starpu_request_mem_chunk_removal(starpu_data_handle_t handle, struct _star
|
|
|
_starpu_mem_chunk_delete(mc);
|
|
|
}
|
|
|
else
|
|
|
+ {
|
|
|
|
|
|
+ STARPU_PTHREAD_RWLOCK_WRLOCK(&mc_rwlock[node]);
|
|
|
_starpu_mem_chunk_list_push_front(memchunk_cache[node], mc);
|
|
|
+ STARPU_PTHREAD_RWLOCK_UNLOCK(&mc_rwlock[node]);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|