Hi, On 2025-02-26 at 13:41:34 GMT, Krzysztof Niemiec wrote: > I have two suggestions for a different fix: > > 1. Disable the test on systems with NUMA and/or if it's running in a > kthread, on the premise that it doesn't make sense to run this > specific test in a kthread. This is the easier option. > > 2. Find a way to pass an argument to the selftest, so we can pass a > known mm to the test thread. Then set it as current->mm for the > duration of the test like you're doing in your patch. We could pass > the IGT process's mm to "emulate" having it being the initializer of > the test task; this way we're being a good citizen and we don't mess > with some other process memory. I figure this is the harder option. > > I'd try 2 and if it doesn't work then just resort to 1 if there's no > better idea floating around.
>From I can see, Krzysztof's idea won't work because we can't access current->mm address from igt in userspace and the kernel switches to ktherad before we can do anything in the driver. Or am I missing something? On 2025-02-28 at 11:06:50 +0100, Janusz Krzysztofik wrote: > > > While looking for similar cases, I've found commit 51104c19d857 ("kunit: > > > test: > > > Add vm_mmap() allocation resource manager") that seems to have resolved a > > > similar issue for then newly added kunit tests accessing current->mm. > > > Maybe > > > the approach used there is worth of reusing it for i915 selftests. > > > > > > Thanks, > > > Janusz > > > > I've seen commit you found. It sadly uses symbols that aren't exported > > outside of mm module and kunit tests > > and so I can't replicate it in our > > selftest. > > > > Mikołaj > > Well, strictly speaking, those core symbols were also not available to kunit, > and that patch exported them to kunit namespace. While i915 selftests are > not > kunit, they are still in-kernel tests, then maybe it would be acceptable to > import the kunit namespace as needed to our selftests and use those symbols > for the same purpose as intended. CI already runs kunit tests, then builds > the kernels with CONFIG_KUNIT=y. The code of i915 selftest that will depend > on those symbols may then just check for CONFIG_KUNIT defined and be skipped > if not. Andi, what do you think about setting selftest as kunit to have access to exported symbols? Mikołaj