Re: [patch V9 00/39] x86/entry: Rework leftovers (was part V)

From: Andy Lutomirski
Date: Thu Jun 04 2020 - 11:43:08 EST


On Thu, Jun 4, 2020 at 6:35 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> On Thu, Jun 04, 2020 at 03:29:26PM +0200, Paolo Bonzini wrote:
> > On 04/06/20 15:25, Peter Zijlstra wrote:
> > > It being enabled through IA32_DEBUGCTL instead of through DR7 means that
> > > the current code doesn't disable it and this then means we can have
> > > nested #DB again.
> >
> > /me bangs head on door
> >
> > > Who sodding throught this was a good idea ?! What happened to #AC that
> > > SLD currently uses?
> >
> > It was per-core and (presumably) considered unfixable?
>
> Yeah, but I don't see how changing the exception vector helps with that.
> #DB is an IST, and it must be, because of that lovely MOV SS thing. #AC
> has none of that, _please_ use #AC.

x86 is not an architecture. x86 is a gauntlet through which operating
system developers must run.

I think we can tolerate this particular mess -- can't we just say that
a BUS LOCK DEBUG EXCEPTION is fatal if it came from kernel mode? So
what if it nests inside #DB -- we can survive an oops from a corrupt
context like that.