@@ -455,11 +455,15 @@ static void *alloc_mmap(void *address){
455
455
}
456
456
457
457
if (map_address != (void * )-1 ) {
458
+ #if defined(SMP ) && !defined(USE_OPENMP )
458
459
LOCK_COMMAND (& alloc_lock );
460
+ #endif
459
461
release_info [release_pos ].address = map_address ;
460
462
release_info [release_pos ].func = alloc_mmap_free ;
461
463
release_pos ++ ;
464
+ #if defined(SMP ) && !defined(USE_OPENMP )
462
465
UNLOCK_COMMAND (& alloc_lock );
466
+ #endif
463
467
}
464
468
465
469
#ifdef OS_LINUX
@@ -601,14 +605,18 @@ static void *alloc_mmap(void *address){
601
605
#if defined(OS_LINUX ) && !defined(NO_WARMUP )
602
606
}
603
607
#endif
604
- LOCK_COMMAND (& alloc_lock );
605
608
606
609
if (map_address != (void * )-1 ) {
610
+ #if defined(SMP ) && !defined(USE_OPENMP )
611
+ LOCK_COMMAND (& alloc_lock );
612
+ #endif
607
613
release_info [release_pos ].address = map_address ;
608
614
release_info [release_pos ].func = alloc_mmap_free ;
609
615
release_pos ++ ;
616
+ #if defined(SMP ) && !defined(USE_OPENMP )
617
+ UNLOCK_COMMAND (& alloc_lock );
618
+ #endif
610
619
}
611
- UNLOCK_COMMAND (& alloc_lock );
612
620
613
621
return map_address ;
614
622
}
@@ -1007,6 +1015,11 @@ void *blas_memory_alloc(int procpos){
1007
1015
NULL ,
1008
1016
};
1009
1017
void * (* * func )(void * address );
1018
+
1019
+ #if defined(USE_OPENMP )
1020
+ if (!memory_initialized ) {
1021
+ #endif
1022
+
1010
1023
LOCK_COMMAND (& alloc_lock );
1011
1024
1012
1025
if (!memory_initialized ) {
@@ -1042,6 +1055,9 @@ void *blas_memory_alloc(int procpos){
1042
1055
1043
1056
}
1044
1057
UNLOCK_COMMAND (& alloc_lock );
1058
+ #if defined(USE_OPENMP )
1059
+ }
1060
+ #endif
1045
1061
1046
1062
#ifdef DEBUG
1047
1063
printf ("Alloc Start ...\n" );
@@ -1056,13 +1072,17 @@ void *blas_memory_alloc(int procpos){
1056
1072
1057
1073
do {
1058
1074
if (!memory [position ].used && (memory [position ].pos == mypos )) {
1075
+ #if defined(SMP ) && !defined(USE_OPENMP )
1059
1076
LOCK_COMMAND (& alloc_lock );
1060
- /* blas_lock(&memory[position].lock);*/
1061
-
1077
+ #else
1078
+ blas_lock (& memory [position ].lock );
1079
+ #endif
1062
1080
if (!memory [position ].used ) goto allocation ;
1063
-
1081
+ #if defined( SMP ) && !defined( USE_OPENMP )
1064
1082
UNLOCK_COMMAND (& alloc_lock );
1065
- /* blas_unlock(&memory[position].lock);*/
1083
+ #else
1084
+ blas_unlock (& memory [position ].lock );
1085
+ #endif
1066
1086
}
1067
1087
1068
1088
position ++ ;
@@ -1075,15 +1095,19 @@ void *blas_memory_alloc(int procpos){
1075
1095
position = 0 ;
1076
1096
1077
1097
do {
1078
- /* if (!memory[position].used) { */
1098
+ # if defined( SMP ) && !defined( USE_OPENMP )
1079
1099
LOCK_COMMAND (& alloc_lock );
1080
- /* blas_lock(&memory[position].lock);*/
1081
-
1100
+ #else
1101
+ if (!memory [position ].used ) {
1102
+ blas_lock (& memory [position ].lock );
1103
+ #endif
1082
1104
if (!memory [position ].used ) goto allocation ;
1083
-
1105
+ #if defined( SMP ) && !defined( USE_OPENMP )
1084
1106
UNLOCK_COMMAND (& alloc_lock );
1085
- /* blas_unlock(&memory[position].lock);*/
1086
- /* } */
1107
+ #else
1108
+ blas_unlock (& memory [position ].lock );
1109
+ }
1110
+ #endif
1087
1111
1088
1112
position ++ ;
1089
1113
@@ -1098,9 +1122,11 @@ void *blas_memory_alloc(int procpos){
1098
1122
#endif
1099
1123
1100
1124
memory [position ].used = 1 ;
1101
-
1125
+ #if defined( SMP ) && !defined( USE_OPENMP )
1102
1126
UNLOCK_COMMAND (& alloc_lock );
1103
- /* blas_unlock(&memory[position].lock);*/
1127
+ #else
1128
+ blas_unlock (& memory [position ].lock );
1129
+ #endif
1104
1130
1105
1131
if (!memory [position ].addr ) {
1106
1132
do {
@@ -1146,9 +1172,13 @@ void *blas_memory_alloc(int procpos){
1146
1172
1147
1173
} while ((BLASLONG )map_address == -1 );
1148
1174
1175
+ #if defined(SMP ) && !defined(USE_OPENMP )
1149
1176
LOCK_COMMAND (& alloc_lock );
1177
+ #endif
1150
1178
memory [position ].addr = map_address ;
1179
+ #if defined(SMP ) && !defined(USE_OPENMP )
1151
1180
UNLOCK_COMMAND (& alloc_lock );
1181
+ #endif
1152
1182
1153
1183
#ifdef DEBUG
1154
1184
printf (" Mapping Succeeded. %p(%d)\n" , (void * )memory [position ].addr , position );
@@ -1202,8 +1232,9 @@ void blas_memory_free(void *free_area){
1202
1232
#endif
1203
1233
1204
1234
position = 0 ;
1235
+ #if defined(SMP ) && !defined(USE_OPENMP )
1205
1236
LOCK_COMMAND (& alloc_lock );
1206
-
1237
+ #endif
1207
1238
while ((position < NUM_BUFFERS ) && (memory [position ].addr != free_area ))
1208
1239
position ++ ;
1209
1240
@@ -1217,7 +1248,9 @@ void blas_memory_free(void *free_area){
1217
1248
WMB ;
1218
1249
1219
1250
memory [position ].used = 0 ;
1251
+ #if defined(SMP ) && !defined(USE_OPENMP )
1220
1252
UNLOCK_COMMAND (& alloc_lock );
1253
+ #endif
1221
1254
1222
1255
#ifdef DEBUG
1223
1256
printf ("Unmap Succeeded.\n\n" );
@@ -1232,8 +1265,9 @@ void blas_memory_free(void *free_area){
1232
1265
for (position = 0 ; position < NUM_BUFFERS ; position ++ )
1233
1266
printf ("%4ld %p : %d\n" , position , memory [position ].addr , memory [position ].used );
1234
1267
#endif
1268
+ #if defined(SMP ) && !defined(USE_OPENMP )
1235
1269
UNLOCK_COMMAND (& alloc_lock );
1236
-
1270
+ #endif
1237
1271
return ;
1238
1272
}
1239
1273
0 commit comments