On Thu, 2017-01-26 at 12:26 +0100, Ingo Molnar wrote: > We want to simplify the FPU state machine by eliminating fpu- > >fpregs_active, > and we can do that because the two state flags (::fpregs_active and > ::fpstate_active) are set essentially together. > > The old lazy FPU switching code used to make a distinction - but > there's > no lazy switching code anymore, we always switch in an 'eager' > fashion.
I've been working for a while now to fix that for KVM VCPU threads. Currently when we switch to a VCPU thread, we first load that thread's userspace FPU context, and then soon after we save that, and load the guest side FPU context. When a VCPU thread goes idle, we also go through two FPU context transitions. In order to skip the unnecessary FPU context switches for VCPU threads, I have been relying on separate fpstate_active and fpregs_active states. Do you have any ideas on how I could implement that kind of change without separate fpstate_active and fpregs_active states?