score: Workaround for #2751

The ARM and PowerPC interrupt epilogues call _Thread_Dispatch() with
interrupts disabled (counter example: SPARC).

On SMP configurations, since inter-processor interrupts set the thread
dispatch necessary indicator this prevents a thread dispatch
notification in post-switch handlers (which all run with interrupts
disabled).

On all configurations, this is a serious issue for the interrupt
latency.

Update #2751
This commit is contained in:
Sebastian Huber
2016-07-01 11:51:49 +02:00
parent 23dedc448e
commit 8d5b03802e
+4
View File
@@ -357,6 +357,10 @@ void _Thread_Life_action_handler(
_Thread_Make_zombie( executing );
/* FIXME: Workaround for https://devel.rtems.org/ticket/2751 */
cpu_self->dispatch_necessary = true;
_Assert( cpu_self->heir != executing );
_Thread_Dispatch_enable( cpu_self );
RTEMS_UNREACHABLE();
}