Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp98094ybg; Tue, 22 Oct 2019 16:50:54 -0700 (PDT) X-Google-Smtp-Source: APXvYqxI3REpv/0Y7vXbZeGb1SU/rS03ca0vUNR5zSy2Wup9CTMFBI+3Mrbp14v/U63pmxm1SC+0 X-Received: by 2002:aa7:cf81:: with SMTP id z1mr33636473edx.207.1571788254396; Tue, 22 Oct 2019 16:50:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571788254; cv=none; d=google.com; s=arc-20160816; b=RvZ9nRGLqDtthdGq8WvjgDtG32kypzMHFepnV45gWxoH5VH/iEEfu80BOMgB1z3/mk vbuZODm4qXI0w5xaM3bvc7u8LaO+t93ahGCl/m9+l1W1w58UPceLaN/lqLig8WDXWnfN rNM/tSdY7v22RiIuz/jie9ZT6xTDNBXD0CYm+cdAX4xvrCRHeJHZKlm2ysscjEWgUzs5 S1l9IR+S9XGAm8MV1RWJ9WmUVC/QMsQUbAyKkQ0fvB20UAXtBzLlb7SH553vWyTFeBLg ckDJN0+77rj+YDtdzmgr8i8Ub1PN0DQLWDjfr1y4ADZxc3owjQWt8DFTIdRWCf6xn6b+ 6CrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=rea/DHRSCrGgLPoU4mAYwmzHCCk1+Pv2NlrpzE1W51M=; b=ukUVftQssnWJsJ7YJq0qx+4ZyafkJhlpuFthfaEFE6OJTcU8wtzIq7SjVHv6An2nL2 GO5bjJk0utFfSzPEY3+nRa07PTnM0PZVOkr/O40hQgqVs1Rph/bkgnPjTO4T2wgrpfsS nl02xVdXY07qOXGtkQCGTZR4p4F50EQyM6/xqvBwHZSyFl89Wcbn5QVuNvqI1mKS54dn T+Ko9ibI60j6seh4pfk1AqS1aiSVRujdnmxBW/HE2pLigvyJR9ddj947NQAzt0rBiypn V40RYGoYO5zUHck55vW2RL/goZqi/qn72apQfo9Xn2bu1HTfLl227xzjJuo9GPZ3Ke4w MpxQ== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z5si14895652edk.157.2019.10.22.16.50.16; Tue, 22 Oct 2019 16:50:54 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389284AbfJVUNZ (ORCPT + 99 others); Tue, 22 Oct 2019 16:13:25 -0400 Received: from mga02.intel.com ([134.134.136.20]:46875 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387645AbfJVUNZ (ORCPT ); Tue, 22 Oct 2019 16:13:25 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Oct 2019 13:13:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,217,1569308400"; d="scan'208";a="188017062" Received: from sjchrist-coffee.jf.intel.com (HELO linux.intel.com) ([10.54.74.41]) by orsmga007.jf.intel.com with ESMTP; 22 Oct 2019 13:13:21 -0700 Date: Tue, 22 Oct 2019 13:13:21 -0700 From: Sean Christopherson To: Yang Weijiang Cc: Jim Mattson , kvm list , LKML , Paolo Bonzini , "Michael S. Tsirkin" , Radim =?utf-8?B?S3LEjW3DocWZ?= Subject: Re: [PATCH v7 5/7] kvm: x86: Add CET CR4 bit and XSS support Message-ID: <20191022201321.GN2343@linux.intel.com> References: <20190927021927.23057-1-weijiang.yang@intel.com> <20190927021927.23057-6-weijiang.yang@intel.com> <20191017195642.GJ20903@linux.intel.com> <20191018015802.GD2286@local-michael-cet-test> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191018015802.GD2286@local-michael-cet-test> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 18, 2019 at 09:58:02AM +0800, Yang Weijiang wrote: > On Thu, Oct 17, 2019 at 12:56:42PM -0700, Sean Christopherson wrote: > > On Wed, Oct 02, 2019 at 12:05:23PM -0700, Jim Mattson wrote: > > > > + u64 kvm_xss = kvm_supported_xss(); > > > > + > > > > + best->ebx = > > > > + xstate_required_size(vcpu->arch.xcr0 | kvm_xss, true); > > > > > > Shouldn't this size be based on the *current* IA32_XSS value, rather > > > than the supported IA32_XSS bits? (i.e. > > > s/kvm_xss/vcpu->arch.ia32_xss/) > > > > Ya. > > > I'm not sure if I understand correctly, kvm_xss is what KVM supports, > but arch.ia32_xss reflects what guest currently is using, shoudn't CPUID > report what KVM supports instead of current status? > Will CPUID match current IA32_XSS status if guest changes it runtime? Not in this case. Select CPUID output is dependent on current state as opposed to being a constant defind by hardware. Per the SDM, EBX is: The size in bytes of the XSAVE area containing all states enabled by XCRO | IA32_XSS Since KVM is emulating CPUID for the guest, XCR0 and IA32_XSS in this context refers to the guest's current/actual XCR0/IA32_XSS values. The purpose of this behavior is so that software can call CPUID to query the actual amount of memory that is needed for XSAVE(S), as opposed to the absolute max size that _might_ be needed. MONITOR/MWAIT is the other case that comes to mind where CPUID dynamically reflects configured state, e.g. MWAIT is reported as unsupported if it's disabled via IA32_MISC_ENABLE MSR.