[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86/HVM: adjust hvm_interrupt_blocked()

>>> On 12.10.18 at 18:37, <andrew.cooper3@xxxxxxxxxx> wrote:
> Furthermore, I believe even #MC is blocked by the MOVSS shadow, because
> the purpose of the shadow is to indicate "my stack is not safe to take
> an exception".

I've just looked at the precise SDM text again, which I see has changed
compared to the prior revision. It now reads

"Execution of a MOV to SS or a POP to SS blocks or suppresses certain
 debug exceptions as well as interrupts (maskable and nonmaskable) on
 the instruction boundary following its execution. Setting this bit
 indicates that this blocking is in effect.2 This document uses the term
 “blocking by MOV SS,” but it applies equally to POP SS."

No mention of exceptions at all.

>> Additionally STI-shadow only blocks maskable interrupts, but not NMI.
> This has been discussed on LKML in the past, but `STI; HLT` will
> deadlock if NMIs don't respect the STI shadow.
> An NMI which hits that instruction boundary will IRET with IF clear, at
> which point the core will halt and never wake up.
> I believe the input from the vendor architects was that some very old
> cores suffer from this problem, but anything you can get yours hand on
> today will respect the STI shadow.

The SDM has a footnote actually saying

"Nonmaskable interrupts and system-management interrupts may
 also be inhibited on the instruction boundary following such an
 execution of STI."

Note the word "may".


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.