Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp5754586imw; Wed, 20 Jul 2022 11:50:31 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sNL5HUpfB7t0XVmuG8UBu6rcwOosHy1gUMmqQrwe4N0Kp71ea8Av0WoOxah3/EAfQms+95 X-Received: by 2002:a17:90b:4c0e:b0:1ef:e8dd:8572 with SMTP id na14-20020a17090b4c0e00b001efe8dd8572mr7060741pjb.211.1658343031566; Wed, 20 Jul 2022 11:50:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658343031; cv=none; d=google.com; s=arc-20160816; b=lmw0POEAL/WeDSQxtQq/FhJiaeBw9zhRJeoYeBBsWdGvdnB/231e9DxGfOKz1bmHl7 /tjKDOAcd6RJMT6Si6lRORTpKDb8yGEPyTawxA3bc0Bzutr7z1Mgf1B9tpqo5DgbfPoC OH7fisxbFn8H56j7XK9hIIJPUKgBkIaNnoQblBEYOvbfo7jVjCi7s33TVQXzEStFmpDm 2qskkc42T6RuKCu4v8pxlTpis2HetSGljQZaN73zeeIr5rhuteNlZjB0sUWCn8wB17k7 c42zGNJsaY2PQMSw8otetV/E7koBDg8MF/xPw1MCbaZ+1F8R+cK6hrZThpKJuMzC3Uax wqbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=mRPcgTIH6IsKIJQCeaziCyLFexZR/ta22krRMly0Teg=; b=m6Px+ifsLoyoJ5irUlq9/1jOZszvB/XuWSXbU7YvcbYmPxrfS4L7M7hlmwKiCa72hT 7ch1OEVb/18HtEVNxMPDThnOqYvaoI5p8xgsL+LeiqjJO/r9XHS62nse/ehPbabrqc6Y AeKV7h3TKY5iFKhB1m3lgFhWapYT24XJko8EHIPEjryWcfqbmaa2ayYSUD0qWTmx+1+r dNkPvLrih5thx2r4SeP4huZasCQXJOcgUNNYpByokdbq2bOKpfg1QV7vdutc6fumwBib XUSKkSKNW2jRrGQLgrEG5w8a8gN5qyGqpi5gECvvgGynz/Libmw22Gbi40di+YHFtjTO DTlQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=BaGng3sh; 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 y73-20020a638a4c000000b0041a4f693412si6141054pgd.134.2022.07.20.11.50.16; Wed, 20 Jul 2022 11:50:31 -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=BaGng3sh; 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 S229851AbiGTSls (ORCPT + 99 others); Wed, 20 Jul 2022 14:41:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58588 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229690AbiGTSlr (ORCPT ); Wed, 20 Jul 2022 14:41:47 -0400 Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com [IPv6:2607:f8b0:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CB6DC550B9 for ; Wed, 20 Jul 2022 11:41:46 -0700 (PDT) Received: by mail-pf1-x42e.google.com with SMTP id y141so17239497pfb.7 for ; Wed, 20 Jul 2022 11:41:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=mRPcgTIH6IsKIJQCeaziCyLFexZR/ta22krRMly0Teg=; b=BaGng3shZ0HLEiVcprmv3DhEYLH5QO6B2Gzz2znQhbWxSSwtz20BofJlzy92gS2+Ks sLfccM1nI921KGHdrA9wuYLeByXq35p7p6s3BMhQeqBNQkIuZOclmteF0X8qxERsGcZM sYNYAsU2TBM9OD9VoZKTcgUJlUWHtq8pUqdnOAfMYT4eG0f3VA2UxFq8AfosVagPpzQ9 RyzVbi2EbB7NBlA6P+6cQcDHVDiFSdEJsuEv+yVaMEPIhtdlJQXV+MQXEaPoKeAX04je oVMSphvkS9w7ICg1v9maH0Sl9Wpd4g9cCAJWXpFi4y1Y1WEgik6VBqsRJezXaXNkpLSY 27Jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=mRPcgTIH6IsKIJQCeaziCyLFexZR/ta22krRMly0Teg=; b=tAPcypsFk0JW/aLAPb8t8x9yg44yfEEi1GIC6eYMkn8gl9LxRZahXc8Nb6eEOGgLiY iwFvAbZxbeigpPu21cZ+zcWMcEMMMxxWu704cMrljxYoQ4jz4i1sC4awJ0dI+9hgExhq d2dhtoEu3DECVTIdQr55OkZR3CiBBLIM81XJWLZNTzb60k7wNjyGI1iYRdG37o16iy6K hZjc5Jksj9UXb1Ev7waUm4YN913HQzU6gU9GzycOF5tGPWfj4JCCjW+MWikakaZT6z+V CczFTL6BgMaH3XQU3Igj5gdKRHgbTaqmFDsTwx60PW3qILNcmzUJvGfKzDLfv7NtrHY2 Sj8A== X-Gm-Message-State: AJIora9ODVml9zOy8wiW2EIwBNW+7kwQBPz0EV/AjxlfjyPGdcsG21RY fzTHaMZtzbHlP9J6/QSBvBLO6qBgmctK2A== X-Received: by 2002:a65:6b8a:0:b0:3fc:4c06:8a8d with SMTP id d10-20020a656b8a000000b003fc4c068a8dmr34410549pgw.83.1658342506207; Wed, 20 Jul 2022 11:41:46 -0700 (PDT) Received: from google.com (123.65.230.35.bc.googleusercontent.com. [35.230.65.123]) by smtp.gmail.com with ESMTPSA id y20-20020aa79434000000b005289f594326sm7523207pfo.69.2022.07.20.11.41.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Jul 2022 11:41:45 -0700 (PDT) Date: Wed, 20 Jul 2022 18:41:42 +0000 From: Sean Christopherson To: Kechen Lu Cc: kvm@vger.kernel.org, pbonzini@redhat.com, chao.gao@intel.com, vkuznets@redhat.com, somduttar@nvidia.com, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH v4 5/7] KVM: x86: add vCPU scoped toggling for disabled exits Message-ID: References: <20220622004924.155191-1-kechenl@nvidia.com> <20220622004924.155191-6-kechenl@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220622004924.155191-6-kechenl@nvidia.com> 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=unavailable 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 Tue, Jun 21, 2022, Kechen Lu wrote: > @@ -5980,6 +5987,8 @@ int kvm_vm_ioctl_irq_line(struct kvm *kvm, struct kvm_irq_level *irq_event, > int kvm_vm_ioctl_enable_cap(struct kvm *kvm, > struct kvm_enable_cap *cap) > { > + struct kvm_vcpu *vcpu; > + unsigned long i; > int r; > > if (cap->flags) > @@ -6036,14 +6045,17 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm, > break; > > mutex_lock(&kvm->lock); > - if (kvm->created_vcpus) > - goto disable_exits_unlock; > + if (kvm->created_vcpus) { I retract my comment about using a request, I got ahead of myself. Don't update vCPUs, the whole point of adding the !kvm->created_vcpus check was to avoid having to update vCPUs when the per-VM behavior changed. In other words, keep the restriction and drop the request. > + kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_ioctl_disable_exits(vcpu->arch, cap->args[0]); > + kvm_make_request(KVM_REQ_DISABLE_EXITS, vcpu); > + } > + } > + mutex_unlock(&kvm->lock); > > kvm_ioctl_disable_exits(kvm->arch, cap->args[0]); > > r = 0; > -disable_exits_unlock: > - mutex_unlock(&kvm->lock); > break; > case KVM_CAP_MSR_PLATFORM_INFO: > kvm->arch.guest_can_read_msr_platform_info = cap->args[0]; > @@ -10175,6 +10187,9 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) > > if (kvm_check_request(KVM_REQ_UPDATE_CPU_DIRTY_LOGGING, vcpu)) > static_call(kvm_x86_update_cpu_dirty_logging)(vcpu); > + > + if (kvm_check_request(KVM_REQ_DISABLE_EXITS, vcpu)) > + static_call(kvm_x86_update_disabled_exits)(vcpu); > } > > if (kvm_check_request(KVM_REQ_EVENT, vcpu) || req_int_win || > -- > 2.32.0 >