Lines Matching full:job
67 * DRM_NOUVEAU_EXEC ioctl is called to submit an exec job.
69 * A VM_BIND job can be executed either synchronously or asynchronously. If
70 * exectued asynchronously, userspace may provide a list of syncobjs this job
72 * VM_BIND job finished execution. If executed synchronously the ioctl will
73 * block until the bind job is finished. For synchronous jobs the kernel will
82 * Since VM_BIND jobs update the GPU's VA space on job submit, EXEC jobs do have
89 nouveau_exec_job_submit(struct nouveau_job *job) in nouveau_exec_job_submit() argument
91 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job); in nouveau_exec_job_submit()
92 struct nouveau_cli *cli = job->cli; in nouveau_exec_job_submit()
94 struct drm_exec *exec = &job->exec; in nouveau_exec_job_submit()
141 nouveau_exec_job_armed_submit(struct nouveau_job *job) in nouveau_exec_job_armed_submit() argument
143 struct drm_exec *exec = &job->exec; in nouveau_exec_job_armed_submit()
148 dma_resv_add_fence(obj->resv, job->done_fence, job->resv_usage); in nouveau_exec_job_armed_submit()
154 nouveau_exec_job_run(struct nouveau_job *job) in nouveau_exec_job_run() argument
156 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job); in nouveau_exec_job_run()
163 NV_PRINTK(err, job->cli, "nv50cal_space: %d\n", ret); in nouveau_exec_job_run()
177 NV_PRINTK(err, job->cli, "error fencing pushbuf: %d\n", ret); in nouveau_exec_job_run()
182 /* The fence was emitted successfully, set the job's fence pointer to in nouveau_exec_job_run()
183 * NULL in order to avoid freeing it up when the job is cleaned up. in nouveau_exec_job_run()
191 nouveau_exec_job_free(struct nouveau_job *job) in nouveau_exec_job_free() argument
193 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job); in nouveau_exec_job_free()
195 nouveau_job_free(job); in nouveau_exec_job_free()
203 nouveau_exec_job_timeout(struct nouveau_job *job) in nouveau_exec_job_timeout() argument
205 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job); in nouveau_exec_job_timeout()
211 NV_PRINTK(warn, job->cli, "job timeout, channel %d killed!\n", in nouveau_exec_job_timeout()
214 nouveau_sched_entity_fini(job->entity); in nouveau_exec_job_timeout()
231 struct nouveau_exec_job *job; in nouveau_exec_job_init() local
246 job = *pjob = kzalloc(sizeof(*job), GFP_KERNEL); in nouveau_exec_job_init()
247 if (!job) in nouveau_exec_job_init()
250 job->push.count = __args->push.count; in nouveau_exec_job_init()
252 job->push.s = kmemdup(__args->push.s, in nouveau_exec_job_init()
256 if (!job->push.s) { in nouveau_exec_job_init()
262 job->chan = __args->chan; in nouveau_exec_job_init()
276 ret = nouveau_job_init(&job->base, &args); in nouveau_exec_job_init()
283 kfree(job->push.s); in nouveau_exec_job_init()
285 kfree(job); in nouveau_exec_job_init()
294 struct nouveau_exec_job *job; in nouveau_exec() local
297 ret = nouveau_exec_job_init(&job, args); in nouveau_exec()
301 ret = nouveau_job_submit(&job->base); in nouveau_exec()
308 nouveau_job_fini(&job->base); in nouveau_exec()