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-all mailing list