Thanks for posting this link. I was curious about a, b and d:
>"(a) IDT itself is a horrible nasty format and you shouldn't have to parse memory in odd ways to handle exceptions. It was fundamentally bad from the 80286 beginnings, it got a tiny bit harder to parse for 32-bit, and it arguably got much worse in x86-64."
What is it about IDT that requires parsing memory in odd ways? What is odd about it?
>"(b) %rsp not being restored properly by return-to-user mode."
Does anyone know why this is? Is this a historical accident or something else?
>"(d) several bad exception nesting problems (NMI, machine checks and STI-shadow handling at the very least)"
Is this one these two exceptions are nested together or is this an issue when either one of these is present in the interrupt chain? Is there any good documentation on this?