Home
last modified time | relevance | path

Searched refs:job (Results 1 – 25 of 232) sorted by relevance

12345678910

/linux/drivers/gpu/drm/nouveau/
H A Dnouveau_sched.c26 nouveau_job_init(struct nouveau_job *job, in nouveau_job_init() argument
32 INIT_LIST_HEAD(&job->entry); in nouveau_job_init()
34 job->file_priv = args->file_priv; in nouveau_job_init()
35 job->cli = nouveau_cli(args->file_priv); in nouveau_job_init()
36 job->sched = sched; in nouveau_job_init()
38 job->sync = args->sync; in nouveau_job_init()
39 job->resv_usage = args->resv_usage; in nouveau_job_init()
41 job->ops = args->ops; in nouveau_job_init()
43 job->in_sync.count = args->in_sync.count; in nouveau_job_init()
44 if (job->in_sync.count) { in nouveau_job_init()
[all …]
H A Dnouveau_exec.c89 nouveau_exec_job_submit(struct nouveau_job *job, in nouveau_exec_job_submit() argument
92 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job); in nouveau_exec_job_submit()
93 struct nouveau_cli *cli = job->cli; in nouveau_exec_job_submit()
120 nouveau_exec_job_armed_submit(struct nouveau_job *job, in nouveau_exec_job_armed_submit() argument
123 drm_gpuvm_exec_resv_add_fence(vme, job->done_fence, in nouveau_exec_job_armed_submit()
124 job->resv_usage, job->resv_usage); in nouveau_exec_job_armed_submit()
129 nouveau_exec_job_run(struct nouveau_job *job) in nouveau_exec_job_run() argument
131 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job); in nouveau_exec_job_run()
138 NV_PRINTK(err, job->cli, "nv50cal_space: %d\n", ret); in nouveau_exec_job_run()
154 NV_PRINTK(err, job->cli, "error fencing pushbuf: %d\n", ret); in nouveau_exec_job_run()
[all …]
/linux/drivers/gpu/drm/xe/
H A Dxe_tlb_inval_job.c50 struct xe_tlb_inval_job *job = in xe_tlb_inval_job_run() local
51 container_of(dep_job, typeof(*job), dep); in xe_tlb_inval_job_run()
53 container_of(job->fence, typeof(*ifence), base); in xe_tlb_inval_job_run()
56 if (xe_page_reclaim_list_valid(&job->prl)) { in xe_tlb_inval_job_run()
57 prl_sa = xe_page_reclaim_create_prl_bo(job->tlb_inval, &job->prl, ifence); in xe_tlb_inval_job_run()
62 xe_tlb_inval_range(job->tlb_inval, ifence, job->start, in xe_tlb_inval_job_run()
63 job->end, job->vm->usm.asid, prl_sa); in xe_tlb_inval_job_run()
65 return job->fence; in xe_tlb_inval_job_run()
70 struct xe_tlb_inval_job *job = in xe_tlb_inval_job_free() local
71 container_of(dep_job, typeof(*job), dep); in xe_tlb_inval_job_free()
[all …]
H A Dxe_ring_ops.c178 static int emit_render_cache_flush(struct xe_sched_job *job, u32 *dw, int i) in emit_render_cache_flush() argument
180 struct xe_exec_queue *q = job->q; in emit_render_cache_flush()
201 else if (job->q->class == XE_ENGINE_CLASS_COMPUTE) in emit_render_cache_flush()
228 static u32 get_ppgtt_flag(struct xe_sched_job *job) in get_ppgtt_flag() argument
230 if (job->q->vm && !job->ggtt) in get_ppgtt_flag()
260 static void __emit_job_gen12_simple(struct xe_sched_job *job, struct xe_lrc *lrc, in __emit_job_gen12_simple() argument
264 u32 ppgtt_flag = get_ppgtt_flag(job); in __emit_job_gen12_simple()
265 struct xe_gt *gt = job->q->gt; in __emit_job_gen12_simple()
271 if (job->ring_ops_flush_tlb) { in __emit_job_gen12_simple()
286 if (job->user_fence.used) { in __emit_job_gen12_simple()
[all …]
/linux/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_job.c37 struct amdgpu_job *job) in amdgpu_job_do_core_dump() argument
48 amdgpu_coredump(adev, true, false, job); in amdgpu_job_do_core_dump()
52 struct amdgpu_job *job) in amdgpu_job_core_dump() argument
80 amdgpu_job_do_core_dump(tmp_adev, job); in amdgpu_job_core_dump()
91 struct amdgpu_job *job = to_amdgpu_job(s_job); in amdgpu_job_timedout() local
113 amdgpu_job_core_dump(adev, job); in amdgpu_job_timedout()
117 amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) { in amdgpu_job_timedout()
124 job->base.sched->name, atomic_read(&ring->fence_drv.last_seq), in amdgpu_job_timedout()
127 ti = amdgpu_vm_get_task_info_pasid(ring->adev, job->pasid); in amdgpu_job_timedout()
141 r = amdgpu_ring_reset(ring, job->vmid, job->hw_fence); in amdgpu_job_timedout()
[all …]
H A Damdgpu_ib.c125 struct amdgpu_ib *ibs, struct amdgpu_job *job, in amdgpu_ib_schedule() argument
139 int vmid = AMDGPU_JOB_GET_VMID(job); in amdgpu_ib_schedule()
149 if (job) { in amdgpu_ib_schedule()
150 vm = job->vm; in amdgpu_ib_schedule()
151 fence_ctx = job->base.s_fence ? in amdgpu_ib_schedule()
152 job->base.s_fence->finished.context : 0; in amdgpu_ib_schedule()
153 shadow_va = job->shadow_va; in amdgpu_ib_schedule()
154 csa_va = job->csa_va; in amdgpu_ib_schedule()
155 gds_va = job->gds_va; in amdgpu_ib_schedule()
156 init_shadow = job->init_shadow; in amdgpu_ib_schedule()
[all …]
H A Damdgpu_ids.c169 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()
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()
[all …]
/linux/drivers/gpu/host1x/
H A Djob.c30 struct host1x_job *job = NULL; in host1x_job_alloc() local
51 mem = job = kzalloc(total, GFP_KERNEL); in host1x_job_alloc()
52 if (!job) in host1x_job_alloc()
55 job->enable_firewall = enable_firewall; in host1x_job_alloc()
57 kref_init(&job->ref); in host1x_job_alloc()
58 job->channel = ch; in host1x_job_alloc()
62 job->relocs = num_relocs ? mem : NULL; in host1x_job_alloc()
64 job->unpins = num_unpins ? mem : NULL; in host1x_job_alloc()
66 job->cmds = num_cmdbufs ? mem : NULL; in host1x_job_alloc()
68 job->addr_phys = num_unpins ? mem : NULL; in host1x_job_alloc()
[all …]
/linux/drivers/md/
H A Ddm-kcopyd.c420 struct kcopyd_job *job; in pop_io_job() local
426 list_for_each_entry(job, jobs, list) { in pop_io_job()
427 if (job->op == REQ_OP_READ || in pop_io_job()
428 !(job->flags & BIT(DM_KCOPYD_WRITE_SEQ))) { in pop_io_job()
429 list_del(&job->list); in pop_io_job()
430 return job; in pop_io_job()
433 if (job->write_offset == job->master_job->write_offset) { in pop_io_job()
434 job->master_job->write_offset += job->source.count; in pop_io_job()
435 list_del(&job->list); in pop_io_job()
436 return job; in pop_io_job()
[all …]
/linux/drivers/gpu/drm/imagination/
H A Dpvr_job.c25 struct pvr_job *job = container_of(kref, struct pvr_job, ref_count); in pvr_job_release() local
27 xa_erase(&job->pvr_dev->job_ids, job->id); in pvr_job_release()
29 pvr_hwrt_data_put(job->hwrt); in pvr_job_release()
30 pvr_context_put(job->ctx); in pvr_job_release()
32 WARN_ON(job->paired_job); in pvr_job_release()
34 pvr_queue_job_cleanup(job); in pvr_job_release()
35 pvr_job_release_pm_ref(job); in pvr_job_release()
37 kfree(job->cmd); in pvr_job_release()
38 kfree(job); in pvr_job_release()
46 pvr_job_put(struct pvr_job *job) in pvr_job_put() argument
[all …]
H A Dpvr_queue.c350 static u32 job_cmds_size(struct pvr_job *job, u32 ufo_wait_count) in job_cmds_size() argument
356 pvr_cccb_get_size_of_cmd_with_hdr(job->cmd_len); in job_cmds_size()
365 static unsigned long job_count_remaining_native_deps(struct pvr_job *job) in job_count_remaining_native_deps() argument
371 xa_for_each(&job->base.dependencies, index, fence) { in job_count_remaining_native_deps()
398 pvr_queue_get_job_cccb_fence(struct pvr_queue *queue, struct pvr_job *job) in pvr_queue_get_job_cccb_fence() argument
406 if (!job->cccb_fence) in pvr_queue_get_job_cccb_fence()
412 native_deps_remaining = job_count_remaining_native_deps(job); in pvr_queue_get_job_cccb_fence()
413 if (pvr_cccb_cmdseq_fits(&queue->cccb, job_cmds_size(job, native_deps_remaining))) { in pvr_queue_get_job_cccb_fence()
414 pvr_queue_fence_put(job->cccb_fence); in pvr_queue_get_job_cccb_fence()
415 job->cccb_fence = NULL; in pvr_queue_get_job_cccb_fence()
[all …]
H A Dpvr_job.h104 pvr_job_get(struct pvr_job *job) in pvr_job_get() argument
106 if (job) in pvr_job_get()
107 kref_get(&job->ref_count); in pvr_job_get()
109 return job; in pvr_job_get()
112 void pvr_job_put(struct pvr_job *job);
119 pvr_job_release_pm_ref(struct pvr_job *job) in pvr_job_release_pm_ref() argument
121 if (job->has_pm_ref) { in pvr_job_release_pm_ref()
122 pvr_power_put(job->pvr_dev); in pvr_job_release_pm_ref()
123 job->has_pm_ref = false; in pvr_job_release_pm_ref()
136 pvr_job_get_pm_ref(struct pvr_job *job) in pvr_job_get_pm_ref() argument
[all …]
/linux/block/
H A Dbsg-lib.c31 struct bsg_job *job; in bsg_transport_sg_io_fn() local
49 job = blk_mq_rq_to_pdu(rq); in bsg_transport_sg_io_fn()
50 reply = job->reply; in bsg_transport_sg_io_fn()
51 memset(job, 0, sizeof(*job)); in bsg_transport_sg_io_fn()
52 job->reply = reply; in bsg_transport_sg_io_fn()
53 job->reply_len = SCSI_SENSE_BUFFERSIZE; in bsg_transport_sg_io_fn()
54 job->dd_data = job + 1; in bsg_transport_sg_io_fn()
56 job->request_len = hdr->request_len; in bsg_transport_sg_io_fn()
57 job->request = memdup_user(uptr64(hdr->request), hdr->request_len); in bsg_transport_sg_io_fn()
58 if (IS_ERR(job->request)) { in bsg_transport_sg_io_fn()
[all …]
/linux/drivers/accel/rocket/
H A Drocket_job.c61 struct drm_rocket_job *job, in rocket_copy_tasks() argument
66 if (job->task_struct_size < sizeof(struct drm_rocket_task)) in rocket_copy_tasks()
69 rjob->task_count = job->task_count; in rocket_copy_tasks()
74 rjob->tasks = kvmalloc_objs(*rjob->tasks, job->task_count); in rocket_copy_tasks()
84 u64_to_user_ptr(job->tasks) + i * job->task_struct_size, in rocket_copy_tasks()
108 static void rocket_job_hw_submit(struct rocket_core *core, struct rocket_job *job) in rocket_job_hw_submit() argument
119 task = &job->tasks[job->next_task_idx]; in rocket_job_hw_submit()
120 job->next_task_idx++; in rocket_job_hw_submit()
157 struct drm_sched_job *job, in rocket_acquire_object_fences() argument
167 ret = drm_sched_job_add_implicit_dependencies(job, bos[i], in rocket_acquire_object_fences()
[all …]
/linux/drivers/accel/ethosu/
H A Dethosu_job.c45 static void ethosu_job_hw_submit(struct ethosu_device *dev, struct ethosu_job *job) in ethosu_job_hw_submit() argument
47 struct drm_gem_dma_object *cmd_bo = to_drm_gem_dma_obj(job->cmd_bo); in ethosu_job_hw_submit()
48 struct ethosu_validated_cmdstream_info *cmd_info = to_ethosu_bo(job->cmd_bo)->info; in ethosu_job_hw_submit()
50 for (int i = 0; i < job->region_cnt; i++) { in ethosu_job_hw_submit()
52 int region = job->region_bo_num[i]; in ethosu_job_hw_submit()
54 bo = to_drm_gem_dma_obj(job->region_bo[i]); in ethosu_job_hw_submit()
60 if (job->sram_size) { in ethosu_job_hw_submit()
79 static int ethosu_acquire_object_fences(struct ethosu_job *job) in ethosu_acquire_object_fences() argument
82 struct drm_gem_object **bos = job->region_bo; in ethosu_acquire_object_fences()
83 struct ethosu_validated_cmdstream_info *info = to_ethosu_bo(job->cmd_bo)->info; in ethosu_acquire_object_fences()
[all …]
/linux/drivers/gpu/drm/v3d/
H A Dv3d_submit.c23 v3d_lock_bo_reservations(struct v3d_job *job, in v3d_lock_bo_reservations() argument
28 ret = drm_gem_lock_reservations(job->bo, job->bo_count, acquire_ctx); in v3d_lock_bo_reservations()
32 for (i = 0; i < job->bo_count; i++) { in v3d_lock_bo_reservations()
33 ret = dma_resv_reserve_fences(job->bo[i]->resv, 1); in v3d_lock_bo_reservations()
37 ret = drm_sched_job_add_implicit_dependencies(&job->base, in v3d_lock_bo_reservations()
38 job->bo[i], true); in v3d_lock_bo_reservations()
46 drm_gem_unlock_reservations(job->bo, job->bo_count, acquire_ctx); in v3d_lock_bo_reservations()
69 struct v3d_job *job, in v3d_lookup_bos() argument
73 job->bo_count = bo_count; in v3d_lookup_bos()
75 if (!job->bo_count) { in v3d_lookup_bos()
[all …]
/linux/drivers/gpu/drm/panfrost/
H A Dpanfrost_job.c111 int panfrost_job_get_slot(struct panfrost_job *job) in panfrost_job_get_slot() argument
117 if (job->requirements & PANFROST_JD_REQ_FS) in panfrost_job_get_slot()
122 if (job->requirements & PANFROST_JD_REQ_ONLY_COMPUTE) { in panfrost_job_get_slot()
123 if ((job->requirements & PANFROST_JD_REQ_CORE_GRP_MASK) && in panfrost_job_get_slot()
124 (job->pfdev->features.nr_core_groups == 2)) in panfrost_job_get_slot()
126 if (panfrost_has_hw_issue(job->pfdev, HW_ISSUE_8987)) in panfrost_job_get_slot()
151 panfrost_get_job_chain_flag(const struct panfrost_job *job) in panfrost_get_job_chain_flag() argument
153 struct panfrost_fence *f = to_panfrost_fence(job->done_fence); in panfrost_get_job_chain_flag()
155 if (!panfrost_has_hw_feature(job->pfdev, HW_FEATURE_JOBCHAIN_DISAMBIGUATION)) in panfrost_get_job_chain_flag()
164 struct panfrost_job *job = pfdev->jobs[slot][0]; in panfrost_dequeue_job() local
[all …]
/linux/drivers/accel/ivpu/
H A Divpu_job.c74 struct ivpu_cmdq *cmdq, struct ivpu_job *job) in ivpu_preemption_job_init() argument
79 if (job->primary_preempt_buf) in ivpu_preemption_job_init()
90 job->primary_preempt_buf = cmdq->primary_preempt_buf; in ivpu_preemption_job_init()
91 job->secondary_preempt_buf = cmdq->secondary_preempt_buf; in ivpu_preemption_job_init()
423 static int ivpu_cmdq_push_job(struct ivpu_cmdq *cmdq, struct ivpu_job *job) in ivpu_cmdq_push_job() argument
425 struct ivpu_device *vdev = job->vdev; in ivpu_cmdq_push_job()
434 job->file_priv->ctx.id, cmdq->id, cmdq->db_id, header->head, tail); in ivpu_cmdq_push_job()
438 entry = &cmdq->jobq->slot[tail].job; in ivpu_cmdq_push_job()
439 entry->batch_buf_addr = job->cmd_buf_vpu_addr; in ivpu_cmdq_push_job()
440 entry->job_id = job->job_id; in ivpu_cmdq_push_job()
[all …]
/linux/drivers/gpu/drm/msm/
H A Dmsm_gem_vma.c153 static inline struct msm_vm_bind_job *to_msm_vm_bind_job(struct drm_sched_job *job) in to_msm_vm_bind_job() argument
155 return container_of(job, struct msm_vm_bind_job, base); in to_msm_vm_bind_job()
460 struct msm_vm_bind_job *job; member
473 list_add_tail(&op->node, &arg->job->vm_ops); in vm_op_enqueue()
484 return msm_gem_vma_new(arg->job->vm, op->gem.obj, op->gem.offset, in vma_from_op()
492 struct msm_vm_bind_job *job = arg->job; in msm_gem_vm_sm_step_map() local
525 .queue_id = job->queue->id, in msm_gem_vm_sm_step_map()
542 struct msm_vm_bind_job *job = ((struct op_arg *)arg)->job; in msm_gem_vm_sm_step_remap() local
543 struct drm_gpuvm *vm = job->vm; in msm_gem_vm_sm_step_remap()
564 .queue_id = job->queue->id, in msm_gem_vm_sm_step_remap()
[all …]
/linux/drivers/accel/amdxdna/
H A Daie2_ctx.c34 struct amdxdna_sched_job *job; in aie2_job_release() local
36 job = container_of(ref, struct amdxdna_sched_job, refcnt); in aie2_job_release()
37 amdxdna_sched_job_cleanup(job); in aie2_job_release()
38 atomic64_inc(&job->hwctx->job_free_cnt); in aie2_job_release()
39 wake_up(&job->hwctx->priv->job_free_wq); in aie2_job_release()
40 if (job->out_fence) in aie2_job_release()
41 dma_fence_put(job->out_fence); in aie2_job_release()
42 kfree(job); in aie2_job_release()
45 static void aie2_job_put(struct amdxdna_sched_job *job) in aie2_job_put() argument
47 kref_put(&job->refcnt, aie2_job_release); in aie2_job_put()
[all …]
H A Damdxdna_ctx.c140 struct amdxdna_sched_job *job, u32 cmd_idx, in amdxdna_cmd_set_error() argument
143 struct amdxdna_client *client = job->hwctx->client; in amdxdna_cmd_set_error()
390 amdxdna_arg_bos_put(struct amdxdna_sched_job *job) in amdxdna_arg_bos_put() argument
394 for (i = 0; i < job->bo_cnt; i++) { in amdxdna_arg_bos_put()
395 if (!job->bos[i]) in amdxdna_arg_bos_put()
397 drm_gem_object_put(job->bos[i]); in amdxdna_arg_bos_put()
403 struct amdxdna_sched_job *job, in amdxdna_arg_bos_lookup() argument
409 job->bo_cnt = bo_cnt; in amdxdna_arg_bos_lookup()
410 for (i = 0; i < job->bo_cnt; i++) { in amdxdna_arg_bos_lookup()
423 job->bos[i] = gobj; in amdxdna_arg_bos_lookup()
[all …]
/linux/drivers/gpu/drm/scheduler/
H A Dsched_main.c524 struct drm_sched_job *job) in drm_sched_job_reinsert_on_false_timeout() argument
527 list_add(&job->list, &sched->pending_list); in drm_sched_job_reinsert_on_false_timeout()
540 struct drm_sched_job *job; in drm_sched_job_timedout() local
547 job = list_first_entry_or_null(&sched->pending_list, in drm_sched_job_timedout()
550 if (job) { in drm_sched_job_timedout()
557 list_del_init(&job->list); in drm_sched_job_timedout()
560 status = job->sched->ops->timedout_job(job); in drm_sched_job_timedout()
567 job->sched->ops->free_job(job); in drm_sched_job_timedout()
572 drm_sched_job_reinsert_on_false_timeout(sched, job); in drm_sched_job_timedout()
800 int drm_sched_job_init(struct drm_sched_job *job, in drm_sched_job_init() argument
[all …]
/linux/drivers/gpu/drm/tegra/
H A Dsubmit.c327 static int submit_get_syncpt(struct tegra_drm_context *context, struct host1x_job *job, in submit_get_syncpt() argument
344 job->syncpt = host1x_syncpt_get(sp); in submit_get_syncpt()
345 job->syncpt_incrs = args->syncpt.increments; in submit_get_syncpt()
350 static int submit_job_add_gather(struct host1x_job *job, struct tegra_drm_context *context, in submit_job_add_gather() argument
385 host1x_job_add_gather(job, &bo->base, cmd->words, *offset * 4); in submit_job_add_gather()
399 struct host1x_job *job; in submit_create_job() local
412 job = host1x_job_alloc(context->channel, args->num_cmds, 0, true); in submit_create_job()
413 if (!job) { in submit_create_job()
415 job = ERR_PTR(-ENOMEM); in submit_create_job()
419 err = submit_get_syncpt(context, job, syncpoints, args); in submit_create_job()
[all …]
/linux/drivers/gpu/drm/
H A Ddrm_writeback.c437 int drm_writeback_prepare_job(struct drm_writeback_job *job) in drm_writeback_prepare_job() argument
439 struct drm_writeback_connector *connector = job->connector; in drm_writeback_prepare_job()
445 ret = funcs->prepare_writeback_job(connector, job); in drm_writeback_prepare_job()
450 job->prepared = true; in drm_writeback_prepare_job()
477 struct drm_writeback_job *job; in drm_writeback_queue_job() local
480 job = conn_state->writeback_job; in drm_writeback_queue_job()
484 list_add_tail(&job->list_entry, &wb_connector->job_queue); in drm_writeback_queue_job()
489 void drm_writeback_cleanup_job(struct drm_writeback_job *job) in drm_writeback_cleanup_job() argument
491 struct drm_writeback_connector *connector = job->connector; in drm_writeback_cleanup_job()
495 if (job->prepared && funcs->cleanup_writeback_job) in drm_writeback_cleanup_job()
[all …]
/linux/drivers/scsi/lpfc/
H A Dlpfc_bsg.c305 struct bsg_job *job; in lpfc_bsg_send_mgmt_cmd_cmp() local
318 job = dd_data->set_job; in lpfc_bsg_send_mgmt_cmd_cmp()
319 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp()
320 bsg_reply = job->reply; in lpfc_bsg_send_mgmt_cmd_cmp()
322 job->dd_data = NULL; in lpfc_bsg_send_mgmt_cmd_cmp()
342 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp()
361 lpfc_bsg_copy_data(rmp, &job->reply_payload, in lpfc_bsg_send_mgmt_cmd_cmp()
376 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp()
378 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_send_mgmt_cmd_cmp()
389 lpfc_bsg_send_mgmt_cmd(struct bsg_job *job) in lpfc_bsg_send_mgmt_cmd() argument
[all …]

12345678910