Lines Matching full:job
169 struct amdgpu_job *job) in amdgpu_vmid_gds_switch_needed() argument
171 return id->gds_base != job->gds_base || in amdgpu_vmid_gds_switch_needed()
172 id->gds_size != job->gds_size || in amdgpu_vmid_gds_switch_needed()
173 id->gws_base != job->gws_base || in amdgpu_vmid_gds_switch_needed()
174 id->gws_size != job->gws_size || in amdgpu_vmid_gds_switch_needed()
175 id->oa_base != job->oa_base || in amdgpu_vmid_gds_switch_needed()
176 id->oa_size != job->oa_size; in amdgpu_vmid_gds_switch_needed()
179 /* Check if the id is compatible with the job */
181 struct amdgpu_job *job) in amdgpu_vmid_compatible() argument
183 return id->pd_gpu_addr == job->vm_pd_addr && in amdgpu_vmid_compatible()
184 !amdgpu_vmid_gds_switch_needed(id, job); in amdgpu_vmid_compatible()
190 * @ring: ring we want to submit job to
239 * @ring: ring we want to submit job to
240 * @job: job who wants to use the VMID
248 struct amdgpu_job *job, in amdgpu_vmid_grab_reserved() argument
261 !amdgpu_vmid_compatible(*id, job) || in amdgpu_vmid_grab_reserved()
291 r = amdgpu_sync_fence(&(*id)->active, &job->base.s_fence->finished, in amdgpu_vmid_grab_reserved()
296 job->vm_needs_flush = needs_flush; in amdgpu_vmid_grab_reserved()
297 job->spm_update_needed = true; in amdgpu_vmid_grab_reserved()
305 * @ring: ring we want to submit job to
306 * @job: job who wants to use the VMID
313 struct amdgpu_job *job, in amdgpu_vmid_grab_used() argument
323 job->vm_needs_flush = vm->use_cpu_for_update; in amdgpu_vmid_grab_used()
333 if (!amdgpu_vmid_compatible(*id, job)) in amdgpu_vmid_grab_used()
351 &job->base.s_fence->finished, in amdgpu_vmid_grab_used()
356 job->vm_needs_flush |= needs_flush; in amdgpu_vmid_grab_used()
368 * @ring: ring we want to submit job to
369 * @job: job who wants to use the VMID
375 struct amdgpu_job *job, struct dma_fence **fence) in amdgpu_vmid_grab() argument
390 r = amdgpu_vmid_grab_reserved(vm, ring, job, &id, fence); in amdgpu_vmid_grab()
394 r = amdgpu_vmid_grab_used(vm, ring, job, &id); in amdgpu_vmid_grab()
404 &job->base.s_fence->finished, in amdgpu_vmid_grab()
409 job->vm_needs_flush = true; in amdgpu_vmid_grab()
415 job->gds_switch_needed = amdgpu_vmid_gds_switch_needed(id, job); in amdgpu_vmid_grab()
416 if (job->vm_needs_flush) { in amdgpu_vmid_grab()
421 job->vmid = id - id_mgr->ids; in amdgpu_vmid_grab()
422 job->pasid = vm->pasid; in amdgpu_vmid_grab()
424 id->gds_base = job->gds_base; in amdgpu_vmid_grab()
425 id->gds_size = job->gds_size; in amdgpu_vmid_grab()
426 id->gws_base = job->gws_base; in amdgpu_vmid_grab()
427 id->gws_size = job->gws_size; in amdgpu_vmid_grab()
428 id->oa_base = job->oa_base; in amdgpu_vmid_grab()
429 id->oa_size = job->oa_size; in amdgpu_vmid_grab()
430 id->pd_gpu_addr = job->vm_pd_addr; in amdgpu_vmid_grab()
433 trace_amdgpu_vm_grab_id(vm, ring, job); in amdgpu_vmid_grab()