[RTEMS Project] #4008: pc386: smpclock01.exe fails

RTEMS trac trac at rtems.org
Thu Jun 18 07:19:38 UTC 2020


#4008: pc386: smpclock01.exe fails
-------------------------+--------------------
  Reporter:  Jan Sommer  |      Owner:  (none)
      Type:  defect      |     Status:  new
  Priority:  normal      |  Milestone:
 Component:  bsps        |    Version:  5
  Severity:  normal      |   Keywords:
Blocked By:              |   Blocking:
-------------------------+--------------------
 In the current SMP implementation for i386 the smpclock01 test will run in
 a deadlock. This is because atm only the CPU0 will initialize a timer and
 handle timer interrupts. The timer events are then distributed to the
 other processors using IPIs.

 The test now does the following:
 *
 [https://git.rtems.org/rtems/tree/testsuites/smptests/smpclock01/init.c#n104
 CPU0 disables its local interrupts and then waits on barrier A for the
 timer_task]
 * timer_task unblocks barrier A (timer_task runs on CPU1)
 *
 [https://git.rtems.org/rtems/tree/testsuites/smptests/smpclock01/init.c#n75
 timer_task arms timer 1 clock tick in the future and goes to sleep for one
 tick]
 *
 [https://git.rtems.org/rtems/tree/testsuites/smptests/smpclock01/init.c#n110
 CPU0 waits on barrier B which is supposed to be unblocked by the timer
 event of CPU1]
 * CPU0 has local interrupts disabled which means no hw timer interrupts
 are handled and no tick events are forwarded to CPU1. CPU1 never fires the
 timer since it never ticks.

 Any suggestions for solving this are welcome.

--
Ticket URL: <http://devel.rtems.org/ticket/4008>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list