Changeset 560
- Timestamp:
- Sep 21, 2018, 10:26:33 PM (6 years ago)
- Location:
- trunk/kernel/kern
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/kern/cluster_info.c
r557 r560 24 24 #include <cluster_info.h> 25 25 26 int cluster_info_is_active( uint 16_t cluster_info )26 int cluster_info_is_active( uint32_t cluster_info ) 27 27 { 28 28 return (cluster_info & CINFO_ACTIVE); 29 29 } 30 30 31 int cluster_info_nb_actives( uint32_t cluster_info[CONFIG_MAX_CLUSTERS_X][CONFIG_MAX_CLUSTERS_Y] ) 32 { 33 int n = 0; 34 int x, y; 35 for (y = 0; y < CONFIG_MAX_CLUSTERS_Y; y++) { 36 for (x = 0; x < CONFIG_MAX_CLUSTERS_X; x++) { 37 if (cluster_info[x][y] & CINFO_ACTIVE) { 38 n += 1; 39 } 40 } 41 } 42 return n; 43 } 44 31 45 /* 32 int cluster_info_cluster_ok( uint 16_t cluster_info )46 int cluster_info_cluster_ok( uint32_t cluster_info ) 33 47 { 34 48 if ((cluster_info & CINFO_ACTIVE) && // If the cluster is not empty … … 45 59 } 46 60 47 int cluster_info_core_ok( uint 16_t cluster_info, int n)61 int cluster_info_core_ok( uint32_t cluster_info, int n) 48 62 { 49 63 if ( n < 0 || n >= NB_TOTAL_PROCS ) -
trunk/kernel/kern/cluster_info.h
r557 r560 65 65 * @ return -1 if error, =0 if the cluster is empty or 1 if the cluster has at least 1 core 66 66 *****************************************************************************************/ 67 int cluster_info_is_active( uint16_t cluster_info ); 67 int cluster_info_is_active( uint32_t cluster_info ); 68 69 /****************************************************************************************** 70 * This function gives the total number of active clusters (those who have cores, RAM...) 71 ****************************************************************************************** 72 * @ cluster_info : The cluster_info[] entry corresponding to the target cluster 73 * @ return the number of active clusters 74 *****************************************************************************************/ 75 int cluster_info_nb_actives( uint32_t cluster_info[CONFIG_MAX_CLUSTERS_X][CONFIG_MAX_CLUSTERS_Y] ); 68 76 69 77 /****************************************************************************************** -
trunk/kernel/kern/kernel_init.c
r559 r560 993 993 } 994 994 } 995 // [FIXME]996 995 997 996 ///////////////////////////////////////////////////////////////////////////////// 998 997 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 999 (info->x_size * (info->y_max)) );998 cluster_info_nb_actives(info->cluster_info) ); 1000 999 barrier_wait( &local_barrier , info->cores_nr ); 1001 1000 ///////////////////////////////////////////////////////////////////////////////// … … 1035 1034 ///////////////////////////////////////////////////////////////////////////////// 1036 1035 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1037 (info->x_size * (info->y_max)) );1036 cluster_info_nb_actives(info->cluster_info) ); 1038 1037 barrier_wait( &local_barrier , info->cores_nr ); 1039 1038 ///////////////////////////////////////////////////////////////////////////////// … … 1062 1061 //////////////////////////////////////////////////////////////////////////////// 1063 1062 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1064 (info->x_size * (info->y_max)) );1063 cluster_info_nb_actives(info->cluster_info) ); 1065 1064 barrier_wait( &local_barrier , info->cores_nr ); 1066 1065 //////////////////////////////////////////////////////////////////////////////// … … 1095 1094 ///////////////////////////////////////////////////////////////////////////////// 1096 1095 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1097 (info->x_size * (info->y_max)) );1096 cluster_info_nb_actives(info->cluster_info) ); 1098 1097 barrier_wait( &local_barrier , info->cores_nr ); 1099 1098 ///////////////////////////////////////////////////////////////////////////////// … … 1205 1204 ///////////////////////////////////////////////////////////////////////////////// 1206 1205 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1207 (info->x_size * (info->y_max)) );1206 cluster_info_nb_actives(info->cluster_info) ); 1208 1207 barrier_wait( &local_barrier , info->cores_nr ); 1209 1208 ///////////////////////////////////////////////////////////////////////////////// … … 1266 1265 ///////////////////////////////////////////////////////////////////////////////// 1267 1266 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1268 (info->x_size * (info->y_max)) );1267 cluster_info_nb_actives(info->cluster_info) ); 1269 1268 barrier_wait( &local_barrier , info->cores_nr ); 1270 1269 ///////////////////////////////////////////////////////////////////////////////// … … 1301 1300 ///////////////////////////////////////////////////////////////////////////////// 1302 1301 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1303 (info->x_size * (info->y_max)) );1302 cluster_info_nb_actives(info->cluster_info) ); 1304 1303 barrier_wait( &local_barrier , info->cores_nr ); 1305 1304 ///////////////////////////////////////////////////////////////////////////////// … … 1338 1337 ///////////////////////////////////////////////////////////////////////////////// 1339 1338 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1340 (info->x_size * (info->y_max)) );1339 cluster_info_nb_actives(info->cluster_info) ); 1341 1340 barrier_wait( &local_barrier , info->cores_nr ); 1342 1341 ///////////////////////////////////////////////////////////////////////////////// … … 1364 1363 ///////////////////////////////////////////////////////////////////////////////// 1365 1364 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1366 (info->x_size * (info->y_max)) );1365 cluster_info_nb_actives(info->cluster_info) ); 1367 1366 barrier_wait( &local_barrier , info->cores_nr ); 1368 1367 /////////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset
for help on using the changeset viewer.