From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Peng Subject: Re: [PATCH] target-i386: kvm: cache KVM_GET_SUPPORTED_CPUID data Date: Tue, 14 Jun 2016 16:31:37 +0800 Message-ID: <20160614083136.GD21465@pengc-linux.bj.intel.com> References: <1465784487-23482-1-git-send-email-chao.p.peng@linux.intel.com> <0ad19d18-4ee1-0450-c3fa-b64b34e2cc66@redhat.com> <20160614050128.GA21465@pengc-linux.bj.intel.com> <7ce88285-2d4c-7b4a-767a-7e6c9eb25f2b@redhat.com> Reply-To: Chao Peng Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, Eduardo Habkost , Marcelo Tosatti , Richard Henderson To: Paolo Bonzini Return-path: Received: from mga11.intel.com ([192.55.52.93]:5158 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750964AbcFNImX (ORCPT ); Tue, 14 Jun 2016 04:42:23 -0400 Content-Disposition: inline In-Reply-To: <7ce88285-2d4c-7b4a-767a-7e6c9eb25f2b@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Tue, Jun 14, 2016 at 10:21:41AM +0200, Paolo Bonzini wrote: > > > On 14/06/2016 07:01, Chao Peng wrote: > >> > > >> > Which are the CPUID leaves for which KVM_GET_SUPPORTED_CPUID is not > >> > stateless? I cannot find any. > > I have though leaf 0xd, sub leaf 1 is not stateless, as the size of > > xsave buffer(EBX) is based on XCR0 | IA32_XSS. But after looking KVM > > code more carefully, seems I was wrong. The code calculates EBX with the > > host xcr0 but not guest xcr0, nor guest IA32_XSS (not sure if this is > > the correct behavior), so it can always returns constant data on a > > certain machine. > > Indeed, KVM computes the correct value at runtime, but > KVM_GET_SUPPORTED_CPUID runs before there is a value for guest XCR0 or > guest IA32_XSS. Yes, this is the point. > > Thanks, I've queued the patch for QEMU 2.7. Thanks :) Chao