You can change the default VMCS12_REVISION and associated layout, as long as support is maintained for the old layout and userspace has the ability (e.g. by setting the IA32_VMX_BASIC MSR) to specify that a VM needs to use the old layout. On Tue, Dec 19, 2017 at 4:25 AM, Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> wrote: > Jim Mattson <jmattson@xxxxxxxxxx> writes: > >> At this point in time, I don't think you can just blithely change the >> virtual VMCS layout and revision number. Existing VMs using the old >> layout and revision number must continue to work on versions of kvm >> past this point. You could tie the layout and revision number changes >> to KVM_CAP_HYPERV_ENLIGHTENED_VMCS if you like, but kvm must be able >> to continue to service VMs using the previous layout and revision >> number in perpetuity. >> > > I see what you mean. In case we need to keep migration of nested > workloads working between KVMs of different versions we can't (ever) > touch vmcs12. > > The way to go in this case, I think, is to create a completely separate > enlightened_vmcs12 struct and use it when appropriate. We can't possibly > support migrating workloads which use enlightened VMCS to an old KVM > which doesn't support it. > > P.S. "If there are changes in this struct, VMCS12_REVISION must be > changed." comment needs to be replaced with "Don't even think about > changing this" :-) > > -- > Vitaly _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel