Skip to content

Commit c301c3d

Browse files
committed
Merge tag 'drm-xe-fixes-2024-05-30' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes
Driver Changes: - One pcode polling timeout change - One fix for deadlocks for faulting VMs - One error-path lock imbalance fix Signed-off-by: Dave Airlie <airlied@redhat.com> From: Thomas Hellstrom <thomas.hellstrom@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/ZlisNHzgoq9nVg6g@fedora
2 parents cfd36ae + 6c5cd08 commit c301c3d

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

drivers/gpu/drm/xe/xe_guc_submit.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,6 +1240,7 @@ static int guc_exec_queue_init(struct xe_exec_queue *q)
12401240
return 0;
12411241

12421242
err_entity:
1243+
mutex_unlock(&guc->submission_state.lock);
12431244
xe_sched_entity_fini(&ge->entity);
12441245
err_sched:
12451246
xe_sched_fini(&ge->sched);

drivers/gpu/drm/xe/xe_migrate.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
#include "xe_sync.h"
3535
#include "xe_trace.h"
3636
#include "xe_vm.h"
37-
#include "xe_wa.h"
3837

3938
/**
4039
* struct xe_migrate - migrate context.
@@ -300,10 +299,6 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
300299
}
301300

302301
/*
303-
* Due to workaround 16017236439, odd instance hardware copy engines are
304-
* faster than even instance ones.
305-
* This function returns the mask involving all fast copy engines and the
306-
* reserved copy engine to be used as logical mask for migrate engine.
307302
* Including the reserved copy engine is required to avoid deadlocks due to
308303
* migrate jobs servicing the faults gets stuck behind the job that faulted.
309304
*/
@@ -317,8 +312,7 @@ static u32 xe_migrate_usm_logical_mask(struct xe_gt *gt)
317312
if (hwe->class != XE_ENGINE_CLASS_COPY)
318313
continue;
319314

320-
if (!XE_WA(gt, 16017236439) ||
321-
xe_gt_is_usm_hwe(gt, hwe) || hwe->instance & 1)
315+
if (xe_gt_is_usm_hwe(gt, hwe))
322316
logical_mask |= BIT(hwe->logical_instance);
323317
}
324318

@@ -369,6 +363,10 @@ struct xe_migrate *xe_migrate_init(struct xe_tile *tile)
369363
if (!hwe || !logical_mask)
370364
return ERR_PTR(-EINVAL);
371365

366+
/*
367+
* XXX: Currently only reserving 1 (likely slow) BCS instance on
368+
* PVC, may want to revisit if performance is needed.
369+
*/
372370
m->q = xe_exec_queue_create(xe, vm, logical_mask, 1, hwe,
373371
EXEC_QUEUE_FLAG_KERNEL |
374372
EXEC_QUEUE_FLAG_PERMANENT |

drivers/gpu/drm/xe/xe_pcode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ int xe_pcode_request(struct xe_gt *gt, u32 mbox, u32 request,
191191
drm_WARN_ON_ONCE(&gt_to_xe(gt)->drm, timeout_base_ms > 1);
192192
preempt_disable();
193193
ret = pcode_try_request(gt, mbox, request, reply_mask, reply, &status,
194-
true, timeout_base_ms * 1000, true);
194+
true, 50 * 1000, true);
195195
preempt_enable();
196196

197197
out:

0 commit comments

Comments
 (0)