On 17/05/21 15:50, Vitaly Kuznetsov wrote:
'Clean fields' data from enlightened VMCS is only valid upon vmentry: L1 hypervisor is not obliged to keep it up-to-date while it is mangling L2's state, KVM_GET_NESTED_STATE request may come at a wrong moment when actual eVMCS changes are unsynchronized with 'hv_clean_fields'. As upon migration VMCS12 is used as a source of ultimate truth, we must make sure we pick all the changes to eVMCS and thus 'clean fields' data must be ignored.
While you're at it, would you mind making copy_vmcs12_to_enlightened and copy_enlightened_to_vmcs12 void?
Paolo