[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