On 1/15/25 02:06, Maciej Wieczor-Retman wrote:
Hello Shuah, I'd like to bump this series for visibility and ask if you still
consider these patches okay to merge?
Just checked and there were no conflicts after applying it on the newest
kselftest-next.
This is x86 test and usually goes through x86 tree. I can take this
through kselftest tree if I get an ack from x86 maintainer.
On 2024-11-27 at 18:35:28 +0100, Maciej Wieczor-Retman wrote:
Recent change in how get_user() handles pointers [1] has a specific case
for LAM. It assigns a different bitmask that's later used to check
whether a pointer comes from userland in get_user().
While currently commented out (until LASS [2] is merged into the kernel)
it's worth making changes to the LAM selftest ahead of time.
Modify cpu_has_la57() so it provides current paging level information
instead of the cpuid one.
Add test case to LAM that utilizes a ioctl (FIOASYNC) syscall which uses
get_user() in its implementation. Execute the syscall with differently
tagged pointers to verify that valid user pointers are passing through
and invalid kernel/non-canonical pointers are not.
Also to avoid unhelpful test failures add a check in main() to skip
running tests if LAM was not compiled into the kernel.
Code was tested on a Sierra Forest Xeon machine that's LAM capable. The
test was ran without issues with both the LAM lines from [1] untouched
and commented out. The test was also ran without issues with LAM_SUP
both enabled and disabled.
4/5 level pagetables code paths were also successfully tested in Simics
on a 5-level capable machine.
[1] https://lore.kernel.org/all/20241024013214.129639-1-torvalds@xxxxxxxxxxxxxxxxxxxx/
[2] https://lore.kernel.org/all/20241028160917.1380714-1-alexander.shishkin@xxxxxxxxxxxxxxx/
Maciej Wieczor-Retman (3):
selftests/lam: Move cpu_has_la57() to use cpuinfo flag
selftests/lam: Skip test if LAM is disabled
selftests/lam: Test get_user() LAM pointer handling
tools/testing/selftests/x86/lam.c | 120 ++++++++++++++++++++++++++++--
1 file changed, 115 insertions(+), 5 deletions(-)
--
2.47.1
thanks,
-- Shuah