iris/xe: Consider pat_index while unbinding the bo

Xe KMD also checks if cpu_caching caching set during bo creationg
matches with caching of the PAT index set in the VM unbind.

This was being unnoticed until now by luck and lack of testing in MTL.

So here always setting PAT index for all VM operations that has a bo
associated.

Fixes: eb18a92ef9 ("iris: Fill PAT fields in Xe KMD gem_create and vm_bind uAPIs")
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27893>
(cherry picked from commit 963c08b623)
This commit is contained in:
José Roberto de Souza 2024-02-29 10:50:25 -08:00 committed by Eric Engestrom
parent 8e88a23e79
commit 082ca33d0f
2 changed files with 2 additions and 6 deletions

View file

@ -1894,7 +1894,7 @@
"description": "iris/xe: Consider pat_index while unbinding the bo",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "eb18a92ef94e721407527c6c66ffff324772a610",
"notes": null

View file

@ -138,10 +138,6 @@ xe_gem_vm_bind_op(struct iris_bo *bo, uint32_t op)
op = DRM_XE_VM_BIND_OP_MAP_USERPTR;
}
uint16_t pat_index = 0;
if (op != DRM_XE_VM_BIND_OP_UNMAP)
pat_index = iris_heap_to_pat_entry(devinfo, bo->real.heap)->index;
struct drm_xe_vm_bind args = {
.vm_id = iris_bufmgr_get_global_vm_id(bo->bufmgr),
.num_syncs = 1,
@ -152,7 +148,7 @@ xe_gem_vm_bind_op(struct iris_bo *bo, uint32_t op)
.bind.range = range,
.bind.addr = intel_48b_address(bo->address),
.bind.op = op,
.bind.pat_index = pat_index,
.bind.pat_index = iris_heap_to_pat_entry(devinfo, bo->real.heap)->index,
};
ret = intel_ioctl(fd, DRM_IOCTL_XE_VM_BIND, &args);
if (ret == 0) {