Changeset 560


Ignore:
Timestamp:
Sep 21, 2018, 10:26:33 PM (6 years ago)
Author:
nicolas.van.phan@…
Message:

Remove y_max in kernel init barriers

Location:
trunk/kernel/kern
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/kernel/kern/cluster_info.c

    r557 r560  
    2424#include <cluster_info.h>
    2525
    26 int cluster_info_is_active( uint16_t cluster_info )
     26int cluster_info_is_active( uint32_t cluster_info )
    2727{
    2828    return (cluster_info & CINFO_ACTIVE);
    2929}
    3030
     31int 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
    3145/*
    32 int cluster_info_cluster_ok( uint16_t cluster_info )
     46int cluster_info_cluster_ok( uint32_t cluster_info )
    3347{
    3448    if ((cluster_info & CINFO_ACTIVE) &&  // If the cluster is not empty
     
    4559}
    4660
    47 int cluster_info_core_ok( uint16_t cluster_info, int n)
     61int cluster_info_core_ok( uint32_t cluster_info, int n)
    4862{
    4963    if ( n < 0 || n >= NB_TOTAL_PROCS )
  • trunk/kernel/kern/cluster_info.h

    r557 r560  
    6565 * @ return -1 if error, =0 if the cluster is empty or 1 if the cluster has at least 1 core
    6666 *****************************************************************************************/
    67 int cluster_info_is_active( uint16_t cluster_info );
     67int 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 *****************************************************************************************/
     75int cluster_info_nb_actives( uint32_t cluster_info[CONFIG_MAX_CLUSTERS_X][CONFIG_MAX_CLUSTERS_Y] );
    6876
    6977/******************************************************************************************
  • trunk/kernel/kern/kernel_init.c

    r559 r560  
    993993        }
    994994    }
    995     // [FIXME]
    996995
    997996    /////////////////////////////////////////////////////////////////////////////////
    998997    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) );
    1000999    barrier_wait( &local_barrier , info->cores_nr );
    10011000    /////////////////////////////////////////////////////////////////////////////////
     
    10351034    /////////////////////////////////////////////////////////////////////////////////
    10361035    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) );
    10381037    barrier_wait( &local_barrier , info->cores_nr );
    10391038    /////////////////////////////////////////////////////////////////////////////////
     
    10621061    ////////////////////////////////////////////////////////////////////////////////
    10631062    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) );
    10651064    barrier_wait( &local_barrier , info->cores_nr );
    10661065    ////////////////////////////////////////////////////////////////////////////////
     
    10951094    /////////////////////////////////////////////////////////////////////////////////
    10961095    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) );
    10981097    barrier_wait( &local_barrier , info->cores_nr );
    10991098    /////////////////////////////////////////////////////////////////////////////////
     
    12051204    /////////////////////////////////////////////////////////////////////////////////
    12061205    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) );
    12081207    barrier_wait( &local_barrier , info->cores_nr );
    12091208    /////////////////////////////////////////////////////////////////////////////////
     
    12661265    /////////////////////////////////////////////////////////////////////////////////
    12671266    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) );
    12691268    barrier_wait( &local_barrier , info->cores_nr );
    12701269    /////////////////////////////////////////////////////////////////////////////////
     
    13011300    /////////////////////////////////////////////////////////////////////////////////
    13021301    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) );
    13041303    barrier_wait( &local_barrier , info->cores_nr );
    13051304    /////////////////////////////////////////////////////////////////////////////////
     
    13381337    /////////////////////////////////////////////////////////////////////////////////
    13391338    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) );
    13411340    barrier_wait( &local_barrier , info->cores_nr );
    13421341    /////////////////////////////////////////////////////////////////////////////////
     
    13641363    /////////////////////////////////////////////////////////////////////////////////
    13651364    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) );
    13671366    barrier_wait( &local_barrier , info->cores_nr );
    13681367    /////////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.