[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [QEMU PATCH v4 0/10]: target/i386: kvm: Add support for
From: |
Liran Alon |
Subject: |
Re: [Qemu-devel] [QEMU PATCH v4 0/10]: target/i386: kvm: Add support for save and restore of nested state |
Date: |
Thu, 20 Jun 2019 16:28:55 +0300 |
> On 20 Jun 2019, at 15:38, Paolo Bonzini <address@hidden> wrote:
>
> On 19/06/19 18:21, Liran Alon wrote:
>> Hi,
>>
>> This series aims to add support for QEMU to be able to migrate VMs that
>> are running nested hypervisors. In order to do so, it utilizes the new
>> IOCTLs introduced in KVM commit 8fcc4b5923af ("kvm: nVMX: Introduce
>> KVM_CAP_NESTED_STATE") which was created for this purpose.
>
> Applied with just three minor changes that should be uncontroversial:
ACK. Where can I see the applied patches for review?
>
>> 6rd patch updates linux-headers to have updated struct kvm_nested_state.
>> The updated struct now have explicit fields for the data portion.
>
> Changed patch title to "linux-headers: sync with latest KVM headers from
> Linux 5.2”
ACK.
>
>> 7rd patch add vmstate support for saving/restoring kernel integer types
>> (e.g. __u16).
>>
>> 8th patch adds support for saving and restoring nested state in order to
>> migrate
>> guests which run a nested hypervisor.
>
> diff --git a/target/i386/kvm.c b/target/i386/kvm.c
> index e924663f32..f3cf6e1b27 100644
> --- a/target/i386/kvm.c
> +++ b/target/i386/kvm.c
> @@ -1671,10 +1671,10 @@ int kvm_arch_init_vcpu(CPUState *cs)
> struct kvm_vmx_nested_state_hdr *vmx_hdr =
> &env->nested_state->hdr.vmx;
>
> + env->nested_state->format = KVM_STATE_NESTED_FORMAT_VMX;
> vmx_hdr->vmxon_pa = -1ull;
> vmx_hdr->vmcs12_pa = -1ull;
> }
> -
> }
>
> cpu->kvm_msr_buf = g_malloc0(MSR_BUF_SIZE);
>
> which is a no-op since KVM_STATE_NESTED_FORMAT_VMX is zero, but it's tidy.
I agree. My bad. Thanks for adding this :)
>
>> 9th patch add support for KVM_CAP_EXCEPTION_PAYLOAD. This new KVM capability
>> allows userspace to properly distingiush between pending and injecting
>> exceptions.
>>
>> 10th patch changes the nested virtualization migration blocker to only
>> be added when kernel lack support for one of the capabilities required
>> for correct nested migration. i.e. Either KVM_CAP_NESTED_STATE or
>> KVM_CAP_EXCEPTION_PAYLOAD.
>
> Had to disable this for SVM unfortunately.
For backwards compatibility I assume… Sounds reasonable to me so ACK.
Even though I must say I would really like to hear your opinion about the
thread I had with David Gilbert regarding QEMU’s migration backwards
compatibility:
https://www.mail-archive.com/address@hidden/msg622274.html
Thanks for the assistance pushing this forward,
-Liran
- [Qemu-devel] [QEMU PATCH v4 06/10] linux-headers: i386: Modify struct kvm_nested_state to have explicit fields for data, (continued)
- [Qemu-devel] [QEMU PATCH v4 06/10] linux-headers: i386: Modify struct kvm_nested_state to have explicit fields for data, Liran Alon, 2019/06/19
- [Qemu-devel] [QEMU PATCH v4 04/10] target/i386: kvm: Re-inject #DB to guest with updated DR6, Liran Alon, 2019/06/19
- [Qemu-devel] [QEMU PATCH v4 05/10] target/i386: kvm: Block migration for vCPUs exposed with nested virtualization, Liran Alon, 2019/06/19
- [Qemu-devel] [QEMU PATCH v4 08/10] target/i386: kvm: Add support for save and restore nested state, Liran Alon, 2019/06/19
- [Qemu-devel] [QEMU PATCH v4 02/10] KVM: Introduce kvm_arch_destroy_vcpu(), Liran Alon, 2019/06/19
- [Qemu-devel] [QEMU PATCH v4 10/10] target/i386: kvm: Add nested migration blocker only when kernel lacks required capabilities, Liran Alon, 2019/06/19
- [Qemu-devel] [QEMU PATCH v4 09/10] target/i386: kvm: Add support for KVM_CAP_EXCEPTION_PAYLOAD, Liran Alon, 2019/06/19
- Re: [Qemu-devel] [QEMU PATCH v4 0/10]: target/i386: kvm: Add support for save and restore of nested state, Paolo Bonzini, 2019/06/20
- Re: [Qemu-devel] [QEMU PATCH v4 0/10]: target/i386: kvm: Add support for save and restore of nested state,
Liran Alon <=