Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp1485071pxb; Wed, 30 Mar 2022 04:48:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzLcwCXjjqTHM2jcOG+97eb2sixiqS03DElCyiEo8Qm5hSwZ0asXo9EpNqDjSyLLcZgeovA X-Received: by 2002:a05:6a00:130c:b0:4bd:118:8071 with SMTP id j12-20020a056a00130c00b004bd01188071mr32721010pfu.28.1648640916821; Wed, 30 Mar 2022 04:48:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648640916; cv=none; d=google.com; s=arc-20160816; b=lGwj6zVh51m3w3iYCiTQ9I8gJGvyVe+eTGCb2aYhLOnB2K3IO8u2ind7hlIfomg3o9 HEDhrZXuLpFPpre1v/xTbh+F33vYVZZh3TKXGrFDAJ7RAgvGJD4XNjx/rJm1c6DI+36O xuoHyVH9CEgzluB79u5U+diqvW4vD47vWFju2+3LulHMhm4lmwosVR1g2ZpVZsa0Fsj7 V76xskLZqM1emN9qbJPS2sDKd7uaZ/wLxLaUXa1VqL3+Znpx+KfdhnspkX84rw8KkNKp y1+lvJdlvs9V1SWf9EwTZ/C1M6iMdEDo2C1W5ggbOMQLMjSYtdOJxROEXrXCrpUmzjn7 jmNQ== 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=+auWAaaXDrREYfp0+uPJGdCvwYVXP44tqQxqfAd+cgo=; b=DiK7zQhZJ3LadGIFBVtvEYfI5AvMuHd2Io50dFkS1WBdk5jgi/jsLSw6Jo9PrIaPoO FsfwSH7TJe0I5GLBG+4Fgq9/aIJrQUrgmkKHZ/N/lbxIEa3g+fFbcigPoaGajz6mVbsr ZuYMsnfpmkP8e06HteiihixCKY8BeCCodeE+RqCv4emQTb0D00lsZV5U+kGwqI6r13i+ c3Hc9zeaiAj3L4aFyinqdSP4HAMira/n0t3q3SQZX5FF5HSRiqU/z66FfnOii+w8EwTa FSeNb7mUlghyykKvYASTvvgTP4ZjbAwCcdjKiGzdgeNEBkoPrncYCHlGi554m54tCNIP YRvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=X71DNyCI; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 59-20020a17090a0fc100b001c69ee187d0si1727501pjz.171.2022.03.30.04.48.20; Wed, 30 Mar 2022 04:48:36 -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=@gmail.com header.s=20210112 header.b=X71DNyCI; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241566AbiC3BTZ (ORCPT + 99 others); Tue, 29 Mar 2022 21:19:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52682 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234408AbiC3BTY (ORCPT ); Tue, 29 Mar 2022 21:19:24 -0400 Received: from mail-yb1-xb36.google.com (mail-yb1-xb36.google.com [IPv6:2607:f8b0:4864:20::b36]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D13721834C4; Tue, 29 Mar 2022 18:17:39 -0700 (PDT) Received: by mail-yb1-xb36.google.com with SMTP id x20so34394664ybi.5; Tue, 29 Mar 2022 18:17:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+auWAaaXDrREYfp0+uPJGdCvwYVXP44tqQxqfAd+cgo=; b=X71DNyCINi+0JPbYeBTS4tUImx30j46+5aCRFnWS1u9WGqxQfGpdzrp+pIXQZGSCdy sh/DiHGdyEUrr4ktJbN99Eh46I8rn/IHK2uspnC9xgy85548JnP8Yd0G9FBTIYkIfPdB 26mZV4q+EHkpWXrIzWnTu2i4tR/URK3kQwWBxAfJ0qPtzs1bLAKFvhmQAdoHYmxxtYEb ljnex5cSaNPlrpBeCj0YEM2XZ8bE3M1zDtpZcv8NW5+kssUASpkyqsmcVsVyM3REjT7T Wun3IpWBLE+z9/Dxoyc7cCu00vt27BpMDzsbq05JoOeyiyfoIG1oVqE+oIx2bhojvh1+ RcqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+auWAaaXDrREYfp0+uPJGdCvwYVXP44tqQxqfAd+cgo=; b=1BWAOmj4FTRjms4iyhKD1tXkP+pty0pltIW8uKgVoYFrpPf1Y9FG6Ni/MNJHHCQ836 cJo7V8Surpt/fB7h1fnWFXCw+46xsqulvO+J0mDmpbZtl2AJTloimM+vggnL527hP+Vu QfTXHZouYo7q8OWSuDWNzctw0zS1XkJ0gEshOadA35KuJaaMz4lKg4vPc/prBSs26nt5 ijveNvyeCnWCrXxshs8/shhN+ft0k2HXbfEzi1hF0YoNG25IgdyhriQfN5wIJCXNfWqD XSGl9CbEZTCLZTJkKkqeG6pR0iZQ64vp2ntAzvlXUMfQFJvvawAtyKaoerxCdw8q//z5 ZvUg== X-Gm-Message-State: AOAM532YXZzKIdmN+9ukCR6tTipp4mQggtuaIxkhKhjCiHIn2KBMTcAp 7BQTDSkCqi4VlkKw/z2a8TmkkJgx9QC7YG0Liys= X-Received: by 2002:a25:3cc7:0:b0:634:568:a950 with SMTP id j190-20020a253cc7000000b006340568a950mr29608729yba.138.1648603059116; Tue, 29 Mar 2022 18:17:39 -0700 (PDT) MIME-Version: 1.0 References: <1648216709-44755-1-git-send-email-wanpengli@tencent.com> <1648216709-44755-3-git-send-email-wanpengli@tencent.com> In-Reply-To: From: Wanpeng Li Date: Wed, 30 Mar 2022 09:17:28 +0800 Message-ID: Subject: Re: [PATCH RESEND 2/5] KVM: X86: Add guest interrupt disable state support To: Sean Christopherson Cc: LKML , kvm , Paolo Bonzini , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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, 30 Mar 2022 at 08:04, Sean Christopherson wrote: > > On Fri, Mar 25, 2022, Wanpeng Li wrote: > > From: Wanpeng Li > > > > Let's get the information whether or not guests disable interruptions. > > This is missing critical information for _why_. It took me some staring to > understand that this allows querying IRQs from a _different_ vCPU, which needs > caching on VMX due to the need to do a VMREAD. Yes. > > > Signed-off-by: Wanpeng Li > > --- > > arch/x86/include/asm/kvm_host.h | 1 + > > arch/x86/kvm/x86.c | 3 +++ > > 2 files changed, 4 insertions(+) > > > > diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h > > index 50f011a7445a..8e05cbfa9827 100644 > > --- a/arch/x86/include/asm/kvm_host.h > > +++ b/arch/x86/include/asm/kvm_host.h > > @@ -861,6 +861,7 @@ struct kvm_vcpu_arch { > > bool preempt_count_enabled; > > struct gfn_to_hva_cache preempt_count_cache; > > } pv_pc; > > + bool irq_disabled; > > This is going to at best be confusing, and at worst lead to bugs The flag is > valid if and only if the vCPU is not loaded. I don't have a clever answer, but > this needs to have some form of guard to (a) clarify when it's valid and (b) actively > prevent misuse. How about renaming it to last_guest_irq_disabled and comments as /* Guest irq disabled state, valid iff the vCPU is not loaded */ Wanpeng