Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp2382811rwb; Fri, 2 Dec 2022 09:04:03 -0800 (PST) X-Google-Smtp-Source: AA0mqf7jTO73ITaKwZbY/f8weN8F4iZjs2PHSBW6BkRIZU6tSVjXnfVY5vS3f8wKzuQFS5hyyn1P X-Received: by 2002:a17:907:124d:b0:7c0:9ecb:a4f1 with SMTP id wc13-20020a170907124d00b007c09ecba4f1mr10779869ejb.692.1670000643439; Fri, 02 Dec 2022 09:04:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670000643; cv=none; d=google.com; s=arc-20160816; b=lgySMdXFxjwB3QsS/CpysbihwOiJnysWdLexm4I/RXahEjV+YxBdGNW6lo0g9ZBvKK x4aOt7hAo2y46rUIHmTpWiT0ASHrr0NL2zDUiZKVmPIy2TiL7nwle1VtXP1huWJ2M76d K+KefTp21ZJvZ6QYf+TDacqxsIs3PeH18N+FbnwY35W+xK4AXrgUF5dKnsqFBgZIalNx /b5TPt/fKqghe6Bgm9uxYoHmUtWUvKrBf2awyYeNMrO+PCIOiFBHZv+WgDg7kmaeoquR UEEDiWQO4dFJnILGr6EDYA7FFg94+oD+tWeEkyejDXeoocEmvWKx4c9nqlqK5e8uebBN gHZg== 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-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=b2GsRYGpugbtZSHFD2RurCZ4JW4xZuzTsOfxXrCkfT8=; b=UuMTTksXYR3Q07c8sl/jZNRX7jVxLkxYrqsYzOGyaSiS9Ks72jvZnJlZj6XkQkVsZk BcgnEgqeZ6Erxr0klLD/r47UJxDIHiRgRbMV3Snii/pXqdp19r+Hkn61fz0tBdetp/76 ueOEMic8Vfq8zWid3uZ5Pu0opB2sLU5FDcIfbMqJc3wl2QyizDO/X6I12XZaW9wuJrXP i8eAFDF6ojswBgFMb4HCcGLVmO/TB6sRzpuJxm43ZtoR3fuzJam+kWCXSnF4OkqMmfPy rzBcCqXF9hfLpsNY4A/1Sa/uObAaJDk6kRCs+6L8949amAPYv5VaWeBcCh9/sEo2YLgZ o76Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=NpcRjd8P; 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 qw1-20020a1709066a0100b0078d770f363fsi6304295ejc.471.2022.12.02.09.03.40; Fri, 02 Dec 2022 09:04:03 -0800 (PST) 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=NpcRjd8P; 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 S233897AbiLBQFA (ORCPT + 82 others); Fri, 2 Dec 2022 11:05:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42230 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233773AbiLBQEf (ORCPT ); Fri, 2 Dec 2022 11:04:35 -0500 Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9DB89229 for ; Fri, 2 Dec 2022 08:04:14 -0800 (PST) Received: by mail-pj1-x1034.google.com with SMTP id t11-20020a17090a024b00b0021932afece4so8696112pje.5 for ; Fri, 02 Dec 2022 08:04:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=b2GsRYGpugbtZSHFD2RurCZ4JW4xZuzTsOfxXrCkfT8=; b=NpcRjd8PL93RDmu18EFPPR+cTZLP3kvCDAEAva9wUQzgEtv6dhPvDs1R9Q9+h2mN7N H42dGaT+sl8xeMuYK2rfUD+midQutKuG+T3MUl21HeEIW4MolVpdsUIo9SmBbkggNx39 8eN3yXePSJelVozj19wEaq9z6VDhzvEr0ForIWyEXE5qa5rozQa3WxAYewh7SubIBKmO 02PPePyseXuLiMMtCMvFiCLdBEv6hZUEsP/WY2KPh2svytXFAqt8tvoUSmd0DdfZmIR5 sLez1JP4ikgagdRRPh2k9RbfsucGTq+KVdolkDHLvc/Uk58Zr0iw+nxpff3e47GDmBB4 X4Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=b2GsRYGpugbtZSHFD2RurCZ4JW4xZuzTsOfxXrCkfT8=; b=j8m+rx1R4A82WRF154tRoF3qfZ7H/8928WKB+lgKdK8hthKOgfoBhHVD3ZjKdlkFN6 qIRUAJg8l+MEYDnvNTGMPCOcYzXqgyO77P17OIdv2A3W1g3D41bs9ndgkr/2igtt/nwV n+LybYloJunqBq5qqsMGuNLgIVJnR95jxy/ZvzKIIFkJmKZI0iJKOdoUDmMNzIYp1AFg KKGda0X22+gb8W6zb5KucdWQsSKp6GfVHWrJVgrRQmjUJxPwtDDbR8i788riimg7yIT4 USznnUAbvMEE/kI/eEPO9QClzPxIGF/LbhB0u2LR2EbopPZj7FMNM45XTFSl0gri+Epp iTvQ== X-Gm-Message-State: ANoB5pkn42Vkke7OPiGYEafzsxawab8xI72JFq+++wlU3KaX0QRDl5a7 1W2igiPhG3jHJl72h7HVu4zifA== X-Received: by 2002:a17:90a:9a98:b0:219:2f90:4fb3 with SMTP id e24-20020a17090a9a9800b002192f904fb3mr28837193pjp.109.1669997053879; Fri, 02 Dec 2022 08:04:13 -0800 (PST) Received: from google.com (7.104.168.34.bc.googleusercontent.com. [34.168.104.7]) by smtp.gmail.com with ESMTPSA id q42-20020a17090a1b2d00b00219752c8ea5sm3349337pjq.37.2022.12.02.08.04.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Dec 2022 08:04:13 -0800 (PST) Date: Fri, 2 Dec 2022 16:04:09 +0000 From: Sean Christopherson To: "Huang, Kai" Cc: "chenhuacai@kernel.org" , "maz@kernel.org" , "frankja@linux.ibm.com" , "borntraeger@linux.ibm.com" , "farman@linux.ibm.com" , "aou@eecs.berkeley.edu" , "palmer@dabbelt.com" , "paul.walmsley@sifive.com" , "pbonzini@redhat.com" , "dwmw2@infradead.org" , "aleksandar.qemu.devel@gmail.com" , "imbrenda@linux.ibm.com" , "paul@xen.org" , "mjrosato@linux.ibm.com" , "vkuznets@redhat.com" , "anup@brainfault.org" , "oliver.upton@linux.dev" , "kvm@vger.kernel.org" , "cohuck@redhat.com" , "farosas@linux.ibm.com" , "david@redhat.com" , "james.morse@arm.com" , "Yao, Yuan" , "alexandru.elisei@arm.com" , "linux-s390@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "mpe@ellerman.id.au" , "Yamahata, Isaku" , "kvmarm@lists.linux.dev" , "tglx@linutronix.de" , "suzuki.poulose@arm.com" , "kvm-riscv@lists.infradead.org" , "linuxppc-dev@lists.ozlabs.org" , "linux-arm-kernel@lists.infradead.org" , "linux-mips@vger.kernel.org" , "kvmarm@lists.cs.columbia.edu" , "philmd@linaro.org" , "atishp@atishpatra.org" , "linux-riscv@lists.infradead.org" , "Gao, Chao" Subject: Re: [PATCH v2 40/50] KVM: x86: Do compatibility checks when onlining CPU Message-ID: References: <20221130230934.1014142-1-seanjc@google.com> <20221130230934.1014142-41-seanjc@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: 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 Fri, Dec 02, 2022, Huang, Kai wrote: > On Wed, 2022-11-30 at 23:09 +0000, Sean Christopherson wrote: > > --- a/arch/x86/kvm/x86.c > > +++ b/arch/x86/kvm/x86.c > > @@ -11967,6 +11967,11 @@ int kvm_arch_hardware_enable(void) > > ? bool stable, backwards_tsc = false; > > ? > > ? kvm_user_return_msr_cpu_online(); > > + > > + ret = kvm_x86_check_processor_compatibility(); > > + if (ret) > > + return ret; > > + > > ? ret = static_call(kvm_x86_hardware_enable)(); > > ? if (ret != 0) > > ? return ret; > > Thinking more, AFAICT, kvm_x86_vendor_init() so far still does the compatibility > check on all online cpus. Since now kvm_arch_hardware_enable() also does the > compatibility check, IIUC the compatibility check will be done twice -- one in > kvm_x86_vendor_init() and one in hardware_enable_all() when creating the first > VM. > > Do you think it's still worth to do compatibility check in vm_x86_vendor_init()? > > The behaviour difference should be "KVM module fail to load" vs "failing to > create the first VM" IIUC. I don't know whether the former is better than the > better, but it seems duplicated compatibility checking isn't needed? It's not strictly needed, but I think it's worth keeping. The duplicate checking annoys me too, and I considered removing it multiple times when creating this series. But, if there is a hardware incompatibility for whatever reason, failing to load and thus not instantiating /dev/kvm is friendlier to userspace, e.g. userspace can immediately flag the platform as potentially flaky, whereas detecting the likely hardware issue when VM creation fails would essentialy require scraping the kernel logs.