On 3/11/24 10:39 PM, Chang S. Bae wrote:
On 3/11/2024 10:02 AM, Muhammad Usama Anjum wrote:
On 3/9/24 6:06 AM, Chang S. Bae wrote:
On 3/7/2024 10:37 AM, Muhammad Usama Anjum wrote:
-static void check_cpuid_xtiledata(void) +static int check_cpuid_xtiledata(void) { uint32_t eax, ebx, ecx, edx; @@ -153,12 +160,16 @@ static void check_cpuid_xtiledata(void) * eax: XTILEDATA state component size * ebx: XTILEDATA state component offset in user buffer */ - if (!eax || !ebx) - fatal_error("xstate cpuid: invalid tile data size/offset: %d/%d", - eax, ebx); + if (!eax || !ebx) { + ksft_print_msg("xstate cpuid: invalid tile data size/offset: %d/%d\n", + eax, ebx); + return -1; + } xtiledata.size = eax; xtiledata.xbuf_offset = ebx;
+ return 0; }
I don't think it is okay to silently skip the test here. If the feature is available, the tile data size and offset should not be zero.
We are logging that data size/offset are invalid if either eax or ebx are invalid and then we are skipping. Not sure what you are asking me to change.
You intention seems to skip the test when AMX is not available.
Yes,
But this function should only be invoked when AMX is actually available, not as part of the feature availability check.
How can we check if AMX is available or not?
Therefore, I think this change is not relevant. Also, if we encounter invalid TILEDATA CPUID, it should be a reason to *fail* the test, rather than calling out a skip, right?
I see. But once we check if AMX is available.
Thanks, Chang