From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wanpeng Li Subject: Re: [CFT PATCH 2/2] KVM: x86: support XSAVES usage in the host Date: Mon, 24 Nov 2014 10:10:09 +0800 Message-ID: <20141124021009.GB27849@kernel> References: <1416594678-13011-1-git-send-email-pbonzini@redhat.com> <1416594678-13011-3-git-send-email-pbonzini@redhat.com> Reply-To: Wanpeng Li Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Fenghua Yu , stable@vger.kernel.org, Nadav Amit , Andy Lutomirski To: Paolo Bonzini Return-path: Content-Disposition: inline In-Reply-To: <1416594678-13011-3-git-send-email-pbonzini@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org Hi Paolo, On Fri, Nov 21, 2014 at 07:31:18PM +0100, Paolo Bonzini wrote: [...] >+ u64 feature = valid & -valid; >+ int index = fls64(feature) - 1; >+ void *src = get_xsave_addr(xsave, feature); >+ >+ if (src) { >+ u32 size, offset, ecx, edx; >+ cpuid_count(XSTATE_CPUID, index, >+ &size, &offset, &ecx, &edx); >+ memcpy(dest + offset, src, size); The offset you get is still for compact format, so you almost convert compat format to compat format instead of convert compact format to standard format. In addition, I think convert standard format to compact format should be implemented in put path. Regards, Wanpeng Li