Received: by 2002:ac0:e350:0:0:0:0:0 with SMTP id g16csp460880imn; Wed, 3 Aug 2022 11:10:54 -0700 (PDT) X-Google-Smtp-Source: AA6agR5gxf7obZv1zGJ72AUEjg8osGw4kMip4Jx9n95gFuJdORw7wePVidFGGFUXNZdM9OHXD9eR X-Received: by 2002:a17:902:ba91:b0:16d:3119:7fea with SMTP id k17-20020a170902ba9100b0016d31197feamr27309219pls.57.1659550254317; Wed, 03 Aug 2022 11:10:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659550254; cv=none; d=google.com; s=arc-20160816; b=KmwPpMijfxM8K5s8/m/l3MUjIDugCpjAunOPLpKx1/zQMJeGdInC8RIHEUHHdDeAnQ sb+y/NUjo4yqaMCW0e3hDA8Gk2OIfE7EhYeoOfw/gKnoVg5MGLWjhBaC8tO0G1gq820d lPIvaFG6AKFF5O4s6Qh49zCooRumMjKFDSZ3v9fDg0akeRiCu6xKkvzBQ3QHzGFX8Q75 ff1wOE3W21erSUpffLKQWRAdw4Vv8f75BrsyUn+/Gr4jxo/l5WP2e7IvYru+m9Bx6Yep EG1ERK6zvZKpuAWKSCJx2UzQtMPwxbxWKR+kmvSkCzlvAgxs68SvpQEFGr4ETXE7X/84 YNHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=4D8pS8ERyLJtCBiCTu4ctfzlqVz56jvHc/H6j2NigrA=; b=pFKxmK8yniD3yp33VAEU64vBuhyffCPu1BBOzQTcCbuB1bkIMYJ1Cef0DnBctq7wmL nAMIl1fbOPX1C437+F0u+0IevW/M6Ey2UlCrd3vWfmPMA7o2HhU3SNN9/eBGk4Kc7ezR nZ0nSTuSpMDzme18W1y7bZHxhIFbZF5vSpguiLmi+q2+aBRncdMweSYrlX8wpj08TRs9 PE54cAlT73eWyjJxNl/KETxPU4TQCoHAQ1MNzIpsYXOL7Hs/Q37BBqIzm0VYA4x8ZW45 +82t77C73mqrB24+QceUUK3wDkva277cAQuETxBzCdYHg42OZJSqP8F+G2yjSKbrIbt3 0MnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=Z0fwwqlg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u12-20020a170902e5cc00b0016be70453d8si298724plf.19.2022.08.03.11.10.40; Wed, 03 Aug 2022 11:10:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=Z0fwwqlg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236873AbiHCRvk (ORCPT + 99 others); Wed, 3 Aug 2022 13:51:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56266 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231998AbiHCRvh (ORCPT ); Wed, 3 Aug 2022 13:51:37 -0400 Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1D80B2610A for ; Wed, 3 Aug 2022 10:51:37 -0700 (PDT) Received: by mail-pj1-x102b.google.com with SMTP id f11-20020a17090a4a8b00b001f2f7e32d03so4139565pjh.0 for ; Wed, 03 Aug 2022 10:51:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=4D8pS8ERyLJtCBiCTu4ctfzlqVz56jvHc/H6j2NigrA=; b=Z0fwwqlgUha4Y0G9rz55tuuuixBANbKNQyHR3jeT3z0QVS2uiIk9XZdG53qZ54P60v 3wxlm+QboutDiOOrWOLxVfC+YNopTY2A29ys42kd/7rRAaJc+OuncnDnBwzg1fCD0V7B 43ANZCPuD61AuIY7nuNLSqEaHvrrcANNRuREoZyPvr1ZBbzq2dOoUSLsCtyKLY78VcRZ W6JJttAgAM7/DtJD4eeUysnswkU8LHy2135NAJdWRECE46ki+GXrhdKShvr3KwS2ltIe 7wYmVpegB3APS/HGDhDIzbea6k35puFS8Zng0O7XsvkLMjiB93UZGFzOaayBa1LkZps7 AiRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=4D8pS8ERyLJtCBiCTu4ctfzlqVz56jvHc/H6j2NigrA=; b=2w9A41wjxrqLGkMvsTyktD6wkJw3Bk5cRe9xWsIGM7afmlDYHiCz6WuyL+ZUhVRLvS 3R8UtZ/rPg04SR54rAlZznivk6CGVYPCFLL5cJQI1t02u7qHl1h3+jkpyPGESZPn53GI bSzhoensFgtf7ZCC72n8VOxjrOTHR8BR/wwV2033xyVrcp8C1wNgv73qOEdWECwJvi/e IQbKlU20dD7bgzDLpew0BwiDxDti1G/sYoM/dwQircb5QjGvmgyWVPwx1e/Y1eCp9s9Q 6+VEePmrbzdz+Li2DMzcwHc+Xrs7QwBkk4BRWEY6WnfQgk7rtqQngFNIwjBWwSR5/oM7 joOg== X-Gm-Message-State: ACgBeo2+aDUjB+x/wNLVWbVYDmhbKiZVwEd0guo6htNR52fun4bD2l6M lpeVPKpbtnUhzGIcDZdMb63tzP7QdTnRtGO+8MeZsQ== X-Received: by 2002:a17:90b:224e:b0:1f4:ebed:16f6 with SMTP id hk14-20020a17090b224e00b001f4ebed16f6mr5954295pjb.17.1659549096461; Wed, 03 Aug 2022 10:51:36 -0700 (PDT) MIME-Version: 1.0 References: <20220802230718.1891356-1-mizhang@google.com> <20220802230718.1891356-2-mizhang@google.com> In-Reply-To: From: Mingwei Zhang Date: Wed, 3 Aug 2022 10:51:25 -0700 Message-ID: Subject: Re: [PATCH 1/5] KVM: x86: Get vmcs12 pages before checking pending interrupts To: Paolo Bonzini Cc: Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , kvm , LKML , Oliver Upton Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Aug 3, 2022 at 10:18 AM Paolo Bonzini wrote: > > On 8/3/22 01:07, Mingwei Zhang wrote: > > + /* > > + * We must first get the vmcs12 pages before checking for interrupts > > + * that might unblock the guest if L1 is using virtual-interrupt > > + * delivery. > > + */ > > + if (kvm_check_request(KVM_REQ_GET_NESTED_STATE_PAGES, vcpu)) { > > + /* > > + * If we have to ask user-space to post-copy a page, > > + * then we have to keep trying to get all of the > > + * VMCS12 pages until we succeed. > > + */ > > + if (unlikely(!kvm_x86_ops.nested_ops->get_nested_state_pages(vcpu))) { > > + kvm_make_request(KVM_REQ_GET_NESTED_STATE_PAGES, vcpu); > > + return 0; > > + } > > + } > > + > > I think request handling (except for KVM_REQ_EVENT) could be more > generically moved from vcpu_enter_guest() to vcpu_run(). Yeah, sounds good to me. I can come up with an updated version. At least, I will remove the repeat request here. > > Paolo >