From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1039) id DFEE93858D35; Mon, 6 Jul 2020 14:49:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DFEE93858D35 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: H.J. Lu To: glibc-cvs@sourceware.org Subject: [glibc] x86: Detect Extended Feature Disable (XFD) X-Act-Checkin: glibc X-Git-Author: H.J. Lu X-Git-Refname: refs/heads/master X-Git-Oldrev: f8b4630ef673486c2c77bd291a08ef132981e149 X-Git-Newrev: 28c13ae5bbc81aa2ae67890ce53e65257d4703a4 Message-Id: <20200706144924.DFEE93858D35@sourceware.org> Date: Mon, 6 Jul 2020 14:49:24 +0000 (GMT) X-BeenThere: glibc-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Glibc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jul 2020 14:49:25 -0000 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=28c13ae5bbc81aa2ae67890ce53e65257d4703a4 commit 28c13ae5bbc81aa2ae67890ce53e65257d4703a4 Author: H.J. Lu Date: Mon Jul 6 06:57:08 2020 -0700 x86: Detect Extended Feature Disable (XFD) An extension called extended feature disable (XFD) is an extension added for Intel AMX to the XSAVE feature set that allows an operating system to enable a feature while preventing specific user threads from using the feature. Diff: --- sysdeps/x86/cpu-features.h | 3 +++ sysdeps/x86/tst-get-cpu-features.c | 1 + 2 files changed, 4 insertions(+) diff --git a/sysdeps/x86/cpu-features.h b/sysdeps/x86/cpu-features.h index f25df778cc..bc425462d6 100644 --- a/sysdeps/x86/cpu-features.h +++ b/sysdeps/x86/cpu-features.h @@ -393,6 +393,7 @@ extern const struct cpu_features *__get_cpu_features (void) #define bit_cpu_XSAVEC (1u << 1) #define bit_cpu_XGETBV_ECX_1 (1u << 2) #define bit_cpu_XSAVES (1u << 3) +#define bit_cpu_XFD (1u << 4) /* COMMON_CPUID_INDEX_80000007. */ @@ -578,6 +579,7 @@ extern const struct cpu_features *__get_cpu_features (void) #define index_cpu_XSAVEC COMMON_CPUID_INDEX_D_ECX_1 #define index_cpu_XGETBV_ECX_1 COMMON_CPUID_INDEX_D_ECX_1 #define index_cpu_XSAVES COMMON_CPUID_INDEX_D_ECX_1 +#define index_cpu_XFD COMMON_CPUID_INDEX_D_ECX_1 /* COMMON_CPUID_INDEX_80000007. */ @@ -763,6 +765,7 @@ extern const struct cpu_features *__get_cpu_features (void) #define reg_XSAVEC eax #define reg_XGETBV_ECX_1 eax #define reg_XSAVES eax +#define reg_XFD eax /* COMMON_CPUID_INDEX_80000007. */ diff --git a/sysdeps/x86/tst-get-cpu-features.c b/sysdeps/x86/tst-get-cpu-features.c index dafd66434c..2cff2e86ba 100644 --- a/sysdeps/x86/tst-get-cpu-features.c +++ b/sysdeps/x86/tst-get-cpu-features.c @@ -214,6 +214,7 @@ do_test (void) CHECK_CPU_FEATURE (XSAVEC); CHECK_CPU_FEATURE (XGETBV_ECX_1); CHECK_CPU_FEATURE (XSAVES); + CHECK_CPU_FEATURE (XFD); CHECK_CPU_FEATURE (INVARIANT_TSC); CHECK_CPU_FEATURE (WBNOINVD); CHECK_CPU_FEATURE (AVX512_BF16);