Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752057AbdF1OJX (ORCPT ); Wed, 28 Jun 2017 10:09:23 -0400 Received: from mail-oi0-f42.google.com ([209.85.218.42]:33068 "EHLO mail-oi0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751742AbdF1OJP (ORCPT ); Wed, 28 Jun 2017 10:09:15 -0400 MIME-Version: 1.0 In-Reply-To: References: <1498652712-10283-1-git-send-email-wanpeng.li@hotmail.com> <1498652712-10283-4-git-send-email-wanpeng.li@hotmail.com> <293c4524-5869-2d3f-e0a3-92bde4430b81@redhat.com> <20170628133852.GA3261@potion> From: Wanpeng Li Date: Wed, 28 Jun 2017 22:09:13 +0800 Message-ID: Subject: Re: [PATCH v6 3/4] KVM: async_pf: Force a nested vmexit if the injected #PF is async_pf To: Paolo Bonzini Cc: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , "linux-kernel@vger.kernel.org" , kvm , Wanpeng Li Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id v5SE9SYw025802 Content-Length: 1576 Lines: 38 2017-06-28 21:48 GMT+08:00 Paolo Bonzini : > > > On 28/06/2017 15:38, Radim Krčmář wrote: >>> Radim, Wanpeng, >>> >>> the patch is nice now but I'm still not 100% sure about the live >>> migration part. Why do we need to pass nested_apf to userspace, but not >>> nested_apf_token? >> >> We do not need it for migration, but unavailable nested_apf_token >> already breaks checkpoint & restore from userspace ... I think the >> cleanest way would be to add a new paravirtual event for nested_apf. >> (Or just keep delaying the apf.) > > Indeed. With Jim's plans to migrate nested virt data, I was wondering > if nested_apf and nested_apf_token would be better placed in that ioctl, > rather than GET/SET_VCPU_EVENTS. > > Nested-virt migration is broken anyway until we have Jim's patches, so > there's little point in migrating nested_apf only. Do you agree? > >> Migration does a "async-pf-broadcast" while setting the async-pf MSR on >> destination, which resumes all async-pf waiters. >> Userspace actually has to drop the async-pf event on migration, because >> the destination has invalid nested_apf_token. (It's a horrible design.) > > Yes, this was my question essentially. I would still migrate > nested_apf_token (as part of nested virt state), and then clear it in > KVM when doing the async-pf broadcast. Do you mean I should save nested_apf_token by GET_VCPU_EVENTS and restore it by SET_VCPU_EVENTS? I utilize the place of "u8 pad" in kvm_vcpu_events to hold nested_apf, however nested_apf_token is unsigned long. Regards, Wanpeng Li