On 2/13/25 3:32 AM, Li Wang wrote:
Hi John,
On Thu, Feb 13, 2025 at 6:31 AM John Hubbard <jhubb...@nvidia.com
<mailto:jhubb...@nvidia.com>> wrote:
On 2/12/25 12:34 PM, Dave Hansen wrote:
> Hi John,
>
> On 6/13/24 19:30, John Hubbard wrote:
>> --- a/tools/testing/selftests/mm/protection_keys.c
>> +++ b/tools/testing/selftests/mm/protection_keys.c
>> @@ -42,7 +42,7 @@
>> #include <sys/wait.h>
>> #include <sys/stat.h>
>> #include <fcntl.h>
>> -#include <unistd.h>
>> +#include <linux/unistd.h>
>> #include <sys/ptrace.h>
>> #include <setjmp.h>
>
> I'm not quite sure how but this broke the protection_keys.c selftest for
> me. Before this commit (a5c6bc590094a1a73cf6fa3f505e1945d2bf2461) things
> are fine. But after, I get:
>
> running PKEY tests for unsupported CPU/OS
>
> The "unsupported" test just makes a pkey_alloc() syscall. It's probably
> calling the wrong syscall number or something.
>
> I think it's still broken in mainline. What's the right fix?
omg I think this is an asm-generic include mistake, I'll check
on it in an hour or so, in more depth.
I just found that mlock2_() return a wrong valuein mlock2-test,
I guess that was caused by including the wrong header file
<asm-generic/unistd.h>,which might define a different syscall
number than what the kernel uses on the test system.
Agreed.
Shouldn't we make use of <unistd.h> directly?
Well, yes and no. For now, there appear to be two commits involved
in causing these problems, and the __NR_* parts need to be reverted.
I'll explain more when I post later today, but for the moment, the
first, mseal- related commit below has some hints about how we got
here:
504d8a5e0fd4 selftests/mm: mseal, self_elf: fix missing __NR_mseal
a5c6bc590094 selftests/mm: remove local __NR_* definitions
thanks,
--
John Hubbard