Patch "drm/xe: Use ttm_bo_access in xe_vm_snapshot_capture_delayed" has been added to the 6.12-stable tree
A message that is not in the archive (sent off-list or not yet received): [email protected]
Hi
Quoted 8 lines · Sasha Levin
This is a note to let you know that I've just added the patch titled
drm/xe: Use
ttm_bo_accessinxe_vm_snapshot_capture_delayedto the 6.12-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
Quoted 7 lines
The filename of the patch is:
drm-xe-use-ttm_bo_access-in-xe_vm_snapshot_capture_d.patch and it can be found in the queue-6.12 subdirectory.If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.
Please avoid including this patch for now. It turned out it needs more dependencies and we will attempt a manual backport later.
Thanks,
Thomas
Quoted 70 lines
commit
7aad4e92ca3782686571792d117b3ffcfe05c65c
Author: Matthew Brost <[email protected]>
Date: Tue Nov 26 09:46:13 2024 -0800drm/xe: Use
ttm_bo_accessinxe_vm_snapshot_capture_delayed
[ Upstream commit5f7bec831f1f17c354e4307a12cf79b018296975]
Non-contiguous mapping of BO in VRAM doesn't work, usettm_bo_access
instead.
v2:
- Fix error handlingFixes 0eb2a18a8fad ("drm/xe: Implement VM snapshot support forBO's and userptr")
Suggested-by Matthew Auld <[email protected]>Signed-off-by Matthew Brost <[email protected]>Reviewed-by Matthew Auld <[email protected]>Link:
https://patchwork.freedesktop.org/patch/msgid/[email protected]Signed-off-by Sasha Levin <[email protected]>drivers/gpu/drm/xe/xe_vm.c +0
-0@@ -3303,7 +3303,6 @@ void xe_vm_snapshot_capture_delayed(struct xe_vm_snapshot *snap)
for (int i = 0; i <snap->num_snaps; i++) { structxe_bo*bo = snap->snap[i].bo;drivers/gpu/drm/xe/xe_vm.c +0
-1-struct iosys_map src;int err;
if (IS_ERR(snap->snap[i].data))drivers/gpu/drm/xe/xe_vm.c +0
-0@@ -3316,16 +3315,12 @@ void xe_vm_snapshot_capture_delayed(struct xe_vm_snapshot *snap) }
if (bo) {drivers/gpu/drm/xe/xe_vm.c +0
-5-xe_bo_lock (bo, false); - err =ttm_bo_vmap (&bo->ttm, &src); -if (!err) { - xe_map_memcpy_from(xe_bo_device(bo), - snap-Quoted 1 line
snap[i].data,
drivers/gpu/drm/xe/xe_vm.c +0
-1- &src, snap-Quoted 1 line
snap[i].bo_ofs,
drivers/gpu/drm/xe/xe_vm.c +0
-1- snap-Quoted 1 line
snap[i].len);
drivers/gpu/drm/xe/xe_vm.c +1
-3-ttm_bo_vunmap (&bo->ttm, &src); - } -xe_bo_unlock (bo); + err = ttm_bo_access(&bo->ttm, snap-Quoted 1 line
snap[i].bo_ofs,
drivers/gpu/drm/xe/xe_vm.c +1
-0+ snap->snap[i].data,snap->snap[i].len, 0);
drivers/gpu/drm/xe/xe_vm.c +4
-0+if (!(err <0 ) && err != snap->snap[i].len) + err = -EIO ; +else if (!(err <0 )) + err =0 ;} else {
void__user*userptr = (void__user*)(size_t)snap->snap[i].bo_ofs;