Ignore:
Timestamp:
Aug 11, 2014, 9:19:06 PM (10 years ago)
Author:
alain
Message:

Idle task stack implementation. The idle stack was previously implemented in the
seg_kernel data, and this was a scalabity bottleneck. i
A 4 Kbytes stack for idle stack is now implemented in the processor scheduler segment.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_kernel/ctx_handler.c

    r330 r391  
    103103void _idle_task()
    104104{
     105    unsigned int gpid       = _get_procid();
     106    unsigned int cluster_xy = gpid / NB_PROCS_MAX;
     107    unsigned int lpid       = gpid % NB_PROCS_MAX;
     108    unsigned int x          = cluster_xy >> Y_WIDTH;
     109    unsigned int y          = cluster_xy & ((1<<Y_WIDTH)-1);
     110
    105111    while(1)
    106112    {
     113        // initialize counter
    107114        unsigned int count = GIET_IDLE_TASK_PERIOD;
    108115
     
    119126
    120127        // warning message
    121         unsigned int gpid       = _get_procid();
    122         unsigned int cluster_xy = gpid / NB_PROCS_MAX;
    123         unsigned int lpid       = gpid % NB_PROCS_MAX;
    124         unsigned int x          = cluster_xy >> Y_WIDTH;
    125         unsigned int y          = cluster_xy & ((1<<Y_WIDTH)-1);
    126 
    127128        _printf("\n[GIET WARNING] Processor[%d,%d,%d] still idle at cycle %d\n",
    128129                x, y, lpid, _get_proctime() );
    129 
    130130    }
    131131} // end ctx_idle()
Note: See TracChangeset for help on using the changeset viewer.