On 16/11/2017 15:28, Quan Xu wrote: > vcpu->srcu_idx = srcu_read_lock(&kvm->srcu); > > + kvm_load_guest_fpu(vcpu); > + > for (;;) { > if (kvm_vcpu_running(vcpu)) { > r = vcpu_enter_guest(vcpu); > > << > > > > as Rik dropped kvm_load_guest_fpu(vcpu) in vcpu_enter_guest() .. > in case still in kvm mode, how to make sure to pkru is always the > right one before enter guest mode, not be preempted before > preempt_disable() after migration? :( As you know: 1) kvm_load_guest_fpu doesn't load the guest PKRU, it keeps the userspace PKRU. 2) the guest PKRU is only ever set in a preemption-disabled area Thus, context switch always sees the userspace PKRU. The guest PKRU is only set the next time vmx_vcpu_run executes. Paolo