On 1 July 2016 at 13:03, Leif Lindholm <[email protected]> wrote:
> On Fri, Jul 01, 2016 at 12:53:13PM +0200, Ard Biesheuvel wrote:
>> SErrors (formerly called asynchronous aborts) are a distinct class of
>> exceptions that are not closely tied to the currently executing
>> instruction. Since execution may be able to proceed in such a condition,
>> this class of exception is masked by default, and software needs to unmask
>> it explicitly if it is prepared to handle such exceptions.
>>
>> On DEBUG builds, we are well equipped to report the CPU context to the user
>> and it makes sense to report an SError as soon as it occurs rather than to
>> wait for the OS to take it when it unmasks them, especially since the current
>> arm64/Linux implementation simply panics in that case. So unmask them when
>> ArmCpuDxe loads.
>
> So, I agree with this patch:
> Reviewed-by: Leif Lindholm <[email protected]>
>
> But if we're doing this, I wonder if we should not also do so for
> non-DEBUG builds? Do we expect other operating systems to do anything
> useful with the exception? If not, hanging when the error occurs
> sounds more informative than hanging as soon as you start your OS.
>

Well, the point is that we send debug output only to the serial port,
and you can reasonably expect someone running a DEBUG build to be
monitoring its output. On a RELEASE build, it makes more sense for the
OS to handle it (although panicking as early as arm64 linux does is
not very helpful either) since it will hang without any feedback to
the UEFI console (even the RELEASE code in the default exception
handler writes to the serial port directly rather than to UEFI's
console)
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to