[RTEMS Project] #4531: Data corruption in SMP schedulers

RTEMS trac trac at rtems.org
Tue Nov 23 13:35:56 UTC 2021


#4531: Data corruption in SMP schedulers
--------------------------------+------------------------------
 Reporter:  Sebastian Huber     |       Owner:  Sebastian Huber
     Type:  defect              |      Status:  assigned
 Priority:  normal              |   Milestone:  6.1
Component:  score               |     Version:  5
 Severity:  critical            |  Resolution:
 Keywords:  SMP, qualification  |  Blocked By:
 Blocking:                      |
--------------------------------+------------------------------

Comment (by Sebastian Huber <sebastian.huber@…>):

 In [changeset:"ff20bc981654ec896ca2b7830962079b2e20c29e/rtems"
 ff20bc9/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="ff20bc981654ec896ca2b7830962079b2e20c29e"
 score: Rework idle handling in SMP schedulers

 This patch fixes an issue with the idle thread handling in the SMP
 scheduler framework used for the MrsP locking protocol.  The approach to
 use a simple chain of unused idle threads is broken for schedulers which
 support thread to processor affinity.  The reason is that the thread to
 processor affinity introduces another ordering indicator which may under
 certain conditions lead to a reordering of idle threads in the scheduled
 chain.  This reordering is not propagated to the chain of unused idle
 threads.  This could lead to use an idle thread for a sticky scheduler
 node which is already in use.  This locks up the system in infinite
 loops in the thread context switch procedure.

 To fix this, the SMP scheduler implementations must now provide
 callbacks to get and release an unused idle thread.

 Update #4531.
 }}}

--
Ticket URL: <http://devel.rtems.org/ticket/4531#comment:15>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list