FAILED: patch "[PATCH] drm/amdkfd: Migrate in CPU page fault use current mm" failed to apply to 5.15-stable tree
Subsystems (4)
[email protected]
maintainerThe patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Possible dependencies:
3a876060892b ("drm/amdkfd: Migrate in CPU page fault use current mm") acac270d0982 ("drm/amdkfd: Add migration SMI event")e0f1e65b836c ("drm/amdkfd: Add GPU recoverable fault SMI event") 9527b9caf82b ("drm/amdkfd: evict svm bo worker handle error")7ad153db5859 ("drm/amdkfd: handle VMA remove race")740a451b0797 ("drm/amdkfd: Handle incomplete migration to system memory") 33c6bd989d5e ("drm/amdkfd: debug message to count successfully migrated pages") 75fa98d6e458 ("drm/amdkfd: clarify the origin of cpages returned by migration functions") ca432dcc27a1 ("drm/amdkfd: handle svm partial migration cpages 0")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 3a876060892ba52dd67d197c78b955e62657d906 Mon Sep 17 00:00:00 2001
From: Philip Yang <[email protected]>
Date: Thu, 8 Sep 2022 17:56:09 -0400
Subject: [PATCH] drm/amdkfd: Migrate in CPU page fault use current mm
migrate_vma_setup shows below warning because we don't hold another process mm mmap_lock. We should use current vmf->vma->vm_mm instead, the caller already hold current mmap lock inside CPU page fault handler.
WARNING: CPU: 10 PID: 3054 at include/linux/mmap_lock.h:155 find_vma Call Trace: walk_page_range+0x76/0x150 migrate_vma_setup+0x18a/0x640 svm_migrate_vram_to_ram+0x245/0xa10 [amdgpu] svm_migrate_to_ram+0x36f/0x470 [amdgpu] do_swap_page+0xcfe/0xec0 __handle_mm_fault+0x96b/0x15e0 handle_mm_fault+0x13f/0x3e0 do_user_addr_fault+0x1e7/0x690
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c +2 -1
@@ -949,7 +949,8 @@ static vm_fault_t svm_migrate_to_ram(struct vm_fault *vmf) goto out_unlock_prange; } - r =svm_migrate_vram_to_ram (prange, mm,KFD_MIGRATE_TRIGGER_PAGEFAULT_CPU ); + r =svm_migrate_vram_to_ram (prange, vmf->vma->vm_mm, +KFD_MIGRATE_TRIGGER_PAGEFAULT_CPU );if (r)pr_debug ("failed %d migrate svms 0x%p range 0x%p [0x%lx 0x%lx]\n" , r, prange->svms, prange, prange->start, prange->last);