[RTEMS Project] #4627: Multitasking start is broken on SMP targets which do not restore the interrupt state during context switching

RTEMS trac trac at rtems.org
Wed Mar 9 20:01:38 UTC 2022


#4627: Multitasking start is broken on SMP targets which do not restore the
interrupt state during context switching
-----------------------------+------------------------------
 Reporter:  Sebastian Huber  |       Owner:  Sebastian Huber
     Type:  defect           |      Status:  closed
 Priority:  normal           |   Milestone:  6.1
Component:  score            |     Version:  5
 Severity:  normal           |  Resolution:  fixed
 Keywords:  qualification    |  Blocked By:
 Blocking:                   |
-----------------------------+------------------------------
Changes (by Sebastian Huber <sebastian.huber@…>):

 * status:  assigned => closed
 * resolution:   => fixed


Comment:

 In [changeset:"32f0f11a68d3aa521f0398c9b8eec3d47f114c5e/rtems"
 32f0f11/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="32f0f11a68d3aa521f0398c9b8eec3d47f114c5e"
 SMP: Fix start multitasking for some targets

 The previous SMP multitasking start assumed that the initial heir thread
 of a
 processor starts execution in _Thread_Handler().  The _Thread_Handler()
 sets
 the interrupt state explicitly by _ISR_Set_level() before it calls the
 thread
 entry.  Under certain timing conditions, processors may perform an initial
 context switch to a thread which already executes its thread body (see
 smptests/smpstart01).  In this case, interrupts are disabled after the
 context
 switch on targets which do not save/restore the interrupt state during a
 context switch (aarch64, arm, and riscv).

 Close #4627.
 }}}

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


More information about the bugs mailing list