Hi Mikolaj,

On Tue, Mar 04, 2025 at 09:43:26AM +0100, Mikolaj Wasiak wrote:
> When the driver is loaded on the system with numa nodes it might be run in
> a kthread, which makes it impossible to use current->mm in the selftest.
> This patch allows the selftest to use current->mm by using active_mm.
> 
> Signed-off-by: Mikolaj Wasiak <mikolaj.was...@intel.com>
> Reviewed-by: Eugene Kobyak <eugene.kob...@intel.com>
> ---
> v1 -> v2: Simplify logic of enabling and disabling active_mm
> 
>  drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c 
> b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> index 804f74084bd4..9c3f17e51885 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> @@ -1837,6 +1837,8 @@ static int igt_mmap_revoke(void *arg)
>  
>  int i915_gem_mman_live_selftests(struct drm_i915_private *i915)
>  {
> +     int ret;
> +     bool unuse_mm = false;
>       static const struct i915_subtest tests[] = {
>               SUBTEST(igt_partial_tiling),
>               SUBTEST(igt_smoke_tiling),
> @@ -1848,5 +1850,15 @@ int i915_gem_mman_live_selftests(struct 
> drm_i915_private *i915)
>               SUBTEST(igt_mmap_gpu),
>       };
>  
> -     return i915_live_subtests(tests, i915);
> +     if (!current->mm) {
> +             kthread_use_mm(current->active_mm);

I still think this is somehow a brutal approach, but for a
selftest that is going to die soon it shouldn't be a big issue.

I'm going to take this in:

Reviewed-by: Andi Shyti <andi.sh...@linux.intel.com>

Thanks,
Andi

> +             unuse_mm = true;
> +     }
> +
> +     ret = i915_live_subtests(tests, i915);
> +
> +     if (unuse_mm)
> +             kthread_unuse_mm(current->active_mm);
> +
> +     return ret;
>  }
> -- 
> 2.43.0

Reply via email to