On 6/6/19 3:04 PM, Andy Lutomirski wrote:
quoted
But, that seems broken. If we have supervisor state, we can't
always defer the load until return to userspace, so we'll never??
have TIF_NEED_FPU_LOAD. That would certainly be true for
cet_kernel_state.
Ugh. I was sort of imagining that we would treat supervisor state
completely separately from user state. But can you maybe give
examples of exactly what you mean?
quoted
It seems like we actually need three classes of XSAVE states: 1.
User state
This is FPU, XMM, etc, right?
Yep.
quoted
2. Supervisor state that affects user mode
User CET?
Yep.
quoted
3. Supervisor state that affects kernel mode
Like supervisor CET? If we start doing supervisor shadow stack, the
context switches will be real fun. We may need to handle this in
asm.
Yeah, that's what I was thinking.
I have the feeling Yu-cheng's patches don't comprehend this since
Sebastian's patches went in after he started working on shadow stacks.
Where does PKRU fit in? Maybe we can treat it as #3?
I thought Sebastian added specific PKRU handling to make it always
eager. It's actually user state that affect kernel mode. :)