Changeset 27783f6 in rtems


Ignore:
Timestamp:
07/10/14 12:27:42 (9 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, 5, master
Children:
f0c8501
Parents:
333f942
git-author:
Sebastian Huber <sebastian.huber@…> (07/10/14 12:27:42)
git-committer:
Sebastian Huber <sebastian.huber@…> (07/10/14 13:29:57)
Message:

score: Fix scheduler helping implementation

Do not extract the idle threads from the ready set so that there is
always a thread available for comparison.

Files:
8 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/include/rtems/score/schedulerprioritysmpimpl.h

    r333f942 r27783f6  
    149149}
    150150
    151 static inline Thread_Control *_Scheduler_priority_SMP_Get_idle_thread(
    152   Scheduler_Context *context
    153 )
    154 {
    155   return _Scheduler_SMP_Get_idle_thread(
    156     context,
    157     _Scheduler_priority_SMP_Extract_from_ready
    158   );
    159 }
    160 
    161 static void _Scheduler_priority_SMP_Release_idle_thread(
    162   Scheduler_Context *context,
    163   Thread_Control    *idle
    164 )
    165 {
    166   _Scheduler_SMP_Release_idle_thread(
    167     context,
    168     idle,
    169     _Scheduler_priority_SMP_Insert_ready_fifo
    170   );
    171 }
    172 
    173151static inline void _Scheduler_priority_SMP_Do_update(
    174152  Scheduler_Context *context,
  • cpukit/score/include/rtems/score/schedulersmp.h

    r333f942 r27783f6  
    5555  /**
    5656   * @brief Chain of the available idle threads.
     57   *
     58   * Idle threads are used for the scheduler helping protocol.  It is crucial
     59   * that the idle threads preserve their relative order.  This is the case for
     60   * this priority based scheduler.
    5761   */
    5862  Chain_Control Idle_threads;
  • cpukit/score/include/rtems/score/schedulersmpimpl.h

    r333f942 r27783f6  
    426426
    427427static inline Thread_Control *_Scheduler_SMP_Get_idle_thread(
    428   Scheduler_Context     *context,
    429   Scheduler_SMP_Extract  extract_from_ready
     428  Scheduler_Context *context
    430429)
    431430{
     
    433432  Thread_Control *idle = (Thread_Control *)
    434433    _Chain_Get_first_unprotected( &self->Idle_threads );
    435   Scheduler_Node *own_node = _Scheduler_Thread_get_own_node( idle );
    436 
    437   ( *extract_from_ready )( &self->Base, own_node );
    438434
    439435  _Assert( &idle->Object.Node != _Chain_Tail( &self->Idle_threads ) );
     
    443439
    444440static inline void _Scheduler_SMP_Release_idle_thread(
    445   Scheduler_Context    *context,
    446   Thread_Control       *idle,
    447   Scheduler_SMP_Insert  insert_ready
     441  Scheduler_Context *context,
     442  Thread_Control    *idle
    448443)
    449444{
    450445  Scheduler_SMP_Context *self = _Scheduler_SMP_Get_self( context );
    451   Scheduler_Node *own_node = _Scheduler_Thread_get_own_node( idle );
    452446
    453447  _Chain_Prepend_unprotected( &self->Idle_threads, &idle->Object.Node );
    454   ( *insert_ready )( context, own_node );
    455448}
    456449
     
    537530  Scheduler_SMP_Insert              insert_scheduled,
    538531  Scheduler_SMP_Move                move_from_scheduled_to_ready,
    539   Scheduler_SMP_Allocate_processor  allocate_processor,
    540   Scheduler_Release_idle_thread     release_idle_thread
     532  Scheduler_SMP_Allocate_processor  allocate_processor
    541533)
    542534{
     
    571563    context,
    572564    lowest_scheduled,
    573     release_idle_thread
     565    _Scheduler_SMP_Release_idle_thread
    574566  );
    575567  if ( idle == NULL ) {
     
    604596 * @param[in] allocate_processor Function to allocate a processor to a node
    605597 *   based on the rules of the scheduler.
    606  * @param[in] release_idle_thread Function to release an idle thread.
    607598 */
    608599static inline Thread_Control *_Scheduler_SMP_Enqueue_ordered(
     
    615606  Scheduler_SMP_Move                  move_from_scheduled_to_ready,
    616607  Scheduler_SMP_Get_lowest_scheduled  get_lowest_scheduled,
    617   Scheduler_SMP_Allocate_processor    allocate_processor,
    618   Scheduler_Release_idle_thread       release_idle_thread
     608  Scheduler_SMP_Allocate_processor    allocate_processor
    619609)
    620610{
     
    629619      insert_scheduled,
    630620      move_from_scheduled_to_ready,
    631       allocate_processor,
    632       release_idle_thread
     621      allocate_processor
    633622    );
    634623  } else {
     
    657646 * @param[in] allocate_processor Function to allocate a processor to a node
    658647 *   based on the rules of the scheduler.
    659  * @param[in] get_idle_thread Function to get an idle thread.
    660  * @param[in] release_idle_thread Function to release an idle thread.
    661648 */
    662649static inline Thread_Control *_Scheduler_SMP_Enqueue_scheduled_ordered(
     
    669656  Scheduler_SMP_Insert              insert_scheduled,
    670657  Scheduler_SMP_Move                move_from_ready_to_scheduled,
    671   Scheduler_SMP_Allocate_processor  allocate_processor,
    672   Scheduler_Get_idle_thread         get_idle_thread,
    673   Scheduler_Release_idle_thread     release_idle_thread
     658  Scheduler_SMP_Allocate_processor  allocate_processor
    674659)
    675660{
     
    693678        context,
    694679        highest_ready,
    695         get_idle_thread
     680        _Scheduler_SMP_Get_idle_thread
    696681      )
    697682    ) {
     
    718703        context,
    719704        node,
    720         release_idle_thread
     705        _Scheduler_SMP_Release_idle_thread
    721706      );
    722707      if ( idle == NULL ) {
     
    753738  Scheduler_SMP_Get_highest_ready   get_highest_ready,
    754739  Scheduler_SMP_Move                move_from_ready_to_scheduled,
    755   Scheduler_SMP_Allocate_processor  allocate_processor,
    756   Scheduler_Get_idle_thread         get_idle_thread
     740  Scheduler_SMP_Allocate_processor  allocate_processor
    757741)
    758742{
     
    764748        context,
    765749        highest_ready,
    766         get_idle_thread
     750        _Scheduler_SMP_Get_idle_thread
    767751      )
    768752    ) {
     
    798782 * @param[in] move_from_ready_to_scheduled Function to move a node from the set
    799783 *   of ready nodes to the set of scheduled nodes.
    800  * @param[in] get_idle_thread Function to get an idle thread.
    801784 */
    802785static inline void _Scheduler_SMP_Block(
     
    806789  Scheduler_SMP_Get_highest_ready   get_highest_ready,
    807790  Scheduler_SMP_Move                move_from_ready_to_scheduled,
    808   Scheduler_SMP_Allocate_processor  allocate_processor,
    809   Scheduler_Get_idle_thread         get_idle_thread
     791  Scheduler_SMP_Allocate_processor  allocate_processor
    810792)
    811793{
     
    816798    &node->Base,
    817799    is_scheduled,
    818     get_idle_thread
     800    _Scheduler_SMP_Get_idle_thread
    819801  );
    820802
     
    831813        get_highest_ready,
    832814        move_from_ready_to_scheduled,
    833         allocate_processor,
    834         get_idle_thread
     815        allocate_processor
    835816      );
    836817    } else {
     
    843824  Scheduler_Context             *context,
    844825  Thread_Control                *thread,
    845   Scheduler_SMP_Enqueue          enqueue_fifo,
    846   Scheduler_Release_idle_thread  release_idle_thread
     826  Scheduler_SMP_Enqueue          enqueue_fifo
    847827)
    848828{
     
    854834    &node->Base,
    855835    is_scheduled,
    856     release_idle_thread
     836    _Scheduler_SMP_Release_idle_thread
    857837  );
    858838  Thread_Control *needs_help;
     
    918898  Thread_Control                     *offers_help,
    919899  Thread_Control                     *needs_help,
    920   Scheduler_SMP_Enqueue               enqueue_fifo,
    921   Scheduler_Release_idle_thread       release_idle_thread
     900  Scheduler_SMP_Enqueue               enqueue_fifo
    922901)
    923902{
     
    941920        needs_help,
    942921        previous_accepts_help,
    943         release_idle_thread
     922        _Scheduler_SMP_Release_idle_thread
    944923      );
    945924      break;
  • cpukit/score/src/schedulerpriorityaffinitysmp.c

    r333f942 r27783f6  
    232232    _Scheduler_priority_affinity_SMP_Get_highest_ready,
    233233    _Scheduler_priority_SMP_Move_from_ready_to_scheduled,
    234     _Scheduler_SMP_Allocate_processor_exact,
    235     _Scheduler_priority_SMP_Get_idle_thread
     234    _Scheduler_SMP_Allocate_processor_exact
    236235  );
    237236
     
    315314    _Scheduler_priority_SMP_Move_from_scheduled_to_ready,
    316315    _Scheduler_priority_affinity_SMP_Get_lowest_scheduled,
    317     _Scheduler_SMP_Allocate_processor_exact,
    318     _Scheduler_priority_SMP_Release_idle_thread
     316    _Scheduler_SMP_Allocate_processor_exact
    319317  );
    320318}
     
    400398    context,
    401399    thread,
    402     _Scheduler_priority_affinity_SMP_Enqueue_fifo,
    403     _Scheduler_priority_SMP_Release_idle_thread
     400    _Scheduler_priority_affinity_SMP_Enqueue_fifo
    404401  );
    405402
     
    434431    _Scheduler_priority_SMP_Move_from_scheduled_to_ready,
    435432    _Scheduler_priority_affinity_SMP_Get_lowest_scheduled,
    436     _Scheduler_SMP_Allocate_processor_exact,
    437     _Scheduler_priority_SMP_Release_idle_thread
     433    _Scheduler_SMP_Allocate_processor_exact
    438434  );
    439435}
     
    483479    insert_scheduled,
    484480    _Scheduler_priority_SMP_Move_from_ready_to_scheduled,
    485     _Scheduler_SMP_Allocate_processor_exact,
    486     _Scheduler_priority_SMP_Get_idle_thread,
    487     _Scheduler_priority_SMP_Release_idle_thread
     481    _Scheduler_SMP_Allocate_processor_exact
    488482  );
    489483}
     
    573567    offers_help,
    574568    needs_help,
    575     _Scheduler_priority_affinity_SMP_Enqueue_fifo,
    576     _Scheduler_priority_SMP_Release_idle_thread
     569    _Scheduler_priority_affinity_SMP_Enqueue_fifo
    577570  );
    578571
  • cpukit/score/src/schedulerprioritysmp.c

    r333f942 r27783f6  
    9494    _Scheduler_priority_SMP_Get_highest_ready,
    9595    _Scheduler_priority_SMP_Move_from_ready_to_scheduled,
    96     _Scheduler_SMP_Allocate_processor_lazy,
    97     _Scheduler_priority_SMP_Get_idle_thread
     96    _Scheduler_SMP_Allocate_processor_lazy
    9897  );
    9998}
     
    117116    _Scheduler_priority_SMP_Move_from_scheduled_to_ready,
    118117    _Scheduler_SMP_Get_lowest_scheduled,
    119     _Scheduler_SMP_Allocate_processor_lazy,
    120     _Scheduler_priority_SMP_Release_idle_thread
     118    _Scheduler_SMP_Allocate_processor_lazy
    121119  );
    122120}
     
    171169    insert_scheduled,
    172170    _Scheduler_priority_SMP_Move_from_ready_to_scheduled,
    173     _Scheduler_SMP_Allocate_processor_lazy,
    174     _Scheduler_priority_SMP_Get_idle_thread,
    175     _Scheduler_priority_SMP_Release_idle_thread
     171    _Scheduler_SMP_Allocate_processor_lazy
    176172  );
    177173}
     
    215211    context,
    216212    thread,
    217     _Scheduler_priority_SMP_Enqueue_fifo,
    218     _Scheduler_priority_SMP_Release_idle_thread
     213    _Scheduler_priority_SMP_Enqueue_fifo
    219214  );
    220215}
     
    255250    offers_help,
    256251    needs_help,
    257     _Scheduler_priority_SMP_Enqueue_fifo,
    258     _Scheduler_priority_SMP_Release_idle_thread
     252    _Scheduler_priority_SMP_Enqueue_fifo
    259253  );
    260254}
  • cpukit/score/src/schedulersimplesmp.c

    r333f942 r27783f6  
    166166}
    167167
    168 static Thread_Control *_Scheduler_simple_SMP_Get_idle_thread(
    169   Scheduler_Context *context
    170 )
    171 {
    172   return _Scheduler_SMP_Get_idle_thread(
    173     context,
    174     _Scheduler_simple_SMP_Extract_from_ready
    175   );
    176 }
    177 
    178 static void _Scheduler_simple_SMP_Release_idle_thread(
    179   Scheduler_Context *context,
    180   Thread_Control    *idle
    181 )
    182 {
    183   _Scheduler_SMP_Release_idle_thread(
    184     context,
    185     idle,
    186     _Scheduler_simple_SMP_Insert_ready_fifo
    187   );
    188 }
    189 
    190168void _Scheduler_simple_SMP_Block(
    191169  const Scheduler_Control *scheduler,
     
    201179    _Scheduler_simple_SMP_Get_highest_ready,
    202180    _Scheduler_simple_SMP_Move_from_ready_to_scheduled,
    203     _Scheduler_SMP_Allocate_processor_lazy,
    204     _Scheduler_simple_SMP_Get_idle_thread
     181    _Scheduler_SMP_Allocate_processor_lazy
    205182  );
    206183}
     
    224201    _Scheduler_simple_SMP_Move_from_scheduled_to_ready,
    225202    _Scheduler_SMP_Get_lowest_scheduled,
    226     _Scheduler_SMP_Allocate_processor_lazy,
    227     _Scheduler_simple_SMP_Release_idle_thread
     203    _Scheduler_SMP_Allocate_processor_lazy
    228204  );
    229205}
     
    278254    insert_scheduled,
    279255    _Scheduler_simple_SMP_Move_from_ready_to_scheduled,
    280     _Scheduler_SMP_Allocate_processor_lazy,
    281     _Scheduler_simple_SMP_Get_idle_thread,
    282     _Scheduler_simple_SMP_Release_idle_thread
     256    _Scheduler_SMP_Allocate_processor_lazy
    283257  );
    284258}
     
    322296    context,
    323297    thread,
    324     _Scheduler_simple_SMP_Enqueue_fifo,
    325     _Scheduler_simple_SMP_Release_idle_thread
     298    _Scheduler_simple_SMP_Enqueue_fifo
    326299  );
    327300}
     
    362335    offers_help,
    363336    needs_help,
    364     _Scheduler_simple_SMP_Enqueue_fifo,
    365     _Scheduler_simple_SMP_Release_idle_thread
     337    _Scheduler_simple_SMP_Enqueue_fifo
    366338  );
    367339}
  • testsuites/smptests/smpmrsp01/init.c

    r333f942 r27783f6  
    901901  rtems_test_assert(rtems_get_current_processor() == 1);
    902902
     903  /*
     904   * With this operation the scheduler instance 0 has now only the main and the
     905   * idle threads in the ready set.
     906   */
     907  sc = rtems_task_suspend(run_task_id);
     908  rtems_test_assert(sc == RTEMS_SUCCESSFUL);
     909
     910  rtems_test_assert(rtems_get_current_processor() == 1);
     911
     912  change_prio(RTEMS_SELF, 1);
     913  change_prio(RTEMS_SELF, 3);
     914
    903915  sc = rtems_semaphore_release(ctx->mrsp_ids[0]);
    904916  rtems_test_assert(sc == RTEMS_SUCCESSFUL);
     917
     918  rtems_test_assert(rtems_get_current_processor() == 0);
    905919
    906920  assert_prio(RTEMS_SELF, 3);
  • testsuites/smptests/smpmrsp01/smpmrsp01.scn

    r333f942 r27783f6  
    2222[1] MAIN -> HELP (prio   2, node HELP)
    2323[1] HELP -> MAIN (prio   2, node HELP)
     24[0] IDLE -> MAIN (prio   3, node MAIN)
    2425[1] MAIN -> HELP (prio   2, node HELP)
    25 [0] IDLE -> MAIN (prio   3, node MAIN)
    2626test MrsP obtain and release
    2727test MrsP load
    2828worker[0]
    29   sleep = 16
    30   timeout = 3420
    31   obtain[0] = 2503
    32   obtain[1] = 1671
    33   obtain[2] = 4446
    34   obtain[3] = 2850
    35   obtain[4] = 5003
    36   obtain[5] = 3793
    37   obtain[6] = 5575
    38   obtain[7] = 4468
    39   obtain[8] = 5326
    40   obtain[9] = 4645
    41   obtain[10] = 4565
    42   obtain[11] = 5082
    43   obtain[12] = 4050
    44   obtain[13] = 5203
    45   obtain[14] = 2945
    46   obtain[15] = 5704
    47   obtain[16] = 1652
    48   obtain[17] = 5870
    49   obtain[18] = 1472
    50   obtain[19] = 4933
    51   obtain[20] = 1136
    52   obtain[21] = 3463
    53   obtain[22] = 1257
    54   obtain[23] = 3230
    55   obtain[24] = 823
    56   obtain[25] = 2860
    57   obtain[26] = 736
    58   obtain[27] = 1270
    59   obtain[28] = 438
    60   obtain[29] = 1273
    61   obtain[30] = 378
    62   obtain[31] = 422
    63   cpu[0] = 116428
    64   cpu[1] = 16133
    65   cpu[2] = 32982
    66   cpu[3] = 32557
     29  sleep = 53
     30  timeout = 3445
     31  obtain[0] = 7240
     32  obtain[1] = 5484
     33  obtain[2] = 12983
     34  obtain[3] = 9453
     35  obtain[4] = 16142
     36  obtain[5] = 12509
     37  obtain[6] = 16471
     38  obtain[7] = 14380
     39  obtain[8] = 16566
     40  obtain[9] = 16192
     41  obtain[10] = 14868
     42  obtain[11] = 18208
     43  obtain[12] = 12505
     44  obtain[13] = 19995
     45  obtain[14] = 11155
     46  obtain[15] = 20684
     47  obtain[16] = 7288
     48  obtain[17] = 22252
     49  obtain[18] = 6476
     50  obtain[19] = 18299
     51  obtain[20] = 5711
     52  obtain[21] = 17063
     53  obtain[22] = 4791
     54  obtain[23] = 14655
     55  obtain[24] = 3452
     56  obtain[25] = 10565
     57  obtain[26] = 2912
     58  obtain[27] = 8142
     59  obtain[28] = 2090
     60  obtain[29] = 5086
     61  obtain[30] = 1145
     62  obtain[31] = 1946
     63  cpu[0] = 378475
     64  cpu[1] = 64814
     65  cpu[2] = 132133
     66  cpu[3] = 138047
    6767worker[1]
    6868  sleep = 1
    69   timeout = 4
    70   obtain[0] = 2
    71   obtain[1] = 0
    72   obtain[2] = 3
    73   obtain[3] = 8
    74   obtain[4] = 10
    75   obtain[5] = 0
    76   obtain[6] = 7
    77   obtain[7] = 0
    78   obtain[8] = 0
    79   obtain[9] = 0
    80   obtain[10] = 11
    81   obtain[11] = 0
    82   obtain[12] = 26
    83   obtain[13] = 14
    84   obtain[14] = 5
    85   obtain[15] = 0
    86   obtain[16] = 0
    87   obtain[17] = 18
    88   obtain[18] = 12
    89   obtain[19] = 0
    90   obtain[20] = 0
    91   obtain[21] = 0
    92   obtain[22] = 0
     69  timeout = 6
     70  obtain[0] = 19
     71  obtain[1] = 8
     72  obtain[2] = 15
     73  obtain[3] = 24
     74  obtain[4] = 20
     75  obtain[5] = 19
     76  obtain[6] = 14
     77  obtain[7] = 40
     78  obtain[8] = 45
     79  obtain[9] = 20
     80  obtain[10] = 0
     81  obtain[11] = 48
     82  obtain[12] = 13
     83  obtain[13] = 57
     84  obtain[14] = 30
     85  obtain[15] = 48
     86  obtain[16] = 36
     87  obtain[17] = 36
     88  obtain[18] = 19
     89  obtain[19] = 20
     90  obtain[20] = 42
     91  obtain[21] = 44
     92  obtain[22] = 23
    9393  obtain[23] = 0
    9494  obtain[24] = 0
    95   obtain[25] = 0
     95  obtain[25] = 26
    9696  obtain[26] = 0
    9797  obtain[27] = 0
     
    100100  obtain[30] = 0
    101101  obtain[31] = 0
    102   cpu[0] = 140
    103   cpu[1] = 24
    104   cpu[2] = 33
    105   cpu[3] = 36
     102  cpu[0] = 650
     103  cpu[1] = 92
     104  cpu[2] = 379
     105  cpu[3] = 212
    106106worker[2]
    107   sleep = 14
    108   timeout = 3513
    109   obtain[0] = 2474
    110   obtain[1] = 1793
    111   obtain[2] = 4551
    112   obtain[3] = 2833
    113   obtain[4] = 5293
    114   obtain[5] = 3681
    115   obtain[6] = 5309
    116   obtain[7] = 4565
    117   obtain[8] = 5270
    118   obtain[9] = 4610
    119   obtain[10] = 4817
    120   obtain[11] = 4760
    121   obtain[12] = 3858
    122   obtain[13] = 5919
    123   obtain[14] = 3172
    124   obtain[15] = 5286
    125   obtain[16] = 1968
    126   obtain[17] = 5800
    127   obtain[18] = 1768
    128   obtain[19] = 4629
    129   obtain[20] = 1446
    130   obtain[21] = 4109
    131   obtain[22] = 1046
    132   obtain[23] = 3119
    133   obtain[24] = 1012
    134   obtain[25] = 2338
    135   obtain[26] = 790
    136   obtain[27] = 1628
    137   obtain[28] = 432
    138   obtain[29] = 1281
    139   obtain[30] = 270
    140   obtain[31] = 418
    141   cpu[0] = 15589
    142   cpu[1] = 121473
    143   cpu[2] = 31797
    144   cpu[3] = 31645
     107  sleep = 51
     108  timeout = 3731
     109  obtain[0] = 7182
     110  obtain[1] = 5663
     111  obtain[2] = 12945
     112  obtain[3] = 9229
     113  obtain[4] = 15592
     114  obtain[5] = 12125
     115  obtain[6] = 16767
     116  obtain[7] = 14480
     117  obtain[8] = 16620
     118  obtain[9] = 16098
     119  obtain[10] = 16409
     120  obtain[11] = 18109
     121  obtain[12] = 12995
     122  obtain[13] = 19452
     123  obtain[14] = 10719
     124  obtain[15] = 20024
     125  obtain[16] = 7769
     126  obtain[17] = 21913
     127  obtain[18] = 6636
     128  obtain[19] = 18524
     129  obtain[20] = 5952
     130  obtain[21] = 16411
     131  obtain[22] = 5228
     132  obtain[23] = 14456
     133  obtain[24] = 4292
     134  obtain[25] = 11143
     135  obtain[26] = 3019
     136  obtain[27] = 8023
     137  obtain[28] = 2006
     138  obtain[29] = 4664
     139  obtain[30] = 1109
     140  obtain[31] = 1976
     141  cpu[0] = 65356
     142  cpu[1] = 381723
     143  cpu[2] = 133444
     144  cpu[3] = 134588
    145145worker[3]
    146146  sleep = 1
    147   timeout = 3
    148   obtain[0] = 4
    149   obtain[1] = 0
    150   obtain[2] = 9
    151   obtain[3] = 0
    152   obtain[4] = 5
    153   obtain[5] = 0
    154   obtain[6] = 0
    155   obtain[7] = 8
    156   obtain[8] = 0
    157   obtain[9] = 10
    158   obtain[10] = 0
    159   obtain[11] = 0
    160   obtain[12] = 0
     147  timeout = 11
     148  obtain[0] = 11
     149  obtain[1] = 6
     150  obtain[2] = 33
     151  obtain[3] = 20
     152  obtain[4] = 10
     153  obtain[5] = 10
     154  obtain[6] = 28
     155  obtain[7] = 18
     156  obtain[8] = 27
     157  obtain[9] = 40
     158  obtain[10] = 33
     159  obtain[11] = 36
     160  obtain[12] = 26
    161161  obtain[13] = 0
    162   obtain[14] = 0
     162  obtain[14] = 15
    163163  obtain[15] = 16
    164164  obtain[16] = 0
    165165  obtain[17] = 18
    166166  obtain[18] = 0
    167   obtain[19] = 0
     167  obtain[19] = 42
    168168  obtain[20] = 0
    169   obtain[21] = 1
     169  obtain[21] = 88
    170170  obtain[22] = 0
    171171  obtain[23] = 24
     
    173173  obtain[25] = 0
    174174  obtain[26] = 0
    175   obtain[27] = 0
     175  obtain[27] = 28
     176  obtain[28] = 0
     177  obtain[29] = 0
     178  obtain[30] = 31
     179  obtain[31] = 0
     180  cpu[0] = 136
     181  cpu[1] = 573
     182  cpu[2] = 291
     183  cpu[3] = 121
     184worker[4]
     185  sleep = 47
     186  timeout = 3278
     187  obtain[0] = 7397
     188  obtain[1] = 5723
     189  obtain[2] = 13399
     190  obtain[3] = 9018
     191  obtain[4] = 16575
     192  obtain[5] = 12731
     193  obtain[6] = 16571
     194  obtain[7] = 14376
     195  obtain[8] = 16786
     196  obtain[9] = 17022
     197  obtain[10] = 15889
     198  obtain[11] = 19338
     199  obtain[12] = 13240
     200  obtain[13] = 19055
     201  obtain[14] = 11533
     202  obtain[15] = 22667
     203  obtain[16] = 7521
     204  obtain[17] = 21826
     205  obtain[18] = 6320
     206  obtain[19] = 18522
     207  obtain[20] = 6874
     208  obtain[21] = 16498
     209  obtain[22] = 4983
     210  obtain[23] = 14210
     211  obtain[24] = 4019
     212  obtain[25] = 11510
     213  obtain[26] = 3425
     214  obtain[27] = 8809
     215  obtain[28] = 2002
     216  obtain[29] = 5197
     217  obtain[30] = 996
     218  obtain[31] = 2276
     219  cpu[0] = 20729
     220  cpu[1] = 19760
     221  cpu[2] = 343613
     222  cpu[3] = 348561
     223worker[5]
     224  sleep = 61
     225  timeout = 3183
     226  obtain[0] = 7291
     227  obtain[1] = 5782
     228  obtain[2] = 13633
     229  obtain[3] = 9864
     230  obtain[4] = 16465
     231  obtain[5] = 12581
     232  obtain[6] = 17135
     233  obtain[7] = 14616
     234  obtain[8] = 16524
     235  obtain[9] = 16472
     236  obtain[10] = 15194
     237  obtain[11] = 18038
     238  obtain[12] = 13801
     239  obtain[13] = 19959
     240  obtain[14] = 11693
     241  obtain[15] = 20770
     242  obtain[16] = 7328
     243  obtain[17] = 23222
     244  obtain[18] = 7186
     245  obtain[19] = 19739
     246  obtain[20] = 6584
     247  obtain[21] = 17450
     248  obtain[22] = 5241
     249  obtain[23] = 14808
     250  obtain[24] = 4287
     251  obtain[25] = 11387
     252  obtain[26] = 3367
     253  obtain[27] = 8149
     254  obtain[28] = 1887
     255  obtain[29] = 4969
     256  obtain[30] = 1123
     257  obtain[31] = 1695
     258  cpu[0] = 19504
     259  cpu[1] = 20069
     260  cpu[2] = 346015
     261  cpu[3] = 350953
     262worker[6]
     263  sleep = 1
     264  timeout = 15
     265  obtain[0] = 26
     266  obtain[1] = 22
     267  obtain[2] = 45
     268  obtain[3] = 32
     269  obtain[4] = 45
     270  obtain[5] = 76
     271  obtain[6] = 49
     272  obtain[7] = 64
     273  obtain[8] = 99
     274  obtain[9] = 70
     275  obtain[10] = 55
     276  obtain[11] = 48
     277  obtain[12] = 39
     278  obtain[13] = 28
     279  obtain[14] = 60
     280  obtain[15] = 48
     281  obtain[16] = 17
     282  obtain[17] = 74
     283  obtain[18] = 38
     284  obtain[19] = 60
     285  obtain[20] = 63
     286  obtain[21] = 66
     287  obtain[22] = 23
     288  obtain[23] = 48
     289  obtain[24] = 0
     290  obtain[25] = 78
     291  obtain[26] = 0
     292  obtain[27] = 43
    176293  obtain[28] = 0
    177294  obtain[29] = 0
    178295  obtain[30] = 0
    179   obtain[31] = 0
    180   cpu[0] = 22
    181   cpu[1] = 123
    182   cpu[2] = 7
    183   cpu[3] = 39
    184 worker[4]
    185   sleep = 19
    186   timeout = 3025
    187   obtain[0] = 2574
    188   obtain[1] = 1845
    189   obtain[2] = 4423
    190   obtain[3] = 2985
    191   obtain[4] = 5086
    192   obtain[5] = 3679
    193   obtain[6] = 5286
    194   obtain[7] = 4447
    195   obtain[8] = 5885
    196   obtain[9] = 4771
    197   obtain[10] = 4857
    198   obtain[11] = 5467
    199   obtain[12] = 4554
    200   obtain[13] = 5210
    201   obtain[14] = 3547
    202   obtain[15] = 6169
    203   obtain[16] = 2337
    204   obtain[17] = 6109
    205   obtain[18] = 1797
    206   obtain[19] = 5136
    207   obtain[20] = 1646
    208   obtain[21] = 4251
    209   obtain[22] = 1041
    210   obtain[23] = 3235
    211   obtain[24] = 975
    212   obtain[25] = 2961
    213   obtain[26] = 739
    214   obtain[27] = 1704
    215   obtain[28] = 554
    216   obtain[29] = 1344
    217   obtain[30] = 182
    218   obtain[31] = 559
    219   cpu[0] = 5617
    220   cpu[1] = 5834
    221   cpu[2] = 100129
    222   cpu[3] = 99149
    223 worker[5]
    224   sleep = 18
    225   timeout = 3123
    226   obtain[0] = 2439
    227   obtain[1] = 1878
    228   obtain[2] = 4576
    229   obtain[3] = 2938
    230   obtain[4] = 5088
    231   obtain[5] = 3723
    232   obtain[6] = 5611
    233   obtain[7] = 4411
    234   obtain[8] = 5522
    235   obtain[9] = 4893
    236   obtain[10] = 4877
    237   obtain[11] = 4932
    238   obtain[12] = 4263
    239   obtain[13] = 5608
    240   obtain[14] = 2791
    241   obtain[15] = 5905
    242   obtain[16] = 1739
    243   obtain[17] = 5322
    244   obtain[18] = 1892
    245   obtain[19] = 5118
    246   obtain[20] = 1360
    247   obtain[21] = 4764
    248   obtain[22] = 1099
    249   obtain[23] = 3180
    250   obtain[24] = 913
    251   obtain[25] = 2612
    252   obtain[26] = 807
    253   obtain[27] = 1588
    254   obtain[28] = 493
    255   obtain[29] = 1348
    256   obtain[30] = 389
    257   obtain[31] = 471
    258   cpu[0] = 5554
    259   cpu[1] = 6139
    260   cpu[2] = 97852
    261   cpu[3] = 95573
    262 worker[6]
    263   sleep = 1
    264   timeout = 11
    265   obtain[0] = 2
    266   obtain[1] = 2
    267   obtain[2] = 9
    268   obtain[3] = 4
    269   obtain[4] = 15
    270   obtain[5] = 12
    271   obtain[6] = 7
    272   obtain[7] = 16
    273   obtain[8] = 10
    274   obtain[9] = 20
    275   obtain[10] = 11
    276   obtain[11] = 5
    277   obtain[12] = 0
    278   obtain[13] = 0
    279   obtain[14] = 0
    280   obtain[15] = 16
    281   obtain[16] = 0
    282   obtain[17] = 0
    283   obtain[18] = 0
    284   obtain[19] = 20
    285   obtain[20] = 0
    286   obtain[21] = 44
    287   obtain[22] = 0
    288   obtain[23] = 0
    289   obtain[24] = 0
    290   obtain[25] = 7
    291   obtain[26] = 0
    292   obtain[27] = 0
    293   obtain[28] = 0
    294   obtain[29] = 0
    295   obtain[30] = 0
    296   obtain[31] = 0
    297   cpu[0] = 10
    298   cpu[1] = 6
    299   cpu[2] = 168
    300   cpu[3] = 217
     296  obtain[31] = 32
     297  cpu[0] = 71
     298  cpu[1] = 39
     299  cpu[2] = 1333
     300  cpu[3] = 1254
    301301worker[7]
    302302  sleep = 1
     
    338338  cpu[2] = 1
    339339  cpu[3] = 0
    340 migrations[0] = 110919
    341 migrations[1] = 110920
    342 migrations[2] = 109762
    343 migrations[3] = 112076
     340migrations[0] = 437361
     341migrations[1] = 437363
     342migrations[2] = 441234
     343migrations[3] = 433487
    344344*** END OF TEST SMPMRSP 1 ***
Note: See TracChangeset for help on using the changeset viewer.