Re: [PATCH 1/2] Documentation/x86: Add the AMX enabling example

From: Chang S. Bae
Date: Fri Jun 17 2022 - 17:35:40 EST


On 6/16/2022 3:45 PM, Dave Hansen wrote:
+ 1. **Check the feature availability**. AMX_TILE is enumerated in CPUID
+ leaf 7, sub-leaf 0, bit 24 of EDX. If available, ``/proc/cpuinfo``
+ shows ``amx_tile`` in the flag entry of the CPUs. Given that, the
+ kernel may have set XSTATE component 18 in the XCR0 register. But a
+ user needs to ensure the kernel support via the ARCH_GET_XCOMP_SUPP
+ option::

Why did you bother mentioning the XCR0 and CPUID specifics? We don't
want applications doing that, right?

Without checking them, this arch_prctl(2) option can be tried. Then it will return either EINVAL or the feature bit off if unavailable. Yes, that's all wanted instead of that old way. So maybe something like this here:

An application first needs to determine the feature support:


+ #include <asm/prctl.h>
+ #include <sys/syscall.h>
+ #include <stdio.h>
+ #include <unistd.h>

^ Just from the appearance here there looks to be some spaces vs. tabs
inconsistency.

Sorry, a tab instead of spaces was added later to fix a compile error.

<snip>

+ 2. **Request permission**. Now it is found that the kernel supports the
+ feature. But the permission is not automatically given. A user needs
+ to explicitly request it via the ARCH_REQ_XCOMP_PERM option::

That phrasing is a bit awkward. How about:

After determining support for AMX, an application must
explicitly ask permission to use it:
...

Yeah, looks to be concise. Thanks!

Chang