34
34
#include "xe_sync.h"
35
35
#include "xe_trace.h"
36
36
#include "xe_vm.h"
37
- #include "xe_wa.h"
38
37
39
38
/**
40
39
* struct xe_migrate - migrate context.
@@ -300,10 +299,6 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
300
299
}
301
300
302
301
/*
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.
307
302
* Including the reserved copy engine is required to avoid deadlocks due to
308
303
* migrate jobs servicing the faults gets stuck behind the job that faulted.
309
304
*/
@@ -317,8 +312,7 @@ static u32 xe_migrate_usm_logical_mask(struct xe_gt *gt)
317
312
if (hwe -> class != XE_ENGINE_CLASS_COPY )
318
313
continue ;
319
314
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 ))
322
316
logical_mask |= BIT (hwe -> logical_instance );
323
317
}
324
318
@@ -369,6 +363,10 @@ struct xe_migrate *xe_migrate_init(struct xe_tile *tile)
369
363
if (!hwe || !logical_mask )
370
364
return ERR_PTR (- EINVAL );
371
365
366
+ /*
367
+ * XXX: Currently only reserving 1 (likely slow) BCS instance on
368
+ * PVC, may want to revisit if performance is needed.
369
+ */
372
370
m -> q = xe_exec_queue_create (xe , vm , logical_mask , 1 , hwe ,
373
371
EXEC_QUEUE_FLAG_KERNEL |
374
372
EXEC_QUEUE_FLAG_PERMANENT |
0 commit comments