[PATCH 00/27] Fix several SMP related scheduler bugs
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Nov 15 17:12:32 UTC 2021
This patch set addresses several bugs related to SMP schedulers:
* https://devel.rtems.org/ticket/4531
* https://devel.rtems.org/ticket/4532
* https://devel.rtems.org/ticket/4534
* https://devel.rtems.org/ticket/4544
* https://devel.rtems.org/ticket/4545
Tests for scenarios of this patch set are in the new validation test suite
which will be sent for review later.
Sebastian Huber (27):
score: Simplify _Scheduler_Generic_block()
score: Add red-black tree append/prepend
score: Rename _Scheduler_Set_idle_thread()
score: Not set CPU in _Scheduler_Use_idle_thread()
score: Change _Scheduler_Try_to_schedule_node()
score: Simplify _Scheduler_Exchange_idle_thread()
score: Add missing idle thread releases
score: Add missing idle thread exchanges
score: Scheduler insert after move
score: Remove return value from enqueue scheduled
score: Use extract from scheduled callbacks
score: Rework affine ready queue handling
score: Optimize SMP EDF move to ready operation
score: Add SMP scheduler idle exchange callback
score: Add SMP scheduler make/clean sticky
score: Rework idle handling in SMP schedulers
score: Add node to insert to Chain_Node_order
score: Fix SMP EDF priority group ordering
score: Simplify _Scheduler_SMP_Yield()
score: Move _Scheduler_Block_node()
score: Move _Scheduler_Unblock_node()
score: Remove victim thread from CPU allocation
score: _Scheduler_SMP_Schedule_highest_ready()
score: Rework ask for help requests
score: Fix assertion in SMP scheduler framework
rtems: Fix rtems_scheduler_remove_processor()
score: Restrict affinity for EDF SMP scheduler
cpukit/include/rtems/score/chainimpl.h | 11 +-
cpukit/include/rtems/score/mrspimpl.h | 19 +-
cpukit/include/rtems/score/rbtreeimpl.h | 26 +
cpukit/include/rtems/score/scheduler.h | 54 +
cpukit/include/rtems/score/scheduleredfsmp.h | 45 +-
cpukit/include/rtems/score/schedulerimpl.h | 441 ++-----
.../include/rtems/score/schedulernodeimpl.h | 21 +
.../score/schedulerpriorityaffinitysmp.h | 32 +
.../rtems/score/schedulerprioritysmp.h | 33 +
.../rtems/score/schedulerprioritysmpimpl.h | 35 +
.../include/rtems/score/schedulersimpleimpl.h | 13 +-
.../include/rtems/score/schedulersimplesmp.h | 32 +
cpukit/include/rtems/score/schedulersmp.h | 9 -
cpukit/include/rtems/score/schedulersmpimpl.h | 1032 ++++++++++-------
.../include/rtems/score/schedulerstrongapa.h | 62 +
cpukit/include/rtems/score/thread.h | 20 +-
cpukit/include/rtems/score/threadimpl.h | 54 +-
cpukit/rtems/src/schedulerremoveprocessor.c | 50 +-
cpukit/score/src/coremsginsert.c | 6 +-
cpukit/score/src/rbtreeappend.c | 58 +
cpukit/score/src/rbtreeprepend.c | 58 +
.../src/schedulerdefaultmakecleansticky.c | 52 +
cpukit/score/src/scheduleredfsmp.c | 346 ++++--
.../score/src/schedulerpriorityaffinitysmp.c | 89 +-
cpukit/score/src/schedulerprioritysmp.c | 73 +-
cpukit/score/src/schedulersimplesmp.c | 96 +-
cpukit/score/src/schedulersmp.c | 29 +-
cpukit/score/src/schedulerstrongapa.c | 162 ++-
cpukit/score/src/threadchangepriority.c | 132 ++-
cpukit/score/src/threaddispatch.c | 2 +-
cpukit/score/src/threadqenqueue.c | 6 +-
spec/build/cpukit/librtemscpu.yml | 2 +
spec/build/cpukit/objsmp.yml | 1 +
testsuites/sptests/spchain/init.c | 8 +-
34 files changed, 2115 insertions(+), 994 deletions(-)
create mode 100644 cpukit/score/src/rbtreeappend.c
create mode 100644 cpukit/score/src/rbtreeprepend.c
create mode 100644 cpukit/score/src/schedulerdefaultmakecleansticky.c
--
2.26.2
More information about the devel
mailing list