On 16/11/2017 13:12, Quan Xu wrote:Â :( actually it is host_pkru, just with different names..
However it seems there is still some gap..By "guest FPU state" Rik means "guest FPU with host PKRU".
as Rik said, "at context switch time, the context switch code will save
the guest FPU state to current->thread.fpu when the VCPU thread is scheduled out."
Guest PKRU is always stored in vcpu->arch.pkru rather than in the guest agreed, I fix it.. that's why I concern.. there are so much methods to
FPU state, so guest PKRU will never be in current->thread.fpu.state either.
KVM_GET_XSAVE will the guest FPU state with vcpu->arch.pkru and
migration will work properly.
Thanks,
Paolo
after preempt_enable() in vcpu_enter_guest(), the vcpu thread is
scheduled out,
in kvm_x86_ops->run, the PKRU has been restored with host_pkru (IF
guest_pkru != host_pkru)..
instead of guest_pkru..
then the PKRU is host_pkru, how to save guest_pkru current->thread.fpu?
as mentioned, all this _assumes_ that the pkru is in
current->thread.fpu.state as well.
thanks,
Quan
Alibaba Cloud
Context switching will only happen in vcpu_enter_guest() after
preempt_enable() for a preemptible kernel, or in vcpu_run via
cond_resched() for a non-preemptible kernel.
Thanks,
Paolo
VM migration again, in case,
ÂÂÂÂÂÂÂÂÂÂÂ source_host_pkru_value != guest_pkru_value,
ÂÂÂÂÂÂÂÂÂÂÂ target_host_pkru_value == guest_pkru_value..
the pkru status would be inconsistent..