git: d39f7430a6e1 - main - amd64: preserve %cr2 in NMI/MCE/DBG handlers.
Andrew Gallatin
gallatin at cs.duke.edu
Sun Dec 27 20:13:12 UTC 2020
On 12/27/20 6:14 AM, Konstantin Belousov wrote:
> The branch main has been updated by kib:
>
> URL: https://urldefense.com/v3/__https://cgit.FreeBSD.org/src/commit/?id=d39f7430a6e1da419d6e4fb871bca5ba7863f738__;!!OToaGQ!7EPo6uRRpq8kWDLzM05a4h158xFeRyJ9PhhE1j04Y5uZaHKskCoGhso0T717aEhpYQ$
>
> commit d39f7430a6e1da419d6e4fb871bca5ba7863f738
> Author: Konstantin Belousov <kib at FreeBSD.org>
> AuthorDate: 2020-12-25 21:58:43 +0000
> Commit: Konstantin Belousov <kib at FreeBSD.org>
> CommitDate: 2020-12-27 10:59:33 +0000
>
> amd64: preserve %cr2 in NMI/MCE/DBG handlers.
>
> These handlers could interrupt code which has interrupts disabled,
> and if a spurious page fault occurs during exception handler run,
> we get clobbered %cr2 in higher level stack.
>
> This is mostly a speculation, but it is based on hints from good sources.
I assume this is based around the mystery panic I was talking about on
irc last week.
Can you please explain what a spurious page fault is? A fault where
there is a valid mapping, but we somehow take a fault for no reason?
How often does this happen?
Drew
More information about the dev-commits-src-main
mailing list