>> 4) Catch the fault thrown by xsaves/xrestors in this situation, update >> XCR0, redo the xsaves/restores, put XCR0 back and continue >> execution after the faulting instruction. > > I'm worried about the kernel pieces that go digging in the XSAVE data > getting confused more than the hardware getting confused.
So you prefer this option? If so, I can try to have a go at implementing it this way and seeing if I run into any trouble. >> At least currently, it is my understanding that `xfeatures_mask` only has >> user features, am I mistaken about that? > > We're slowing adding supervisor support. I think accounting for > supervisor features is a requirement for any new XSAVE code. Sure, I don't think this is in any way incompatible with that (though probably also informs that we want to keep the memory layout the same if possible).