Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932406AbcK1Vw3 (ORCPT ); Mon, 28 Nov 2016 16:52:29 -0500 Received: from mail-qt0-f182.google.com ([209.85.216.182]:34037 "EHLO mail-qt0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755269AbcK1VwS (ORCPT ); Mon, 28 Nov 2016 16:52:18 -0500 MIME-Version: 1.0 In-Reply-To: References: <1479863680-117511-1-git-send-email-dmatlack@google.com> <1479863680-117511-4-git-send-email-dmatlack@google.com> <1168524783.1374944.1479891977484.JavaMail.zimbra@redhat.com> From: David Matlack Date: Mon, 28 Nov 2016 13:51:46 -0800 Message-ID: Subject: Re: [PATCH 3/4] KVM: nVMX: accurate emulation of MSR_IA32_CR{0,4}_FIXED1 To: Paolo Bonzini Cc: kvm list , "linux-kernel@vger.kernel.org" , Jim Mattson , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1121 Lines: 22 On Wed, Nov 23, 2016 at 3:28 PM, David Matlack wrote: > On Wed, Nov 23, 2016 at 2:11 PM, Paolo Bonzini wrote: >> On 23/11/2016 23:07, David Matlack wrote: >>> A downside of this scheme is we'd have to remember to update >>> nested_vmx_cr4_fixed1_update() before giving VMs new CPUID bits. If we >>> forget, a VM could end up with different values for CR{0,4}_FIXED0 for >>> the same CPUID depending on which version of KVM you're running on. I've realized my concern here doesn't make sense. Such a VM would likely fail to enter VMX operation, or #GP (unexpectedly) at some point later. Linux, for example, does not appear to consult MSR_IA32_VMX_CR4_FIXED1 when determining which bits of CR4 it can use (regardless of whether it is in VMX operation or not). >> >> If userspace doesn't obey KVM_GET_SUPPORTED_CPUID, all bets are off >> anyway, so I don't think it's a big deal. However, if you want to make >> it generated by userspace, that would be fine as well! > > Ok let's generate them in userspace. I'm more inclined to generate them in the kernel, given the above.