Ignore:
Timestamp:
07/11/14 07:47:05 (10 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, 5, master
Children:
1af8634a
Parents:
27783f6
git-author:
Sebastian Huber <sebastian.huber@…> (07/11/14 07:47:05)
git-committer:
Sebastian Huber <sebastian.huber@…> (07/11/14 07:55:33)
Message:

score: Scheduler helping proto for affinity sched

The priority affinity scheduler has the nice property that it can
produce more than one scheduled to ready state change in one operation.
Each scheduled to ready state change may lead to one thread in need for
help. Since it is currently only possible to return at most one thread
in need for help, we have a problem here.

A solution might be to move the check for migrations into the ask for
help mechanism.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/src/schedulerpriorityaffinitysmp.c

    r27783f6 rf0c8501  
    356356
    357357    /*
     358     * FIXME: Do not consider threads using the scheduler helping protocol
     359     * since this could produce more than one thread in need for help in one
     360     * operation which is currently not possible.
     361     */
     362    if ( lowest_scheduled->help_state != SCHEDULER_HELP_YOURSELF )
     363      break;
     364
     365    /*
    358366     * But if we found a thread which is lower priority than one
    359367     * in the ready set, then we need to swap them out.
     
    363371      _Scheduler_SMP_Node_downcast( lowest_scheduled ),
    364372      SCHEDULER_SMP_NODE_READY
     373    );
     374    _Scheduler_Thread_change_state(
     375      _Scheduler_Node_get_user( lowest_scheduled ),
     376      THREAD_SCHEDULER_READY
    365377    );
    366378
Note: See TracChangeset for help on using the changeset viewer.