Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp4234122pxb; Mon, 8 Feb 2021 11:03:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJz1Uvpw2qAl0Y3VTUGEdGJDaNt9g3vypoKWEvWlDHJBvCxzC1nr3fOPSa4o/Oxai+rhPYAI X-Received: by 2002:a05:6402:2553:: with SMTP id l19mr18253458edb.326.1612810988732; Mon, 08 Feb 2021 11:03:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612810988; cv=none; d=google.com; s=arc-20160816; b=aVLJs3qqKA17kI+4n62rQZUIg94hIzi+p5rcXruEnrpeqSPIv3xKnBVinumnb8vuUc bAMdhprjPY53v0NqxXgFMUTFm6lfLmx6Cgt5vHvHW0c7AG/StiAOy/YqG9aq0T26Alay sfitzPr/dCrJz6LQ3WFwE+0UQpXJY4AZ1GS5JVxroOii5k9EdipZe/ikKdxns7xCzeEc t1aIhG21pq5AWEcTu9JH4TG4dw6K/ySQB0+40v4/1VXE6p3xg44Cm7K9AJw+bzU38I/Y U97S196Nea5e1CDjegBa7n9JSV5X8VxdFmZZnL/d0oLuS3Jxjk6m3zOQrNxBxThswX7M YDHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=5JsC9ioQB1vDAxY9MYIi/5R/vmSosGr84IdnVT/rTxk=; b=iUkyR+itbJTpyERXYpMk8SRnN8vY2IC/CPO4NI6meFoDZLBcg69wRzj51SvtgFBgm+ 0gseqDStDZM6TlxlRoH2N9LWci2q+nVgKmK3r4Op+Egcy5w8HEM02ecYxpLhlZhPf19r qKoTKv9lIOdQr6gNZ9xheo8ZvuQoPw82g75wk+mDJ7K/Bt6T1yQYPcKdSxmtkunrU3Am rL+y/VaZceVQuNaj9DMqhbnVAPhva2NE8fwtBNri7bpWU7OO1Si5NAHevt1wPqW73QOR Gtk2QrDY80mlqPvbMOzXqJ6/3HTbEm1IrHFSol27Us8q1hW2uKOJJbcuMB+sYaifZpW8 HDDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=J3uwmNAu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id fi28si10969180ejb.379.2021.02.08.11.02.45; Mon, 08 Feb 2021 11:03:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=J3uwmNAu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S232833AbhBHTCO (ORCPT + 99 others); Mon, 8 Feb 2021 14:02:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52428 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234953AbhBHRZU (ORCPT ); Mon, 8 Feb 2021 12:25:20 -0500 Received: from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com [IPv6:2607:f8b0:4864:20::52f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1134FC061788 for ; Mon, 8 Feb 2021 09:24:38 -0800 (PST) Received: by mail-pg1-x52f.google.com with SMTP id c132so10658218pga.3 for ; Mon, 08 Feb 2021 09:24:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=5JsC9ioQB1vDAxY9MYIi/5R/vmSosGr84IdnVT/rTxk=; b=J3uwmNAuNWSn8lOfYgRjO3Pu/lh2GnaaTMnYiePeXLW5Olv6sMFKeYLUwQtU8d3Axb urjqcZnFc7KYsR0FqZDNNNZmALgrY94fbC4AYfUf52cG4WLCQv4UwomS5nUL6KgS/5ZX n1kX4SQk6KtucVdS2UCsrOTKNbjutcE/9AuC0MdqEEbExMSzQGavXLyx9ed4YzAchkvX GWRK9VTf9S9q3fgfBReEVaAIKu9o95KapCWHhNcax26k3xp/P9spsfdBm97BKinxolVR qDIRR1UVzF317G8WVLDrNmFh2AaRjIMgGFqk+z6W+SZf0Vs00MQiEAtPYXX0ay7jpJch Dwaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=5JsC9ioQB1vDAxY9MYIi/5R/vmSosGr84IdnVT/rTxk=; b=i8yBJtupyddcONAUIhUKCVCXNcocuVbqK6rBenscNRphqLncFrVbvQketx0JBYTbNQ IC/7tv9s+5X16Z1rKW6uYWhbyBp+WSGc1/iQ37OzQx6x8rQdJhB2ekhmPe1njb05BEhU z6KIG/NbUHLNe88OVhTWv9Nc6W7CTZzgX7p8iV8+Ypuf3MT5NKmsRCK0hs2EkzQsAijO Pja9K+4yfe7O4hVaGcAcLBwCQFIExHYxe4X6bwItyVpTJMrSWBfj+iqpjK0a/NGQqx// iAaJtGnDX5usqW5o2p6+J2wGOtR9MjLQOdIc7WQ/OZeMBDbNtwWSsdbsLIsQ80U6b3KL MzzQ== X-Gm-Message-State: AOAM5335iyKMRG4gn1Mu1bAbH4ajJOBJvijrcGmsgUXu88b2rotwKkSR 1XhhxsC9OOu5imuPFRwJJ5zoGA== X-Received: by 2002:a63:c4a:: with SMTP id 10mr18426228pgm.397.1612805077439; Mon, 08 Feb 2021 09:24:37 -0800 (PST) Received: from google.com ([2620:15c:f:10:e4db:abc1:a5c0:9dbc]) by smtp.gmail.com with ESMTPSA id y75sm19106156pfg.119.2021.02.08.09.24.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Feb 2021 09:24:36 -0800 (PST) Date: Mon, 8 Feb 2021 09:24:30 -0800 From: Sean Christopherson To: Dave Hansen Cc: Jing Liu , pbonzini@redhat.com, Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Thomas Gleixner , Ingo Molnar , Borislav Petkov , x86@kernel.org, "H. Peter Anvin" , kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v1] kvm: x86: Revise guest_fpu xcomp_bv field Message-ID: References: <20210208161659.63020-1-jing2.liu@linux.intel.com> <4e4b37d1-e2f8-6757-003c-d19ae8184088@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4e4b37d1-e2f8-6757-003c-d19ae8184088@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Feb 08, 2021, Dave Hansen wrote: > On 2/8/21 8:16 AM, Jing Liu wrote: > > -#define XSTATE_COMPACTION_ENABLED (1ULL << 63) > > - > > static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu) > > { > > struct xregs_state *xsave = &vcpu->arch.guest_fpu->state.xsave; > > @@ -4494,7 +4492,8 @@ static void load_xsave(struct kvm_vcpu *vcpu, u8 *src) > > /* Set XSTATE_BV and possibly XCOMP_BV. */ > > xsave->header.xfeatures = xstate_bv; > > if (boot_cpu_has(X86_FEATURE_XSAVES)) > > - xsave->header.xcomp_bv = host_xcr0 | XSTATE_COMPACTION_ENABLED; > > + xsave->header.xcomp_bv = XCOMP_BV_COMPACTED_FORMAT | > > + xfeatures_mask_all; This is wrong, xfeatures_mask_all also tracks supervisor states. > Are 'host_xcr0' and 'xfeatures_mask_all' really interchangeable? If so, > shouldn't we just remove 'host_xcr0' everywhere? I think so? But use xfeatures_mask_user(). In theory, host_xss can also be replaced with the _supervisor() and _dynamic() variants. That code needs a good hard look at the _dynamic() features, which is currently just architectural LBRs. E.g. I wouldn't be surprised if KVM currently fails to save/restore arch LBRs due to the bit not being set in host_xss.