Lines Matching refs: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)
91 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job);
92 struct nouveau_cli *cli = job->cli;
94 struct drm_exec *exec = &job->exec;
141 nouveau_exec_job_armed_submit(struct nouveau_job *job)
143 struct drm_exec *exec = &job->exec;
148 dma_resv_add_fence(obj->resv, job->done_fence, job->resv_usage);
154 nouveau_exec_job_run(struct nouveau_job *job)
156 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job);
163 NV_PRINTK(err, job->cli, "nv50cal_space: %d\n", ret);
177 NV_PRINTK(err, job->cli, "error fencing pushbuf: %d\n", ret);
182 /* The fence was emitted successfully, set the job's fence pointer to
183 * NULL in order to avoid freeing it up when the job is cleaned up.
191 nouveau_exec_job_free(struct nouveau_job *job)
193 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job);
195 nouveau_job_free(job);
203 nouveau_exec_job_timeout(struct nouveau_job *job)
205 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job);
211 NV_PRINTK(warn, job->cli, "job timeout, channel %d killed!\n",
214 nouveau_sched_entity_fini(job->entity);
231 struct nouveau_exec_job *job;
246 job = *pjob = kzalloc(sizeof(*job), GFP_KERNEL);
247 if (!job)
250 job->push.count = __args->push.count;
252 job->push.s = kmemdup(__args->push.s,
256 if (!job->push.s) {
262 job->chan = __args->chan;
276 ret = nouveau_job_init(&job->base, &args);
283 kfree(job->push.s);
285 kfree(job);
294 struct nouveau_exec_job *job;
297 ret = nouveau_exec_job_init(&job, args);
301 ret = nouveau_job_submit(&job->base);
308 nouveau_job_fini(&job->base);