* [PATCH v4 2/2] selftests/x86/amx: Update the ARCH_REQ_XCOMP_PERM test
[not found] <20220129173647.27981-1-chang.seok.bae@intel.com>
@ 2022-01-29 17:36 ` Chang S. Bae
2022-03-23 16:44 ` Thomas Gleixner
0 siblings, 1 reply; 3+ messages in thread
From: Chang S. Bae @ 2022-01-29 17:36 UTC (permalink / raw)
To: linux-kernel, x86, tglx, bp, dave.hansen, mingo
Cc: yang.zhong, ravi.v.shankar, chang.seok.bae, linux-kselftest
Update the arch_prctl test to check the permission bitmap whether the
requested feature is added as expected or not.
Every non-dynamic feature that is enabled is permitted already for use.
TILECFG is not dynamic feature. Ensure the bit is always on from
ARCH_GET_XCOMP_PERM.
Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: linux-kselftest@vger.kernel.org
Cc: x86@kernel.org
Cc: linux-kernel@vger.kernel.org
---
tools/testing/selftests/x86/amx.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/x86/amx.c b/tools/testing/selftests/x86/amx.c
index 3615ef4a48bb..e1e2c8f3356f 100644
--- a/tools/testing/selftests/x86/amx.c
+++ b/tools/testing/selftests/x86/amx.c
@@ -368,9 +368,16 @@ static void req_xtiledata_perm(void)
static void validate_req_xcomp_perm(enum expected_result exp)
{
- unsigned long bitmask;
+ unsigned long bitmask, expected_bitmask;
long rc;
+ rc = syscall(SYS_arch_prctl, ARCH_GET_XCOMP_PERM, &bitmask);
+ if (rc) {
+ fatal_error("prctl(ARCH_GET_XCOMP_PERM) error: %ld", rc);
+ } else if (!(bitmask & XFEATURE_MASK_XTILECFG)) {
+ fatal_error("ARCH_GET_XCOMP_PERM returns XFEATURE_XTILECFG off.");
+ }
+
rc = syscall(SYS_arch_prctl, ARCH_REQ_XCOMP_PERM, XFEATURE_XTILEDATA);
if (exp == FAIL_EXPECTED) {
if (rc) {
@@ -383,10 +390,15 @@ static void validate_req_xcomp_perm(enum expected_result exp)
fatal_error("ARCH_REQ_XCOMP_PERM saw unexpected failure.\n");
}
+ expected_bitmask = bitmask | XFEATURE_MASK_XTILEDATA;
+
rc = syscall(SYS_arch_prctl, ARCH_GET_XCOMP_PERM, &bitmask);
if (rc) {
fatal_error("prctl(ARCH_GET_XCOMP_PERM) error: %ld", rc);
- } else if (bitmask & XFEATURE_MASK_XTILE) {
+ } else if (bitmask != expected_bitmask) {
+ fatal_error("ARCH_REQ_XCOMP_PERM saw a wrong bitmask: %lx, expected: %lx.\n",
+ bitmask, expected_bitmask);
+ } else {
printf("\tARCH_REQ_XCOMP_PERM is successful.\n");
}
}
--
2.17.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v4 2/2] selftests/x86/amx: Update the ARCH_REQ_XCOMP_PERM test
2022-01-29 17:36 ` [PATCH v4 2/2] selftests/x86/amx: Update the ARCH_REQ_XCOMP_PERM test Chang S. Bae
@ 2022-03-23 16:44 ` Thomas Gleixner
2022-03-23 21:27 ` Chang S. Bae
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Gleixner @ 2022-03-23 16:44 UTC (permalink / raw)
To: Chang S. Bae, linux-kernel, x86, bp, dave.hansen, mingo
Cc: yang.zhong, ravi.v.shankar, chang.seok.bae, linux-kselftest
On Sat, Jan 29 2022 at 09:36, Chang S. Bae wrote:
> Update the arch_prctl test to check the permission bitmap whether the
> requested feature is added as expected or not.
>
> Every non-dynamic feature that is enabled is permitted already for use.
> TILECFG is not dynamic feature. Ensure the bit is always on from
> ARCH_GET_XCOMP_PERM.
Running it on a machine which does not have AMX results in:
amx_64: [FAIL] xstate cpuid: invalid tile data size/offset: 0/0: Success
It's not a failure, really. Selftests are supposed to run on all
machines and the proper thing to do if a hardware feature is not
available is to SKIP the test and return 0.
Thanks,
tglx
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v4 2/2] selftests/x86/amx: Update the ARCH_REQ_XCOMP_PERM test
2022-03-23 16:44 ` Thomas Gleixner
@ 2022-03-23 21:27 ` Chang S. Bae
0 siblings, 0 replies; 3+ messages in thread
From: Chang S. Bae @ 2022-03-23 21:27 UTC (permalink / raw)
To: Thomas Gleixner, linux-kernel, x86, bp, dave.hansen, mingo
Cc: yang.zhong, ravi.v.shankar, linux-kselftest
On 3/23/2022 9:44 AM, Thomas Gleixner wrote:
>
> Running it on a machine which does not have AMX results in:
>
> amx_64: [FAIL] xstate cpuid: invalid tile data size/offset: 0/0: Success
>
> It's not a failure, really. Selftests are supposed to run on all
> machines and the proper thing to do if a hardware feature is not
> available is to SKIP the test and return 0.
Ah, right. The test should be just *skipped* on non-AMX or even
non-XSAVE systems.
Will follow up with a separate patch.
Thanks,
Chang
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-03-23 21:28 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20220129173647.27981-1-chang.seok.bae@intel.com>
2022-01-29 17:36 ` [PATCH v4 2/2] selftests/x86/amx: Update the ARCH_REQ_XCOMP_PERM test Chang S. Bae
2022-03-23 16:44 ` Thomas Gleixner
2022-03-23 21:27 ` Chang S. Bae
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox