From 055173d46a688b402e20662c32e83eecb08c0a59 Mon Sep 17 00:00:00 2001 From: Till Straumann Date: Thu, 10 Jul 2008 21:28:38 +0000 Subject: [PATCH] 2008-07-10 Till Straumann * new-exceptions/bspsupport/README: added more information --- .../powerpc/new-exceptions/bspsupport/README | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README index fc58482382..b6522312d4 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README +++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README @@ -388,3 +388,19 @@ RACE CONDITION WHEN DEALING WITH CRITICAL INTERRUPTS handler would not, eventually, check for a dispatch requirement). + And one more note: We never want to disable + machine-check exceptions to avoid a checkstop. + This means that we cannot use enabling/disabling + this type of exception for protection of critical + OS data structures. + Therefore, calling OS primitives from a asynchronous + machine-check handler is ILLEGAL and not supported. + Since machine-checks can happen anytime it is not + legal to test if a deferred context switch should + be performed when the asynchronous machine-check + handler returns (since _Context_Switch_is_necessary + could have been set by a IRQ-protected section of + code that was hit by the machine-check). + Note that synchronous machine-checks can legally + use OS primitives and currently there are no + asynchronous machine-checks defined.