Lines Matching refs:job

65  * DRM_NOUVEAU_EXEC ioctl is called to submit an exec job.
67 * A VM_BIND job can be executed either synchronously or asynchronously. If
68 * exectued asynchronously, userspace may provide a list of syncobjs this job
70 * VM_BIND job finished execution. If executed synchronously the ioctl will
71 * block until the bind job is finished. For synchronous jobs the kernel will
80 * Since VM_BIND jobs update the GPU's VA space on job submit, EXEC jobs do have
87 nouveau_exec_job_submit(struct nouveau_job *job,
90 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job);
91 struct nouveau_cli *cli = job->cli;
118 nouveau_exec_job_armed_submit(struct nouveau_job *job,
121 drm_gpuvm_exec_resv_add_fence(vme, job->done_fence,
122 job->resv_usage, job->resv_usage);
127 nouveau_exec_job_run(struct nouveau_job *job)
129 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job);
136 NV_PRINTK(err, job->cli, "nv50cal_space: %d\n", ret);
150 NV_PRINTK(err, job->cli, "error fencing pushbuf: %d\n", ret);
155 /* The fence was emitted successfully, set the job's fence pointer to
156 * NULL in order to avoid freeing it up when the job is cleaned up.
164 nouveau_exec_job_free(struct nouveau_job *job)
166 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job);
168 nouveau_job_done(job);
169 nouveau_job_free(job);
177 nouveau_exec_job_timeout(struct nouveau_job *job)
179 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job);
185 NV_PRINTK(warn, job->cli, "job timeout, channel %d killed!\n",
203 struct nouveau_exec_job *job;
218 job = *pjob = kzalloc(sizeof(*job), GFP_KERNEL);
219 if (!job)
222 job->push.count = __args->push.count;
224 job->push.s = kmemdup(__args->push.s,
228 if (!job->push.s) {
235 job->chan = __args->chan;
239 args.credits = job->push.count + 1;
250 ret = nouveau_job_init(&job->base, &args);
257 kfree(job->push.s);
259 kfree(job);
268 struct nouveau_exec_job *job;
271 ret = nouveau_exec_job_init(&job, args);
275 ret = nouveau_job_submit(&job->base);
282 nouveau_job_fini(&job->base);