Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp3792179pxb; Sun, 7 Feb 2021 23:32:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJzCKWCBDQ1MHFGdANcj+3xM7cEMK+FNQaeJw0rCoEZJ2sS4M6f0uOgvfU35iBtQUC/Ip2CC X-Received: by 2002:a17:906:145b:: with SMTP id q27mr15955730ejc.432.1612769519798; Sun, 07 Feb 2021 23:31:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612769519; cv=none; d=google.com; s=arc-20160816; b=fWyzCfBYOqNBS1CKqPBCyvi5n3cYYTUqZd89IAF91pqMBCOCemUIgWSYenhmPhqo5s j+r78fJ+5zP9462Xx9mYjfMDiwizraBfXDBjixcNcqcZQjrk6nfiI83PEz9MHudQCDzp tBpIqUuv9QsxCzGTCl0r4FFTnXT+NqUfIzuCRcqltCqzokzO3RyPPWz9jFQsk3l6RhEJ G/tnDRfa4ln/6WwF/Z6Ri8PVIKHqbcxi/KFS10GosF4cJCh/8Nd4JTq5COfxWsrw2yvn 08/E3ASxgZY5fmGriwAh9day4zFSR3CtNSBQtBzo9/1fdfhibsHHYp3pxOXR9zkxJcg/ Brkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from:ironport-sdr :ironport-sdr; bh=VBsZg3WQuF2ntmPk+MQh1J4lIbI5izD73IP3gdTBKtg=; b=L68Oh9d/Cey09Myfi7HUOrfouG9HN7wPYjM+3Y7j1hsZb27KvP3+r6SnFYY+iBxm3x tTiKEddcEhacF/+ph+lSMViYDW1aO24bXLBxyoHBCYTTV082u5Z9bQtRpxaVzQJkfzpa Bz5lh+y+FpINrh50hXuDwL4jykrDHnQAVs8G1Z3RawNGJA+8jEe6qrC1CyHAVpAY4UVz MHY1JN6t/qO3fsezSfICRxnpbrTAyAo/xK/6qFqQOu1Dxbj8sKiPhMUGHnaNkGFgX2cG YiywKROOF3+Aey0hNl+8gSPuZEVJj6E0PcAgM9SgfbF1rKmHPnJCdTe4EmkgdGGejSpa AvTw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x23si10590306ejv.558.2021.02.07.23.31.34; Sun, 07 Feb 2021 23:31:59 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229870AbhBHHam (ORCPT + 99 others); Mon, 8 Feb 2021 02:30:42 -0500 Received: from mga03.intel.com ([134.134.136.65]:32276 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229608AbhBHHal (ORCPT ); Mon, 8 Feb 2021 02:30:41 -0500 IronPort-SDR: VQu+7EA7SUiUxWGk91libdkM03jyburFS/UilediU/ZS5h4xBS1XkxvTBuqwFkSViREXNf43x9 TgCnj7HmLB/w== X-IronPort-AV: E=McAfee;i="6000,8403,9888"; a="181736692" X-IronPort-AV: E=Sophos;i="5.81,161,1610438400"; d="scan'208";a="181736692" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Feb 2021 23:28:55 -0800 IronPort-SDR: XFU5j01Wyd9Xl9CirZrzX3awEEYk9O/BrVwj5noMPi6TE3nTY3u+dDvdRkvo11bz1iFUznwxDb cc9043pRazDA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,161,1610438400"; d="scan'208";a="398280466" Received: from vmmteam.bj.intel.com ([10.240.193.86]) by orsmga007.jf.intel.com with ESMTP; 07 Feb 2021 23:28:52 -0800 From: Jing Liu To: pbonzini@redhat.com Cc: Sean Christopherson , 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: [PATCH v1] kvm: x86: Revise guest_fpu xcomp_bv field Date: Mon, 8 Feb 2021 11:16:59 -0500 Message-Id: <20210208161659.63020-1-jing2.liu@linux.intel.com> X-Mailer: git-send-email 2.18.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Bit 63 of the XCOMP_BV field indicates that the save area is in the compacted format and the remaining bits indicate the states that have space allocated in the save area, not only user states. Since fpstate_init() has initialized xcomp_bv, let's just use that. Signed-off-by: Jing Liu --- arch/x86/kvm/x86.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 1b404e4d7dd8..f115493f577d 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -4435,8 +4435,6 @@ static int kvm_vcpu_ioctl_x86_set_debugregs(struct kvm_vcpu *vcpu, return 0; } -#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; /* * Copy each region from the non-compacted offset to the @@ -9912,9 +9911,6 @@ static void fx_init(struct kvm_vcpu *vcpu) return; fpstate_init(&vcpu->arch.guest_fpu->state); - if (boot_cpu_has(X86_FEATURE_XSAVES)) - vcpu->arch.guest_fpu->state.xsave.header.xcomp_bv = - host_xcr0 | XSTATE_COMPACTION_ENABLED; /* * Ensure guest xcr0 is valid for loading -- 2.18.4