|
41 | 41 | * user knows an exec writes to a BO and reads from the BO in the next exec, it
|
42 | 42 | * is the user's responsibility to pass in / out fence between the two execs).
|
43 | 43 | *
|
44 |
| - * Implicit dependencies for external BOs are handled by using the dma-buf |
45 |
| - * implicit dependency uAPI (TODO: add link). To make this works each exec must |
46 |
| - * install the job's fence into the DMA_RESV_USAGE_WRITE slot of every external |
47 |
| - * BO mapped in the VM. |
48 |
| - * |
49 | 44 | * We do not allow a user to trigger a bind at exec time rather we have a VM
|
50 | 45 | * bind IOCTL which uses the same in / out fence interface as exec. In that
|
51 | 46 | * sense, a VM bind is basically the same operation as an exec from the user
|
|
59 | 54 | * behind any pending kernel operations on any external BOs in VM or any BOs
|
60 | 55 | * private to the VM. This is accomplished by the rebinds waiting on BOs
|
61 | 56 | * DMA_RESV_USAGE_KERNEL slot (kernel ops) and kernel ops waiting on all BOs
|
62 |
| - * slots (inflight execs are in the DMA_RESV_USAGE_BOOKING for private BOs and |
63 |
| - * in DMA_RESV_USAGE_WRITE for external BOs). |
| 57 | + * slots (inflight execs are in the DMA_RESV_USAGE_BOOKKEEP for private BOs and |
| 58 | + * for external BOs). |
64 | 59 | *
|
65 | 60 | * Rebinds / dma-resv usage applies to non-compute mode VMs only as for compute
|
66 | 61 | * mode VMs we use preempt fences and a rebind worker (TODO: add link).
|
@@ -304,7 +299,8 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
|
304 | 299 | xe_sched_job_arm(job);
|
305 | 300 | if (!xe_vm_in_lr_mode(vm))
|
306 | 301 | drm_gpuvm_resv_add_fence(&vm->gpuvm, exec, &job->drm.s_fence->finished,
|
307 |
| - DMA_RESV_USAGE_BOOKKEEP, DMA_RESV_USAGE_WRITE); |
| 302 | + DMA_RESV_USAGE_BOOKKEEP, |
| 303 | + DMA_RESV_USAGE_BOOKKEEP); |
308 | 304 |
|
309 | 305 | for (i = 0; i < num_syncs; i++) {
|
310 | 306 | xe_sync_entry_signal(&syncs[i], &job->drm.s_fence->finished);
|
|
0 commit comments