From patchwork Tue Jan 10 18:58:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mingwei Zhang X-Patchwork-Id: 41588 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2918107wrt; Tue, 10 Jan 2023 11:02:39 -0800 (PST) X-Google-Smtp-Source: AMrXdXs/wFuL6jr6Rk18Vww42lYc+byHPOaX49jMNsajd3s5FXQnjAh+XMHxLEbZPhHB2PSggAPt X-Received: by 2002:a17:902:edd1:b0:192:50fe:504a with SMTP id q17-20020a170902edd100b0019250fe504amr64671058plk.16.1673377359017; Tue, 10 Jan 2023 11:02:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673377358; cv=none; d=google.com; s=arc-20160816; b=waAp1u9xfttT4X/4NU3+2AG644JZT2QgsW3kY9npwihcqWR/zVtV5wl7i/yvtd+meX 50+8YrAsstd9z8eJKWO8P9H30YTjaKRkQZySBFSoWxfEogO/n6WTBXQ1VuzwnbVnkOPh 6yDkfYYX1VcnhtYNLuPWTK1F7nD0zvYtCIHx1VReiEt5nJItnSEB3/cxeCDJN9V92A9w ELrye3B0lokGfwwHjR7JTm6SCMpVvVQj2X3v43lwdiyCQrPiLP//7Ow1HxVQgfY4xi5D I4osGlSSyGwdH+cOeHjbgFMyY2Ndd6Yu3VajFbtNomdMJhMGbWmiNoDMLnLYllQoRwqI q7LQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=aZj5nkPmUZ/+3WFmXIOMi6myvBqiEyZ2i8jBeyd2yO4=; b=bFZTQ5z8H3CJMjvdtWBj3lxznW5ZoAdztE1L2KemzUSc/MNkyKcusn03Jo5yHUQOPa By35cAU/UUkNmH6DI6XJbOj2nxuYhGO78h2rd5BcryRC2O3FNJqUz77NsjjGouE1hh9H Ywdc7bOrKqG5tNoCpU/bWIF/b0nc1dI5NNhaQM4KIujRGe+jIV2qtuUnChlQ0FvtJLQ7 qYhcE4hf0LUbixhwou7zVNiV55nBHhRMVQKq0UTG7m/NJEO+9Y8BNoZfJL7eaFJnPIuW uqUbrySphW8cLuGFS8dAZfHIcw2+NE/qH4HAMJMwUyGmSNHVyAUesw8RO74dJirFlVU+ 2Q4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=kNaE2hOu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j6-20020a170903024600b00192d4c98f87si12697066plh.308.2023.01.10.11.02.24; Tue, 10 Jan 2023 11:02:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=kNaE2hOu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S239549AbjAJS7Q (ORCPT + 99 others); Tue, 10 Jan 2023 13:59:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42682 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233693AbjAJS6f (ORCPT ); Tue, 10 Jan 2023 13:58:35 -0500 Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com [IPv6:2607:f8b0:4864:20::449]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9CD4D3896 for ; Tue, 10 Jan 2023 10:58:28 -0800 (PST) Received: by mail-pf1-x449.google.com with SMTP id b196-20020a621bcd000000b0058a63dc105eso1785667pfb.6 for ; Tue, 10 Jan 2023 10:58:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=aZj5nkPmUZ/+3WFmXIOMi6myvBqiEyZ2i8jBeyd2yO4=; b=kNaE2hOuqT1CeKskGFJKoOqj1OzySQvfQXderb/BCwvvYx5sqali1h75XgPDEKkhUn VIT5fTYFceymj4MKly4dsmGYvDWMP8DpxCmir5/1KFrjl5S/fR0WTxv9jfUF+acTIsNv ui49EcL2pMQodBk+nFC4Q3oGR//qesADTZKOUHNq5sKuEFL55iNAMpbVIj25BCy+XAr+ HoVRJR/O1nOBZhHQZbbL9+Cz0f52tZQIgSqWtmjeT4AavJb7pCjzOUo8bUIOktA2HDpu 9SAcCVSZBoVGOcHUMOwpS8hmbKGUgVjMNMFOg2O/zaSSiUG1MbimdKOOqUyOlHXCRVhJ 5hDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=aZj5nkPmUZ/+3WFmXIOMi6myvBqiEyZ2i8jBeyd2yO4=; b=Mnzw/7yhtXB6qoaETtgNaHTfgRHTGkcnixZLLmbbFFG5Dfjs8N6BcujgO2KCP4tw23 fWtyu9T/pDM2bZAr0WVhr7XX+TJbS9MUK1Es94iNSKWYtcy/P/AZVTb5W+3HJv34rTzJ DvyduZZR6ecIR1YW4K13If+4q+/uY1CkBKf7jDzr8SH4vpRjmK1Ly8RFtfuDRKxtyHdP fAMk0IMN1KBzNZ3IeRje1kOieynOJXHNqMwYqcheDEV/BAgyWdrVwfWPj5Z46g5Fr6mt z8zBkrwIrNczKOyW9K3CNSSaFaGxUM6lrwuww/cUaOOej+9h7RgoXJKgf8xi7ZCkvwLo NAWQ== X-Gm-Message-State: AFqh2kr260ZHu1bIQdbgOmUb53jgb5zn60wzQRzWLz0VFZwXIjwKdpSQ ovP7RdLdsUelc8radVmJwSLMozfyjpnQ X-Received: from mizhang-super.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:1071]) (user=mizhang job=sendgmr) by 2002:a17:902:e045:b0:193:1c8f:1835 with SMTP id x5-20020a170902e04500b001931c8f1835mr899892plx.62.1673377108205; Tue, 10 Jan 2023 10:58:28 -0800 (PST) Reply-To: Mingwei Zhang Date: Tue, 10 Jan 2023 18:58:20 +0000 In-Reply-To: <20230110185823.1856951-1-mizhang@google.com> Mime-Version: 1.0 References: <20230110185823.1856951-1-mizhang@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20230110185823.1856951-2-mizhang@google.com> Subject: [PATCH 1/4] KVM: selftests: x86: Fix an error in comment of amx_test From: Mingwei Zhang To: kvm@vger.kernel.org Cc: linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Jim Mattson , Venkatesh Srinivas , Aaron Lewis , Mingwei Zhang X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754663337834206882?= X-GMAIL-MSGID: =?utf-8?q?1754663337834206882?= After the execution of __tilerelease(), AMX component will be in INIT state. Therefore, execution of xsavec saving the AMX state into memory will cause the XSTATE_BV[18] cleared in xheader. However, the XCOMP_BV[18] will remain set. Fix the error in comment. Cc: Jim Mattson Cc: Venkatesh Srinivas Cc: Aaron Lewis Signed-off-by: Mingwei Zhang --- tools/testing/selftests/kvm/x86_64/amx_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/kvm/x86_64/amx_test.c b/tools/testing/selftests/kvm/x86_64/amx_test.c index bd72c6eb3b67..16533949a189 100644 --- a/tools/testing/selftests/kvm/x86_64/amx_test.c +++ b/tools/testing/selftests/kvm/x86_64/amx_test.c @@ -204,7 +204,7 @@ static void __attribute__((__flatten__)) guest_code(struct tile_config *amx_cfg, GUEST_SYNC(4); __tilerelease(); GUEST_SYNC(5); - /* bit 18 not in the XCOMP_BV after xsavec() */ + /* bit 18 not in the XSTATE_BV after xsavec() */ set_xstatebv(xsave_data, XFEATURE_MASK_XTILEDATA); __xsavec(xsave_data, XFEATURE_MASK_XTILEDATA); GUEST_ASSERT((get_xstatebv(xsave_data) & XFEATURE_MASK_XTILEDATA) == 0); From patchwork Tue Jan 10 18:58:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mingwei Zhang X-Patchwork-Id: 41587 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2917826wrt; Tue, 10 Jan 2023 11:02:11 -0800 (PST) X-Google-Smtp-Source: AMrXdXueMJLAkHaEq1UDklqyszS8PF+/V6cnQpSu9YVSd8kgtBp9q800p0veCCsQVOu8vD7PhjHA X-Received: by 2002:a05:6a21:3d0d:b0:a3:8d47:6aa9 with SMTP id bi13-20020a056a213d0d00b000a38d476aa9mr94698739pzc.34.1673377331132; Tue, 10 Jan 2023 11:02:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673377331; cv=none; d=google.com; s=arc-20160816; b=xtf59iLdcG1tEFAx92jlyhx9+E2fuCFI3mFoKq1+V7ohJ3NtHe3JWN+0pUWL+u2yT1 yqtxUUn+rkMqBr8rsh7Ftio7SVJn05V50nZup9bcIkzOJ50XFsWKs2/uxirOq15wTzWU 2dehvICqpAoL6tzmlnaeAS7y1WYsU9mOEzjkvHVH7PgSGPKyNcI6XiWOwyNrBfi8bTz7 Fz3vCRPDI+fubGZBztsy1CmaGTEkRZAME3hWP7wYm2Sk1Q7nmfH8CHiOS3uivNN4yALE HeKMwrVgl/szAy2MJTO5BNmBjYPNy0SavJjKXdSrL+VvlGxKkjvz+yhiRSXhPd2h6ePH AxWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=3Kllhy+XCjHqoEtvfgHpVkDHrVNguIhBfnG2gA6pKcs=; b=nvA9EjG0hexok9VSgbmh27aRF4Wo4bV63fOeKqbi+hAfSmX8DBXG118QPOdbOtdqVB +itrWkLQA8eFnPsSsfd5dcb+AYoMoF1xS8Io+N/Jm7TD8oXe1KsC+pKzDxAt4yiaDmGt QKrN8xb3BBNfpjMRfOUk+DOzIjBJuH9j1TLncgC6frYrVipV4o6qNyNyJrkA/lrCXvkM LQutrr98eZYhfFy/A3VqbTwMWLh4t61LcZgy4NYVRUCISmowYrkXNyT15wvYAkHmCi7a jx/20YjplKXPBrubjKIorlfWW4M0q0CC0oZ+P6vTPFYuKNHlM871wPombseVgp7N1UzS BpkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=bePXYChw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q11-20020a6557cb000000b00491ad1ca2f1si12568428pgr.836.2023.01.10.11.01.57; Tue, 10 Jan 2023 11:02:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=bePXYChw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S235230AbjAJS7J (ORCPT + 99 others); Tue, 10 Jan 2023 13:59:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41902 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239782AbjAJS6g (ORCPT ); Tue, 10 Jan 2023 13:58:36 -0500 Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com [IPv6:2607:f8b0:4864:20::549]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 47B4E5F7A for ; Tue, 10 Jan 2023 10:58:30 -0800 (PST) Received: by mail-pg1-x549.google.com with SMTP id g18-20020a63f412000000b004aef17e314cso3935776pgi.21 for ; Tue, 10 Jan 2023 10:58:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=3Kllhy+XCjHqoEtvfgHpVkDHrVNguIhBfnG2gA6pKcs=; b=bePXYChwkQOZNK0AQ+5TcDEnhI5FHwYYdzXTv5PELbTA80AbZGfbPgADOF0yr/OMjf H3g5h1RaztZ1SlWgdgAs1x/EmvJ819PgotnllZnKdfYLCGBhMh9MhVSQyBQCTypSE2tR aV7mM1Zi3YO6IXtApA1uq2WW3PEfDn0U9AllV0N4aTqcRUsMZEC1MWVCSZqWJ8QOoOO+ PvItS+Cwhm24ba4DROZfoWv2w924oEmPULO2nDFF1vok3QsdEMF5yPTD4JopsLWWA7Kq Rs/1aqJf1oac3hB/X/0kOTngPb97uywso+p8Qat27rZAgf4+9S2HaArrSz0cF1PRKGCm l1bA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=3Kllhy+XCjHqoEtvfgHpVkDHrVNguIhBfnG2gA6pKcs=; b=sh8T3DO0FfkXYqXiMhrXNKgd1uv3434x/O2MgT5ydryg8AGHyAiA2P8eq212iCX6+R S9iAaHWB5CuY6iZCSWvLeKqbuOU8nYK6kln6vfEk0skFh9mO86NSNatwW3SwL442hHbv DTNTRXpiZtJjivxY7X6oYP/eahhsvngDMNnd8jrC3voJxDQ6K39UDAb8faBqabtH3Jm1 CtKQgypickD4hjCOB4mVMeptmQW3qaO0PbczJvOhvn4MGhmxCUxV2nVrMgnvmzsjZvh6 czDAkTRyLziEjjDWRfUqKcv8baOYguxIvzr1DTSTQ7+hKk22K+5rqlmqW56LEVVCR6l3 4Y2g== X-Gm-Message-State: AFqh2krmYDG+NBOmOKxk6Gpak6S46y6JFGH/mybOILrgKn9HF+bbYtVT rF8sGvgXjKtlFb9ebc7Xx7itiysbfRQN X-Received: from mizhang-super.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:1071]) (user=mizhang job=sendgmr) by 2002:a17:902:ef95:b0:192:97d1:a4d8 with SMTP id iz21-20020a170902ef9500b0019297d1a4d8mr3704144plb.74.1673377109836; Tue, 10 Jan 2023 10:58:29 -0800 (PST) Reply-To: Mingwei Zhang Date: Tue, 10 Jan 2023 18:58:21 +0000 In-Reply-To: <20230110185823.1856951-1-mizhang@google.com> Mime-Version: 1.0 References: <20230110185823.1856951-1-mizhang@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20230110185823.1856951-3-mizhang@google.com> Subject: [PATCH 2/4] KVM: selftests: x86: Add check of IA32_XFD in amx_test From: Mingwei Zhang To: kvm@vger.kernel.org Cc: linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Jim Mattson , Venkatesh Srinivas , Aaron Lewis , Mingwei Zhang X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754663308290684950?= X-GMAIL-MSGID: =?utf-8?q?1754663308290684950?= When #NM is triggered, the handler needs to ensure the exception is triggered by AMX by checking IA32_XFD_ERR and not because of CR0.TS[bit 3] is 1. Note that the value of IA32_XFD_ERR comes from "the logical AND of the IA32_XFD MSR and the bitmap corresponding to the state components required by the faulting instruction." (Intel SDM vol 1. Section 13.14) Add the missing check of CR0.TS before checking the value of IA32_XFD_ERR. In addition, add an extra check to IA32_XFD to ensure the behavior is consistent with the AMX archtecture. In addition, repeat the checks across context switch to ensure the values of IA32_XFD and IA32_XFD_ERR are well preserved. Signed-off-by: Mingwei Zhang --- tools/testing/selftests/kvm/x86_64/amx_test.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/testing/selftests/kvm/x86_64/amx_test.c b/tools/testing/selftests/kvm/x86_64/amx_test.c index 16533949a189..b2369f956fea 100644 --- a/tools/testing/selftests/kvm/x86_64/amx_test.c +++ b/tools/testing/selftests/kvm/x86_64/amx_test.c @@ -226,9 +226,12 @@ void guest_nm_handler(struct ex_regs *regs) { /* Check if #NM is triggered by XFEATURE_MASK_XTILEDATA */ GUEST_SYNC(7); + GUEST_ASSERT((get_cr0() & X86_CR0_TS) == 0); GUEST_ASSERT(rdmsr(MSR_IA32_XFD_ERR) == XFEATURE_MASK_XTILEDATA); + GUEST_ASSERT((rdmsr(MSR_IA32_XFD) & XFEATURE_MASK_XTILEDATA) == XFEATURE_MASK_XTILEDATA); GUEST_SYNC(8); GUEST_ASSERT(rdmsr(MSR_IA32_XFD_ERR) == XFEATURE_MASK_XTILEDATA); + GUEST_ASSERT((rdmsr(MSR_IA32_XFD) & XFEATURE_MASK_XTILEDATA) == XFEATURE_MASK_XTILEDATA); /* Clear xfd_err */ wrmsr(MSR_IA32_XFD_ERR, 0); /* xfd=0, enable amx */ From patchwork Tue Jan 10 18:58:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mingwei Zhang X-Patchwork-Id: 41589 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2918207wrt; Tue, 10 Jan 2023 11:02:49 -0800 (PST) X-Google-Smtp-Source: AMrXdXsZPalRzUkPencXyJPu5M73VvOEFnwrUifvKp5pd53jFveFWXNOopgfGdQvjAur0A61eyDO X-Received: by 2002:a17:902:ed8c:b0:192:9022:87b4 with SMTP id e12-20020a170902ed8c00b00192902287b4mr44539354plj.40.1673377368774; Tue, 10 Jan 2023 11:02:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673377368; cv=none; d=google.com; s=arc-20160816; b=LANiqFPK+xUYqWM6bXdovTFFmY6wGfCgs4e5Ide+ccm/HZHzhCkbd1sbN47MGk2yYm PIWLSv3NHC1CjfV2a7Y0hvcx4w5OyYDW0hmhFuzkoF5BWr75vXO7LAcXdiHCRcaCWJsu TiTGZkLqzSr2gCwfoXZV/WMmsxaBOVH4pDexQCq+jX/q08puELtsVS+UGHONkBXblAaZ V2GSzntMqAcLa82aP+h5GHDNy4OXSGULRTRIyZaO0OtyW5ZZEJjjdchciKIrJeXbjQsl S6zriD+MACJRIhGfiyzrFOcDcJfG3PdNWQFIheIxF2+QxX9W0VL3vmrvhnESt7v9lhok 9K0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=upUt0tkjVVo5kujG2THDyS9VuwSTirZ5ySsbyf+a2Vk=; b=MkEhBsArZMoBn/yDHds8siKa186ude3HDAVR/o7912lfDdlLKU99G/ruyGp3KxWx3v xwTWZLWEYU/x/v7Ib1EKLu5INdQPfbXkP36yd+I1mScwW6mjO7tmucDzkudy/VbQwksT 37OljldknZS+x1AJINIMToOv1/GSJqsMa2CxNhJkNVJ3hEiPpyspCEomgsbPhGyXWSJm plIgj56/K933Ri+Q2hCSwZwIyhs7k/S7QUk/DflE9BvM6xmX0bSype2iLy97gsEM/83o WaXBotB1zQTEneQwEFvIXF+7GFdBD854ST5fhmWjeedVl4ZBCIjqd/txSBqqSdfCczgF w2MA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=TDmjeQs1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g7-20020a1709029f8700b00192a8d6e21csi11729436plq.458.2023.01.10.11.02.36; Tue, 10 Jan 2023 11:02:48 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=TDmjeQs1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S239447AbjAJS7N (ORCPT + 99 others); Tue, 10 Jan 2023 13:59:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42512 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239784AbjAJS6i (ORCPT ); Tue, 10 Jan 2023 13:58:38 -0500 Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com [IPv6:2607:f8b0:4864:20::104a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E63CC18E2F for ; Tue, 10 Jan 2023 10:58:31 -0800 (PST) Received: by mail-pj1-x104a.google.com with SMTP id h1-20020a17090a470100b0022646263abfso5258488pjg.6 for ; Tue, 10 Jan 2023 10:58:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=upUt0tkjVVo5kujG2THDyS9VuwSTirZ5ySsbyf+a2Vk=; b=TDmjeQs1Nx35Pnj9WFsSWVj6CGe4OuCAxxe9Uj2I0XxxteOWSUQ6lF/oPghE4q3D1E zLr973gqSe9z0IT9vS+MLR6tJHwSAReg7cX1R0FW9HzOmYqWOnnKZyG9AahfgNdgDw6S h6hq8qaNf1+r6Cr1qpROqlUJvqnhKvoWtp2O3jC9HoSUkRA/6IS0v1JCetsS+LSO2RRE M+8g4WfEY2Wp+9GCiMMWfWpZ5CNkBnaXtCVGULRsRLZg9MguZNelTRpUpFVODgGVBEG/ sxSvq2ZKnVgjntV7aDOe7nBsabkzLnN/4K7FYwOozz3+oGwXJgovNqB8/VtqFEGS7KTM ZZ2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=upUt0tkjVVo5kujG2THDyS9VuwSTirZ5ySsbyf+a2Vk=; b=JJVk64SFjQi+hW0Swmrvnz2ATTg5bNb5aQBIIhgOa6eHkUHLtDv69KqSZPZlMYEbgT foeqdhJNdntMhC2yf2aSiEOZzeD0+a0Rot0zLLpwKACgdiQ5AlIAOyN/puQnCgHLdmbt inufP/A/fXq1+lalRxmMOSdsj2438xQ6z1bV8EyMTb7TjQHsub9muK2B8DU2u6q7FJjx pANvEwNKnoJ1IDvtd7aurtU2HrfTKoFwqJ/UuiWKPbpp3GOzpCcSB2/ejguE3o58ax+t RTc8jcSbvW7u+MR+oY9+PrRAybZWNRv2/fQ8kHpVHfQCoWRM+m9woYynxjrsT9EazX0E CzJQ== X-Gm-Message-State: AFqh2kpx4kP2GQAt2lTDU5DYSTMlDX2MMwQB4GITsf5HAoEOtc393O1/ q6wgx+RRowKjnW/nigXuD3LbWUSOf57W X-Received: from mizhang-super.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:1071]) (user=mizhang job=sendgmr) by 2002:a17:90a:d350:b0:223:fa07:7bfb with SMTP id i16-20020a17090ad35000b00223fa077bfbmr5690650pjx.38.1673377111533; Tue, 10 Jan 2023 10:58:31 -0800 (PST) Reply-To: Mingwei Zhang Date: Tue, 10 Jan 2023 18:58:22 +0000 In-Reply-To: <20230110185823.1856951-1-mizhang@google.com> Mime-Version: 1.0 References: <20230110185823.1856951-1-mizhang@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20230110185823.1856951-4-mizhang@google.com> Subject: [PATCH 3/4] KVM: selftests: x86: Enable checking on xcomp_bv in amx_test From: Mingwei Zhang To: kvm@vger.kernel.org Cc: linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Jim Mattson , Venkatesh Srinivas , Aaron Lewis , Mingwei Zhang X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754663347727760039?= X-GMAIL-MSGID: =?utf-8?q?1754663347727760039?= After tilerelease instruction, AMX tiles are in INIT state. According to Intel SDM vol 1. 13.10: "If RFBM[i] = 1, XSTATE_BV[i] is set to the value of XINUSE[i].", XSTATE_BV[18] should be cleared after xsavec. On the other hand, according to Intel SDM vol 1. 13.4.3: "If XCOMP_BV[i] = 1, state component i is located at a byte offset locationI from the base address of the XSAVE area". Since at the time of xsavec, XCR0[18] is set indicating AMX tile data component is still enabled, xcomp_bv[18] should be set. Complete the checks by adding the assert to xcomp_bv[18] after xsavec. Signed-off-by: Mingwei Zhang --- tools/testing/selftests/kvm/x86_64/amx_test.c | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/kvm/x86_64/amx_test.c b/tools/testing/selftests/kvm/x86_64/amx_test.c index b2369f956fea..18203e399e9d 100644 --- a/tools/testing/selftests/kvm/x86_64/amx_test.c +++ b/tools/testing/selftests/kvm/x86_64/amx_test.c @@ -41,6 +41,12 @@ #define XSAVE_HDR_OFFSET 512 +struct xstate_header { + u64 xfeatures; + u64 xcomp_bv; + u64 reserved[6]; +} __packed; + struct xsave_data { u8 area[XSAVE_SIZE]; } __aligned(64); @@ -160,12 +166,26 @@ static void set_tilecfg(struct tile_config *cfg) static void set_xstatebv(void *data, uint64_t bv) { - *(uint64_t *)(data + XSAVE_HDR_OFFSET) = bv; + struct xstate_header *header = + (struct xstate_header *)(data + XSAVE_HDR_OFFSET); + + header->xfeatures = bv; } static u64 get_xstatebv(void *data) { - return *(u64 *)(data + XSAVE_HDR_OFFSET); + struct xstate_header *header = + (struct xstate_header *)(data + XSAVE_HDR_OFFSET); + + return header->xfeatures; +} + +static u64 get_xcompbv(void *data) +{ + struct xstate_header *header = + (struct xstate_header *)(data + XSAVE_HDR_OFFSET); + + return header->xcomp_bv; } static void init_regs(void) @@ -204,10 +224,14 @@ static void __attribute__((__flatten__)) guest_code(struct tile_config *amx_cfg, GUEST_SYNC(4); __tilerelease(); GUEST_SYNC(5); - /* bit 18 not in the XSTATE_BV after xsavec() */ + /* + * After xsavec() bit 18 is cleared in the XSTATE_BV but is set in + * the XCOMP_BV. + */ set_xstatebv(xsave_data, XFEATURE_MASK_XTILEDATA); __xsavec(xsave_data, XFEATURE_MASK_XTILEDATA); GUEST_ASSERT((get_xstatebv(xsave_data) & XFEATURE_MASK_XTILEDATA) == 0); + GUEST_ASSERT((get_xcompbv(xsave_data) & XFEATURE_MASK_XTILEDATA) == XFEATURE_MASK_XTILEDATA); /* xfd=0x40000, disable amx tiledata */ wrmsr(MSR_IA32_XFD, XFEATURE_MASK_XTILEDATA); From patchwork Tue Jan 10 18:58:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mingwei Zhang X-Patchwork-Id: 41590 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2919187wrt; Tue, 10 Jan 2023 11:04:23 -0800 (PST) X-Google-Smtp-Source: AMrXdXv0pffL8BetEXJdgFOq9mmHo5Nmm9b8j1hAzjXV8Bdw2sW6KFtHiqWklX3yOemdSk+VqC61 X-Received: by 2002:a17:90b:716:b0:226:cbb4:1451 with SMTP id s22-20020a17090b071600b00226cbb41451mr18188515pjz.37.1673377463529; Tue, 10 Jan 2023 11:04:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673377463; cv=none; d=google.com; s=arc-20160816; b=tZv5/AfcB2YUqDVEtI/8XaFV+qJd0Xt3uJSdmuwYpZHaJ7jq9TOxyfiEzAB0ogI1la mqTFf84tBpIZHeorApzcLl0F/JAIV0a8NbewjTr6XnmEVp3cSsVrNiBBh0v71ohhJ8z2 l8UxLh7j0E1Dg0qzbtdOVAuFN7U2qUsxLtd7uFKzbSrfyVBlaEGZO7oVGTrXpVZdZzeV syuf4DnbVALzIFCXNUFbFupcTQiLcQ0K1GHXQWShKjVn3y+ji2K8ZEX2sJ6jd4P5u+yN qAecBDIqO5YnoeB3x5IoQRY5ZWQRoS9SVk2J356chOm5nOg0eoBnbkyg51mSH6uMRXkD tv1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=krYhVfxFdN/OVvO7sdngJN4LpQA8BhAq8fwbwKihSS8=; b=liWJLoBBztgkGkJL/C2vGGldEbCNnTHqwlkvrdaDpdmCUjf5bh5a1dffNdaAXCcSNJ va2jre8ci1+aCNYieARkspnnyR9kUc89AqKFwmDd354RGPSA89mWtqplv+WQQCfatTcl kXY0vWCfbgLbbxU6QkbsEQmpKdCuVPifd5dMR6R4etQbWNr2eesnyldeuYjySc1HdZ8m cYmcjd6xJvrOmewH82FvOt1O0Bgk1tKUeVi78DT9WqNdCgAAbBml3qCHspS6q1QLVfO1 mUwqkJEzAlaXa/oTT+p3Xg4+mJeNTyL5yQP4VqXoLz4t1U4uyhtuYBkKvx0IR78vuO7/ +b+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=O9Itegwg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 17-20020a631251000000b00497a800555csi9382306pgs.284.2023.01.10.11.04.09; Tue, 10 Jan 2023 11:04:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=O9Itegwg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S239664AbjAJS7i (ORCPT + 99 others); Tue, 10 Jan 2023 13:59:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239790AbjAJS6i (ORCPT ); Tue, 10 Jan 2023 13:58:38 -0500 Received: from mail-pj1-x1049.google.com (mail-pj1-x1049.google.com [IPv6:2607:f8b0:4864:20::1049]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED9346418 for ; Tue, 10 Jan 2023 10:58:33 -0800 (PST) Received: by mail-pj1-x1049.google.com with SMTP id d8-20020a17090a7bc800b00226eb4523ceso4564924pjl.7 for ; Tue, 10 Jan 2023 10:58:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=krYhVfxFdN/OVvO7sdngJN4LpQA8BhAq8fwbwKihSS8=; b=O9ItegwgqSdf9S3Iv63GEthUTZhP5FUZI+MT3lb+9NWKW9t6zk8D2GR+Cw5akBAGQx /iHGnhJSx/SKzNfYYeiI3TfWQN2bkIq7eqi/iYr/knX0VFHF9648QoLTNUACE+bfgFc8 YDKwXVbgjfk4keBM+zPZNwelyFjLMIgSTaA/Hlqkd2/+anDe3rtHSfwuGTdVBvpKMijM 2quqNB4PIlkQwBod0JYV9epuLONJF1sCYy6qu4OqOYlggpormasntRD18lHTetmoqV9+ XYORoo+Jswq68VuPP6dko7VH8zHAPO7ZMEKNZVC+L4L9yctXVw0UP2ucoeMPbmZ1f+he r+HA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=krYhVfxFdN/OVvO7sdngJN4LpQA8BhAq8fwbwKihSS8=; b=YUW8NXxsqlioCO/z5eOAnRW4EkZhMXwTzdlluK4fxa3AsmYp45c6c9hrujdi/xcznG tLFiDPktnpfsaRjZYqLP6YmCVtUqCyWFTplVA4i33wVy+9mX5y5hiW9L5jCio75zpuqN GkFZrVilcUnnRIF5yHo1fFIRfBBjEffQgeaHURG/69uZqYOjfw1juP+0AhlnXFo0mkvT CinMMWu4Pxc08chLkbAJbOCIQ8Uch+y2+s/75iHFpL/4rgZq3pThiANcTjBCqfmCUAlP qGrF2OftG6kJpRtxW5W5Kiadxkpvke0lg6rRMWBskFTYzICuK3Z2aYRZPqpxccDfsm0R 9Nlg== X-Gm-Message-State: AFqh2kpd9JPMA2IXD+nzX0uetmIWtj0l8NxwjdHCY3DRa43mZjbDdUaN pZ9LAZJsU2TG/6I9uSdiocA55wbjkqq+ X-Received: from mizhang-super.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:1071]) (user=mizhang job=sendgmr) by 2002:a62:6487:0:b0:587:ca14:26ae with SMTP id y129-20020a626487000000b00587ca1426aemr977638pfb.71.1673377113465; Tue, 10 Jan 2023 10:58:33 -0800 (PST) Reply-To: Mingwei Zhang Date: Tue, 10 Jan 2023 18:58:23 +0000 In-Reply-To: <20230110185823.1856951-1-mizhang@google.com> Mime-Version: 1.0 References: <20230110185823.1856951-1-mizhang@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20230110185823.1856951-5-mizhang@google.com> Subject: [PATCH 4/4] KVM: selftests: x86: Repeat the checking of xheader when IA32_XFD[18] is set in amx_test From: Mingwei Zhang To: kvm@vger.kernel.org Cc: linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Jim Mattson , Venkatesh Srinivas , Aaron Lewis , Mingwei Zhang X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754663447197289929?= X-GMAIL-MSGID: =?utf-8?q?1754663447197289929?= Repeat the checking of AMX component in xheader after xsavec when IA32_XFD[18] is set. This check calibrates the functionality scope of IA32_XFD: it does not intercept the XSAVE state management. Regardless of the values in IA32_XFD, AMX component state will still be managed by XSAVE* and XRSTOR* as long as XCR[18:17] are set. Signed-off-by: Mingwei Zhang --- tools/testing/selftests/kvm/x86_64/amx_test.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/testing/selftests/kvm/x86_64/amx_test.c b/tools/testing/selftests/kvm/x86_64/amx_test.c index 18203e399e9d..9a80a59b64e6 100644 --- a/tools/testing/selftests/kvm/x86_64/amx_test.c +++ b/tools/testing/selftests/kvm/x86_64/amx_test.c @@ -235,6 +235,16 @@ static void __attribute__((__flatten__)) guest_code(struct tile_config *amx_cfg, /* xfd=0x40000, disable amx tiledata */ wrmsr(MSR_IA32_XFD, XFEATURE_MASK_XTILEDATA); + + /* + * Bit 18 is cleared in XSTATE_BV but set in XCOMP_BV, this property + * remains the same even when IA32_XFD disables amx tiledata. + */ + set_xstatebv(xsave_data, XFEATURE_MASK_XTILEDATA); + __xsavec(xsave_data, XFEATURE_MASK_XTILEDATA); + GUEST_ASSERT((get_xstatebv(xsave_data) & XFEATURE_MASK_XTILEDATA) == 0); + GUEST_ASSERT((get_xcompbv(xsave_data) & XFEATURE_MASK_XTILEDATA) == XFEATURE_MASK_XTILEDATA); + GUEST_SYNC(6); GUEST_ASSERT(rdmsr(MSR_IA32_XFD) == XFEATURE_MASK_XTILEDATA); set_tilecfg(amx_cfg);