> On 18 Jun 2019, at 18:48, Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> wrote: > > * Liran Alon (liran.alon@xxxxxxxxxx) wrote: >> >>> On 18 Jun 2019, at 12:03, Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx> wrote: >>> >>> * Liran Alon (liran.alon@xxxxxxxxxx) wrote: >>>> >>>> +static const VMStateDescription vmstate_vmx_vmcs12 = { >>>> + .name = "cpu/kvm_nested_state/vmx/vmcs12", >>>> + .version_id = 1, >>>> + .minimum_version_id = 1, >>>> + .needed = vmx_vmcs12_needed, >>>> + .fields = (VMStateField[]) { >>>> + VMSTATE_UINT8_ARRAY(data.vmx[0].vmcs12, >>>> + struct kvm_nested_state, 0x1000), >>> >>> Where did that magic 0x1000 come from? >> >> Currently, KVM folks (including myself), haven’t decided yet to expose vmcs12 struct layout to userspace but instead to still leave it opaque. >> The formal size of this size is VMCS12_SIZE (defined in kernel as 0x1000). I was wondering if we wish to expose VMCS12_SIZE constant to userspace or not. >> So currently I defined these __u8 arrays as 0x1000. But in case Paolo agrees to expose VMCS12_SIZE, we can use that instead. > > Well if it's not defined it's bound to change at some state! I agree it’s better to expose VMCS12_SIZE to userspace but I didn’t want to be the one that decides this. Let’s let Paolo decide and modify this patch accordingly if he decides to expose it. > Also, do we need to clear it before we get it from the kernel - e.g. > is the kernel guaranteed to give us 0x1000 ? Userspace don’t need to clear it before getting it from kernel. It does guarantee to give you 0x1000. See vmx_get_nested_state() implementation in kernel. -Liran > > Dave > >> -Liran >> >>> -- >>> Dr. David Alan Gilbert / dgilbert@xxxxxxxxxx / Manchester, UK >> > -- > Dr. David Alan Gilbert / dgilbert@xxxxxxxxxx / Manchester, UK