Changeset f39f667a in rtems for cpukit/score/Makefile.am


Ignore:
Timestamp:
May 14, 2014, 11:50:48 AM (5 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
3733b224
Parents:
2369b10
git-author:
Sebastian Huber <sebastian.huber@…> (05/14/14 11:50:48)
git-committer:
Sebastian Huber <sebastian.huber@…> (05/15/14 10:18:44)
Message:

score: Simplify _Thread_Change_priority()

The function to change a thread priority was too complex. Simplify it
with a new scheduler operation. This increases the average case
performance due to the simplified logic. The interrupt disabled
critical section is a bit prolonged since now the extract, update and
enqueue steps are executed atomically. This should however not impact
the worst-case interrupt latency since at least for the Deterministic
Priority Scheduler this sequence can be carried out with a wee bit of
instructions and no loops.

Add _Scheduler_Change_priority() to replace the sequence of

  • _Thread_Set_transient(),
  • _Scheduler_Extract(),
  • _Scheduler_Enqueue(), and
  • _Scheduler_Enqueue_first().

Delete STATES_TRANSIENT, _States_Is_transient() and
_Thread_Set_transient() since this state is now superfluous.

With this change it is possible to get rid of the
SCHEDULER_SMP_NODE_IN_THE_AIR state. This considerably simplifies the
implementation of the new SMP locking protocols.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/Makefile.am

    r2369b10 rf39f667a  
    209209libscore_a_SOURCES += src/schedulerpriority.c \
    210210    src/schedulerpriorityblock.c \
    211     src/schedulerpriorityenqueue.c \
    212     src/schedulerpriorityenqueuefirst.c \
    213     src/schedulerpriorityextract.c \
     211    src/schedulerprioritychangepriority.c \
    214212    src/schedulerpriorityprioritycompare.c \
    215213    src/schedulerpriorityschedule.c \
     
    221219libscore_a_SOURCES += src/schedulersimple.c \
    222220    src/schedulersimpleblock.c \
    223     src/schedulersimpleenqueue.c \
    224     src/schedulersimpleenqueuefirst.c \
    225     src/schedulersimpleextract.c \
    226     src/schedulersimplereadyqueueenqueue.c \
    227     src/schedulersimplereadyqueueenqueuefirst.c \
     221    src/schedulersimplechangepriority.c \
    228222    src/schedulersimpleschedule.c \
    229223    src/schedulersimpleunblock.c \
     
    234228    src/scheduleredfallocate.c \
    235229    src/scheduleredfblock.c \
    236     src/scheduleredfenqueue.c \
    237     src/scheduleredfenqueuefirst.c \
    238     src/scheduleredfextract.c \
     230    src/scheduleredfchangepriority.c \
    239231    src/scheduleredfprioritycompare.c \
    240232    src/scheduleredfreleasejob.c \
     
    283275    src/threadloadenv.c src/threadready.c \
    284276    src/threadrestart.c src/threadsetpriority.c \
    285     src/threadsetstate.c src/threadsettransient.c \
     277    src/threadsetstate.c \
    286278    src/threadstackallocate.c src/threadstackfree.c src/threadstart.c \
    287279    src/threadstartmultitasking.c src/iterateoverthreads.c \
Note: See TracChangeset for help on using the changeset viewer.