Re: [PATCH 3/3] x86/pv: Don't use IST for NMI/#MC/#DB in !CONFIG_PV builds

2020-04-24 Thread Jan Beulich
On 23.04.2020 20:49, Andrew Cooper wrote: > On 21/04/2020 08:48, Jan Beulich wrote: >> On 20.04.2020 16:59, Andrew Cooper wrote: >>> --- a/xen/include/asm-x86/processor.h >>> +++ b/xen/include/asm-x86/processor.h >>> @@ -441,12 +441,18 @@ struct tss_page { >>> }; >>> DECLARE_PER_CPU(struct

Re: [PATCH 3/3] x86/pv: Don't use IST for NMI/#MC/#DB in !CONFIG_PV builds

2020-04-23 Thread Andrew Cooper
On 21/04/2020 08:48, Jan Beulich wrote: > On 20.04.2020 16:59, Andrew Cooper wrote: >> --- a/xen/include/asm-x86/processor.h >> +++ b/xen/include/asm-x86/processor.h >> @@ -441,12 +441,18 @@ struct tss_page { >> }; >> DECLARE_PER_CPU(struct tss_page, tss_page); >> >> +/* >> + * Interrupt Stack

Re: [PATCH 3/3] x86/pv: Don't use IST for NMI/#MC/#DB in !CONFIG_PV builds

2020-04-21 Thread Jan Beulich
On 20.04.2020 16:59, Andrew Cooper wrote: > --- a/xen/include/asm-x86/processor.h > +++ b/xen/include/asm-x86/processor.h > @@ -441,12 +441,18 @@ struct tss_page { > }; > DECLARE_PER_CPU(struct tss_page, tss_page); > > +/* > + * Interrupt Stack Tables. Used to force a stack switch on a

[PATCH 3/3] x86/pv: Don't use IST for NMI/#MC/#DB in !CONFIG_PV builds

2020-04-20 Thread Andrew Cooper
ISTs are used to force a stack switch on CPL0=>0 interrupts/exceptions. They however come with a nasty corner case in the case of reentrancy where the outer exception frame gets clobbered. When the SYSCALL/SYSRET instructions aren't used, there is no need to use IST for anything other than #DF,