Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1231556imm; Fri, 27 Jul 2018 13:29:45 -0700 (PDT) X-Google-Smtp-Source: AAOMgpf2dJdqRS6BfUjHgxp9NlHlATDvXi1ZPNnmQkHt4Wsq4r+lvc26FYPWZUs+jSga0Zsq41YG X-Received: by 2002:a17:902:a5cb:: with SMTP id t11-v6mr7300878plq.71.1532723385189; Fri, 27 Jul 2018 13:29:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532723385; cv=none; d=google.com; s=arc-20160816; b=LZNSs7TR6lptjuTHmbzeg0RDY4WcH/VM8xOW3BGnG+c4U5vAt1CVUpRp1CP4JJbdYm M2/QoHy4Z1m+EoLqfWHrm1VhWUwHZycsDELcShWLnuCzJUcueV6Q82Wv458uVH5bIqdV vUfZgsyXAsBIy1//tkXtLEm7FuyFrSqJ1wiOcLR9vFOOLI1hN0QevHMBAzRPs/u2og70 8m7MAhMidShgPMT3JiDzB1kBve05wcxCKWwTHqt7man/1AVLTfSTk1R+qiV6YVI3rbyX VrBv0aKpA4EJuQX4NINFvtqFpFVIi4womHyx7St4TfNqb4tLZML+X4roh3qhHlwISGyh SlTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=g8zamwCJhG2JH0emzOpTzwB/JCG1SNTehEBT1BIX3bM=; b=EQzZ3Bq4EKI7hyowpEeYCJsL7oYPjeKwqk5eBUVqWZpnbqdKGjjHquD5XkgHUxMxWA A4XwTp/l7y/FM1X7U69bta53vEVQ5k5SirJO8T1qCt0sXR6vYgrT/nMCyEBmhuwzHyiZ 3IkKhNglLkK8BXRuc/nOfRixi+tgTvbwGBLt31ITa15Xkw1dIvnB5HxRtJks8mJnmpJ2 7Dxil31A6jUwMH3lswZY7d/82K7QeZlbIwFf3QcAWgGUnBM3C8iCSauXOSquvGXOa9Ie 7oqgcuV62MvsbdHinkTOtcfHBnX9nHpPVhRD07iXnAgZm/8iDo8U7BAviFZZ8xbDzhJp kgfw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=SJxUR9m9; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b2-v6si3973631plr.382.2018.07.27.13.29.30; Fri, 27 Jul 2018 13:29:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=SJxUR9m9; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S2389638AbeG0VwO (ORCPT + 99 others); Fri, 27 Jul 2018 17:52:14 -0400 Received: from mail-oi0-f66.google.com ([209.85.218.66]:38295 "EHLO mail-oi0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389584AbeG0VwO (ORCPT ); Fri, 27 Jul 2018 17:52:14 -0400 Received: by mail-oi0-f66.google.com with SMTP id v8-v6so11263310oie.5 for ; Fri, 27 Jul 2018 13:28:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=g8zamwCJhG2JH0emzOpTzwB/JCG1SNTehEBT1BIX3bM=; b=SJxUR9m9y478ApKMcfzSe1i8wG0IVMCwjk0RbQF5zqtvvskwa3kG4wHnupEEaOX73i o4pZADjnPmJyr6zyHbCLCpQo7oRpu1ej99KziYmNiXzYooB1tgQ16me3BdOuee0YClv5 P4gt3fU+kSggSnZBzc/Tr9hsoC8Zr/ozHwreOWPQ1/mfCPdl49JvjCjuiaZ4ZukVrntF X/RnYdJXkP1xct0MJfA3GavQEFENclsw7H+ZNJayeuS5PQTSqmfTknuZKG0PLPWrxP/5 md0qWI8XByayS56WqC44GUycavCQnfu2IHPn3UXWBEx/yuVLDBN4LyayTREmwim6nvYZ bYBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=g8zamwCJhG2JH0emzOpTzwB/JCG1SNTehEBT1BIX3bM=; b=qd9n79Qx262RZ4hgtLGY/c6eWhgMWm+tRdyiMj+q6TACjqvoQjAjVfu2JYir1BIaTD GMKFBPZ1QtWkgt5v2REY9gmAofe7j0EtzJDncH6HeQu3ukdPdcg3iH288uZqXaRSV5Ci lYVYeonYzZWtOAaPFcRYVe9HQpgQaqqT/8LLRoX7sOZjP8F+DhJzxX5r9J46p9uU3B82 Hp9OlvBLuzYeaTj4mjKBvZl3QKWRzk0bX2pIJcX4K+9F7a7b4UCOxD4uCjjXtiMh/xTp 1rZEK5UOIrBTpPHBy+YQUIRYEq8voZSJxeb4VwJuYJYG8odgCb267dgjC1R8CeYnT+/u Kxvw== X-Gm-Message-State: AOUpUlHtel8Lb6YIAOXLzCVBUDF/mR+5ggdD/BaHKdkNXk/xPwg5ef5j R3wPblGoDjOaGSnOdPKQB1m9sCep9NLcfehom1hv1Q== X-Received: by 2002:aca:ec46:: with SMTP id k67-v6mr8600091oih.81.1532723322030; Fri, 27 Jul 2018 13:28:42 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:ac9:3404:0:0:0:0:0 with HTTP; Fri, 27 Jul 2018 13:28:41 -0700 (PDT) In-Reply-To: References: <20170208080917.24320-1-khuey@kylehuey.com> <20170208080917.24320-9-khuey@kylehuey.com> From: Jim Mattson Date: Fri, 27 Jul 2018 13:28:41 -0700 Message-ID: Subject: Re: [PATCH v14 8/9] KVM: x86: virtualize cpuid faulting To: Andy Lutomirski Cc: Kyle Huey , "Robert O'Callahan" , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , X86 ML , Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Jeff Dike , Richard Weinberger , Alexander Viro , Shuah Khan , Dave Hansen , Borislav Petkov , Peter Zijlstra , Boris Ostrovsky , Len Brown , "Rafael J. Wysocki" , Dmitry Safonov , David Matlack , Nadav Amit , Andi Kleen , LKML , user-mode-linux-devel@lists.sourceforge.net, "open list:USER-MODE LINUX (UML)" , Linux FS Devel , "open list:KERNEL SELFTEST FRAMEWORK" , kvm list Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 27, 2018 at 12:41 PM, Andy Lutomirski wrote: > On Wed, Feb 8, 2017 at 12:09 AM, Kyle Huey wrote: >> Hardware support for faulting on the cpuid instruction is not required to >> emulate it, because cpuid triggers a VM exit anyways. KVM handles the relevant >> MSRs (MSR_PLATFORM_INFO and MSR_MISC_FEATURES_ENABLE) and upon a >> cpuid-induced VM exit checks the cpuid faulting state and the CPL. >> kvm_require_cpl is even kind enough to inject the GP fault for us. >> >> Signed-off-by: Kyle Huey >> Reviewed-by: David Matlack >> --- >> ... >> @@ -7613,16 +7636,19 @@ void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event) >> >> kvm_clear_async_pf_completion_queue(vcpu); >> kvm_async_pf_hash_reset(vcpu); >> vcpu->arch.apf.halted = false; >> >> if (!init_event) { >> kvm_pmu_reset(vcpu); >> vcpu->arch.smbase = 0x30000; >> + >> + vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT; >> + vcpu->arch.msr_misc_features_enables = 0; > > Jim, I assume you're worried about this bit? It seems like > msr_platform_info should maybe be initialized to zero to avoid causing > an unintended migration issue. Initializing this bit to zero helps with migration, but then if the CPUID faulting bits in both MSRs are set, userspace has to take pains to ensure that MSR_PLATFORM_INFO is restored first, or the MSR_MISC_FEATURES_ENABLES value will be rejected. I'm also concerned about the 0 in the "Maximum Non-Turbo Ratio" field feeding into someone's calculated TSC frequency.