Home
last modified time | relevance | path

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

12345678

/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_exec.c125 struct xe_sched_job *job; in xe_exec_ioctl() local
288 job = xe_sched_job_create(q, xe_exec_queue_is_parallel(q) ? in xe_exec_ioctl()
290 if (IS_ERR(job)) { in xe_exec_ioctl()
291 err = PTR_ERR(job); in xe_exec_ioctl()
307 err = xe_sched_job_add_deps(job, obj->resv, in xe_exec_ioctl()
315 err = xe_sync_entry_add_deps(&syncs[i], job); in xe_exec_ioctl()
333 xe_sched_job_arm(job); in xe_exec_ioctl()
335 drm_gpuvm_resv_add_fence(&vm->gpuvm, exec, &job->drm.s_fence->finished, in xe_exec_ioctl()
340 xe_sync_entry_signal(&syncs[i], &job->drm.s_fence->finished); in xe_exec_ioctl()
341 xe_sched_job_init_user_fence(job, &syncs[i]); in xe_exec_ioctl()
[all …]
/linux/drivers/gpu/drm/imagination/
H A Dpvr_queue.c376 static u32 job_cmds_size(struct pvr_job *job, u32 ufo_wait_count) in job_cmds_size() argument
384 pvr_cccb_get_size_of_cmd_with_hdr(job->cmd_len) + in job_cmds_size()
389 is_paired_job_fence(struct dma_fence *fence, struct pvr_job *job) in is_paired_job_fence() argument
392 return job->type == DRM_PVR_JOB_TYPE_FRAGMENT && in is_paired_job_fence()
393 job->paired_job && in is_paired_job_fence()
394 &job->paired_job->base.s_fence->scheduled == fence; in is_paired_job_fence()
403 static unsigned long job_count_remaining_native_deps(struct pvr_job *job) in job_count_remaining_native_deps() argument
409 xa_for_each(&job->base.dependencies, index, fence) { in job_count_remaining_native_deps()
412 if (is_paired_job_fence(fence, job)) { in job_count_remaining_native_deps()
447 pvr_queue_get_job_cccb_fence(struct pvr_queue *queue, struct pvr_job *job) in pvr_queue_get_job_cccb_fence() argument
[all …]
H A Dpvr_trace.h44 #define PVR_JOB_GET_HWRT_FW_ADDR(job) \ argument
46 struct pvr_job *_job = (job); \
63 TP_PROTO(struct pvr_device *pvr_dev, struct pvr_job *job,
65 TP_ARGS(pvr_dev, job, sync_op_count),
71 __field(struct pvr_job *, job)
75 __entry->ctx = job->ctx;
76 __entry->fw_obj = job->ctx->fw_obj;
77 pvr_fw_object_get_fw_addr(job->ctx->fw_obj, &__entry->fw_addr);
78 __entry->hwrt_addr = PVR_JOB_GET_HWRT_FW_ADDR(job);
79 __entry->job = job;
[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/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()
439 static int ivpu_cmdq_push_job(struct ivpu_cmdq *cmdq, struct ivpu_job *job) in ivpu_cmdq_push_job() argument
441 struct ivpu_device *vdev = job->vdev; in ivpu_cmdq_push_job()
450 job->file_priv->ctx.id, cmdq->id, cmdq->db_id, header->head, tail); in ivpu_cmdq_push_job()
454 entry = &cmdq->jobq->slot[tail].job; in ivpu_cmdq_push_job()
455 entry->batch_buf_addr = job->cmd_buf_vpu_addr; in ivpu_cmdq_push_job()
456 entry->job_id = job->job_id; in ivpu_cmdq_push_job()
[all …]
/linux/drivers/accel/amdxdna/
H A Daie2_ctx.c78 struct amdxdna_sched_job *job; in aie2_job_release() local
80 job = container_of(ref, struct amdxdna_sched_job, refcnt); in aie2_job_release()
82 amdxdna_sched_job_cleanup(job); in aie2_job_release()
83 atomic64_inc(&job->hwctx->job_free_cnt); in aie2_job_release()
84 wake_up(&job->hwctx->priv->job_free_wq); in aie2_job_release()
85 if (job->out_fence) in aie2_job_release()
86 dma_fence_put(job->out_fence); in aie2_job_release()
87 if (job->drv_cmd) in aie2_job_release()
88 aie2_cmd_put(job->drv_cmd); in aie2_job_release()
89 kfree(job->aie2_job_health); in aie2_job_release()
[all …]
H A Damdxdna_ctx.c165 struct amdxdna_sched_job *job, u32 cmd_idx, in amdxdna_cmd_set_error() argument
169 struct amdxdna_client *client = job->hwctx->client; in amdxdna_cmd_set_error()
517 amdxdna_arg_bos_put(struct amdxdna_sched_job *job) in amdxdna_arg_bos_put() argument
521 for (i = 0; i < job->bo_cnt; i++) { in amdxdna_arg_bos_put()
522 if (!job->bos[i]) in amdxdna_arg_bos_put()
524 drm_gem_object_put(job->bos[i]); in amdxdna_arg_bos_put()
530 struct amdxdna_sched_job *job, in amdxdna_arg_bos_lookup() argument
536 job->bo_cnt = bo_cnt; in amdxdna_arg_bos_lookup()
537 for (i = 0; i < job->bo_cnt; i++) { in amdxdna_arg_bos_lookup()
550 job->bos[i] = gobj; in amdxdna_arg_bos_lookup()
[all …]
/linux/drivers/gpu/drm/nouveau/
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 …]
H A Dnouveau_uvmm.c1035 struct nouveau_uvmm_bind_job *job = in nouveau_uvmm_bind_job_free() local
1039 list_for_each_op_safe(op, next, &job->ops) { in nouveau_uvmm_bind_job_free()
1044 nouveau_job_free(&job->base); in nouveau_uvmm_bind_job_free()
1045 kfree(job); in nouveau_uvmm_bind_job_free()
1049 nouveau_uvmm_bind_job_get(struct nouveau_uvmm_bind_job *job) in nouveau_uvmm_bind_job_get() argument
1051 kref_get(&job->kref); in nouveau_uvmm_bind_job_get()
1055 nouveau_uvmm_bind_job_put(struct nouveau_uvmm_bind_job *job) in nouveau_uvmm_bind_job_put() argument
1057 kref_put(&job->kref, nouveau_uvmm_bind_job_free); in nouveau_uvmm_bind_job_put()
1061 bind_validate_op(struct nouveau_job *job, in bind_validate_op() argument
1064 struct nouveau_uvmm *uvmm = nouveau_cli_uvmm(job->cli); in bind_validate_op()
[all …]
H A Dnouveau_sched.h92 int nouveau_job_init(struct nouveau_job *job,
94 void nouveau_job_fini(struct nouveau_job *job);
95 int nouveau_job_submit(struct nouveau_job *job);
96 void nouveau_job_done(struct nouveau_job *job);
97 void nouveau_job_free(struct nouveau_job *job);
111 } job; member
/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 …]
/linux/drivers/accel/habanalabs/common/
H A Dhw_queue.c279 static void ext_queue_schedule_job(struct hl_cs_job *job) in ext_queue_schedule_job() argument
281 struct hl_device *hdev = job->cs->ctx->hdev; in ext_queue_schedule_job()
282 struct hl_hw_queue *q = &hdev->kernel_queues[job->hw_queue_id]; in ext_queue_schedule_job()
297 cb = job->patched_cb; in ext_queue_schedule_job()
298 len = job->job_cb_size; in ext_queue_schedule_job()
302 if (!cs_needs_completion(job->cs)) in ext_queue_schedule_job()
322 job->user_cb_size, in ext_queue_schedule_job()
326 job->contains_dma_pkt); in ext_queue_schedule_job()
328 q->shadow_queue[hl_pi_2_offset(q->pi)] = job; in ext_queue_schedule_job()
344 static void int_queue_schedule_job(struct hl_cs_job *job) in int_queue_schedule_job() argument
[all …]
H A Dcommand_submission.c267 struct hl_cs_job *job = container_of(ref, struct hl_cs_job, refcount); in cs_job_do_release() local
269 kfree(job); in cs_job_do_release()
272 static void hl_cs_job_put(struct hl_cs_job *job) in hl_cs_job_put() argument
274 kref_put(&job->refcount, cs_job_do_release); in hl_cs_job_put()
299 static bool is_cb_patched(struct hl_device *hdev, struct hl_cs_job *job) in is_cb_patched() argument
302 return (job->queue_type == QUEUE_TYPE_EXT); in is_cb_patched()
316 static int cs_parser(struct hl_fpriv *hpriv, struct hl_cs_job *job) in cs_parser() argument
322 parser.ctx_id = job->cs->ctx->asid; in cs_parser()
323 parser.cs_sequence = job->cs->sequence; in cs_parser()
324 parser.job_id = job->id; in cs_parser()
[all …]
H A Dirq.c81 struct hl_cs_job *job; in job_finish() local
84 job = queue->shadow_queue[hl_pi_2_offset(cs_seq)]; in job_finish()
85 job->timestamp = timestamp; in job_finish()
86 queue_work(hdev->cq_wq[cq->cq_idx], &job->finish_work); in job_finish()
104 struct hl_cs_job *job; in cs_finish() local
114 list_for_each_entry(job, &cs->job_list, cs_node) { in cs_finish()
115 queue = &hdev->kernel_queues[job->hw_queue_id]; in cs_finish()
205 struct timestamp_reg_work_obj *job = in hl_ts_free_objects() local
207 struct list_head *dynamic_alloc_free_list_head = job->dynamic_alloc_free_obj_head; in hl_ts_free_objects()
209 struct list_head *free_list_head = job->free_obj_head; in hl_ts_free_objects()
[all …]
/linux/drivers/scsi/libsas/
H A Dsas_host_smp.c225 void sas_smp_host_handler(struct bsg_job *job, struct Scsi_Host *shost) in sas_smp_host_handler() argument
233 if (job->request_payload.payload_len < 8 || in sas_smp_host_handler()
234 job->reply_payload.payload_len < 8) in sas_smp_host_handler()
238 req_data = kzalloc(job->request_payload.payload_len, GFP_KERNEL); in sas_smp_host_handler()
241 sg_copy_to_buffer(job->request_payload.sg_list, in sas_smp_host_handler()
242 job->request_payload.sg_cnt, req_data, in sas_smp_host_handler()
243 job->request_payload.payload_len); in sas_smp_host_handler()
247 resp_data = kzalloc(max(job->reply_payload.payload_len, 128U), in sas_smp_host_handler()
282 if (job->request_payload.payload_len < 16) in sas_smp_host_handler()
294 if (job->request_payload.payload_len < 16) in sas_smp_host_handler()
[all …]
/linux/Documentation/devicetree/bindings/powerpc/fsl/
H A Draideng.txt30 There must be a sub-node for each job queue present in RAID Engine
33 - compatible: Should contain "fsl,raideng-v1.0-job-queue" as the value
34 This identifies the job queue interface
35 - reg: offset and length of the register set for job queue
42 compatible = "fsl,raideng-v1.0-job-queue";
48 There must be a sub-node for each job ring present in RAID Engine
49 This node must be a sub-node of job queue node
51 - compatible: Must contain "fsl,raideng-v1.0-job-ring" as the value
52 This identifies job ring. Should contain either
55 - reg: offset and length of the register set for job ring
[all …]
/linux/drivers/crypto/tegra/
H A Dtegra-se-main.c144 struct host1x_job *job; in tegra_se_host1x_submit() local
147 job = host1x_job_alloc(se->channel, 1, 0, true); in tegra_se_host1x_submit()
148 if (!job) { in tegra_se_host1x_submit()
153 job->syncpt = host1x_syncpt_get(se->syncpt); in tegra_se_host1x_submit()
154 job->syncpt_incrs = 1; in tegra_se_host1x_submit()
155 job->client = &se->client; in tegra_se_host1x_submit()
156 job->class = se->client.class; in tegra_se_host1x_submit()
157 job->serialize = true; in tegra_se_host1x_submit()
158 job->engine_fallback_streamid = se->stream_id; in tegra_se_host1x_submit()
159 job->engine_streamid_offset = SE_STREAM_ID; in tegra_se_host1x_submit()
[all …]
/linux/drivers/gpu/drm/panthor/
H A Dpanthor_sched.c1113 struct panthor_job *job; in queue_suspend_timeout_locked() local
1122 job = list_first_entry_or_null(&queue->fence_ctx.in_flight_jobs, in queue_suspend_timeout_locked()
1124 group = job ? job->group : NULL; in queue_suspend_timeout_locked()
1132 (group->blocked_queues & BIT(job->queue_idx)) && in queue_suspend_timeout_locked()
1141 if (!timer_was_active || !job) in queue_suspend_timeout_locked()
1541 struct panthor_job *job; in cs_slot_process_fault_event_locked() local
1544 list_for_each_entry(job, &queue->fence_ctx.in_flight_jobs, node) { in cs_slot_process_fault_event_locked()
1545 if (cs_extract >= job->ringbuf.end) in cs_slot_process_fault_event_locked()
1548 if (cs_extract < job->ringbuf.start) in cs_slot_process_fault_event_locked()
1551 dma_fence_set_error(job->done_fence, -EINVAL); in cs_slot_process_fault_event_locked()
[all …]
/linux/drivers/media/platform/renesas/
H A Drcar_fdp1.c655 struct fdp1_job *job; in list_remove_job() local
659 job = list_first_entry_or_null(list, struct fdp1_job, list); in list_remove_job()
660 if (job) in list_remove_job()
661 list_del(&job->list); in list_remove_job()
664 return job; in list_remove_job()
674 struct fdp1_job *job) in list_add_job() argument
679 list_add_tail(&job->list, list); in list_add_job()
688 static void fdp1_job_free(struct fdp1_dev *fdp1, struct fdp1_job *job) in fdp1_job_free() argument
691 memset(job, 0, sizeof(struct fdp1_job)); in fdp1_job_free()
693 list_add_job(fdp1, &fdp1->free_job_list, job); in fdp1_job_free()
[all …]
/linux/arch/powerpc/boot/dts/fsl/
H A Dqoriq-sec6.0-0.dtsi42 compatible = "fsl,sec-v6.0-job-ring",
43 "fsl,sec-v5.2-job-ring",
44 "fsl,sec-v5.0-job-ring",
45 "fsl,sec-v4.4-job-ring",
46 "fsl,sec-v4.0-job-ring";
51 compatible = "fsl,sec-v6.0-job-ring",
52 "fsl,sec-v5.2-job-ring",
53 "fsl,sec-v5.0-job-ring",
54 "fsl,sec-v4.4-job-ring",
55 "fsl,sec-v4.0-job-ring";
H A Dqoriq-sec5.3-0.dtsi45 compatible = "fsl,sec-v5.3-job-ring",
46 "fsl,sec-v5.0-job-ring",
47 "fsl,sec-v4.0-job-ring";
53 compatible = "fsl,sec-v5.3-job-ring",
54 "fsl,sec-v5.0-job-ring",
55 "fsl,sec-v4.0-job-ring";
61 compatible = "fsl,sec-v5.3-job-ring",
62 "fsl,sec-v5.0-job-ring",
63 "fsl,sec-v4.0-job-ring";
69 compatible = "fsl,sec-v5.3-job-ring",
[all …]
H A Dqoriq-sec5.2-0.dtsi45 compatible = "fsl,sec-v5.2-job-ring",
46 "fsl,sec-v5.0-job-ring",
47 "fsl,sec-v4.0-job-ring";
53 compatible = "fsl,sec-v5.2-job-ring",
54 "fsl,sec-v5.0-job-ring",
55 "fsl,sec-v4.0-job-ring";
61 compatible = "fsl,sec-v5.2-job-ring",
62 "fsl,sec-v5.0-job-ring",
63 "fsl,sec-v4.0-job-ring";
69 compatible = "fsl,sec-v5.2-job-ring",
[all …]
/linux/drivers/scsi/smartpqi/
H A Dsmartpqi_sas_transport.c458 struct bsg_job *job) in pqi_build_csmi_smp_passthru_buffer() argument
470 req_size = job->request_payload.payload_len; in pqi_build_csmi_smp_passthru_buffer()
471 resp_size = job->reply_payload.payload_len; in pqi_build_csmi_smp_passthru_buffer()
494 sg_copy_to_buffer(job->request_payload.sg_list, in pqi_build_csmi_smp_passthru_buffer()
495 job->reply_payload.sg_cnt, &parameters->request, in pqi_build_csmi_smp_passthru_buffer()
502 struct bmic_csmi_smp_passthru_buffer *smp_buf, struct bsg_job *job, in pqi_build_sas_smp_handler_reply() argument
505 sg_copy_from_buffer(job->reply_payload.sg_list, in pqi_build_sas_smp_handler_reply()
506 job->reply_payload.sg_cnt, &smp_buf->parameters.response, in pqi_build_sas_smp_handler_reply()
509 job->reply_len = le16_to_cpu(error_info->sense_data_length); in pqi_build_sas_smp_handler_reply()
510 memcpy(job->reply, error_info->data, in pqi_build_sas_smp_handler_reply()
[all …]
/linux/Documentation/core-api/
H A Dpadata.rst14 is currently the sole consumer of padata's serialized job support.
16 Padata also supports multithreaded jobs, splitting up the job evenly while load
38 A padata_shell is used to submit a job to padata and allows a series of such
84 padata_priv structure, which represents one job::
99 The submission of the job is done with::
105 points to the preferred CPU to be used for the final callback when the job is
108 padata_do_parallel() is zero on success, indicating that the job is in
114 Each job submitted to padata_do_parallel() will, in turn, be passed to
123 parallel() will take responsibility for the job from this point. The job
125 outstanding, it should be prepared to be called again with a new job before
[all …]

12345678