Commit b4eecedc authored by Matthew Brost's avatar Matthew Brost Committed by Rodrigo Vivi

drm/xe: Fix potential deadlock handling page faults

Within a class the GuC will hault scheduling if the head of the queue
can't be scheduled the queue will block. This can lead to deadlock if
BCS0-7 all have faults and another engine on BCS0-7 is at head of the
GuC scheduling queue as the migration engine used to fix tthe fault will
be blocked. To work around this set the migration engine to the highest
priority when servicing page faults.

v2 (Maarten): Set priority to kernel once at creation
Signed-off-by: default avatarMatthew Brost <matthew.brost@intel.com>
Reviewed-by: default avatarBrian Welty <brian.welty@intel.com>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent 59ea53ee
......@@ -360,6 +360,8 @@ struct xe_migrate *xe_migrate_init(struct xe_gt *gt)
xe_vm_close_and_put(vm);
return ERR_CAST(m->eng);
}
if (xe->info.supports_usm)
m->eng->priority = XE_ENGINE_PRIORITY_KERNEL;
mutex_init(&m->job_mutex);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment