Home
last modified time | relevance | path

Searched full:job (Results 1 – 25 of 421) sorted by relevance

12345678910>>...17

/linux/drivers/gpu/drm/xe/
H A Dxe_tlb_inval_job.c19 /** struct xe_tlb_inval_job - TLB invalidation job */
21 /** @dep: base generic dependency Xe job */
31 /** @refcount: ref count of this job */
34 * @fence: dma fence to indicate completion. 1 way relationship - job
35 * can safely reference fence, fence cannot safely reference job.
50 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()
[all …]
H A Dxe_exec.c66 * submission time and set the DRM scheduler max job limit SIZE_OF_RING /
84 * Create job |
86 * Add rebind fence dependency to job |
87 * Add job VM dma-resv bookkeeping slot (non-compute mode) |
88 * Add job to external BOs dma-resv write slots (non-compute mode) |
90 * Install in / out fences for job
91 * Submit job
104 /* The fence slot added here is intended for the exec sched job. */ in xe_exec_fn()
125 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()
[all …]
/linux/drivers/gpu/drm/imagination/
H A Dpvr_queue.c193 * Currently the only dma_fence backed by a UFO object is the job fence, in pvr_queue_fence_is_ufo_backed()
205 * - a job fence directly, in which case it simply returns the containing pvr_queue_fence;
207 * the parent pointer to find the job fence (note that the parent pointer is initialized
208 * only after the run_job() callback is called on the drm_sched_fence's owning job);
264 * Call this function to allocate job CCCB and done fences. This only
329 * pvr_queue_job_fence_init() - Initializes a job done fence object.
334 * a job.
376 static u32 job_cmds_size(struct pvr_job *job, u32 ufo_wait_count) in job_cmds_size() argument
379 * One UFO command per native fence this job will be waiting on (unless any are in job_cmds_size()
380 * signaled by the time the job is submitted), plus a command for the job itself, in job_cmds_size()
[all …]
H A Dpvr_job.h34 /** @ref_count: Refcount for job. */
37 /** @type: Type of job. */
40 /** @id: Job ID number. */
44 * @paired_job: Job paired to this job.
50 * fragment job to execute when the Parameter Manager runs out of memory.
52 * The geometry job should point to the fragment job it's paired with,
53 * and the fragment job should point to the geometry job it's paired with.
63 /** @done_fence: Fence to signal when the job is done. */
87 * @has_pm_ref: True if the job has a power ref, thus forcing the GPU to stay on until
88 * the job is done.
[all …]
H A Dpvr_trace.h30 /* Job submit */
44 #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);
[all …]
H A Dpvr_queue.h36 * issued if there's enough space in the CCCB to push job commands.
43 * @job: Job waiting for CCCB space.
46 * there's no more than one job waiting for CCCB at a given time.
52 struct pvr_job *job; member
54 /** @job_lock: Lock protecting access to the job object. */
73 * struct pvr_queue - Job queue
104 * space to receive all commands needed for a job to complete.
108 /** @job_fence_ctx: Job fence context object. */
122 * job queued to this queue.
125 * geom+frag jobs, to guarantee that the fragment job that's part of
[all …]
/linux/drivers/accel/rocket/
H A Drocket_job.c62 struct drm_rocket_job *job, in rocket_copy_tasks() argument
67 if (job->task_struct_size < sizeof(struct drm_rocket_task)) in rocket_copy_tasks()
70 rjob->task_count = job->task_count; in rocket_copy_tasks()
75 rjob->tasks = kvmalloc_objs(*rjob->tasks, job->task_count); in rocket_copy_tasks()
85 u64_to_user_ptr(job->tasks) + i * job->task_struct_size, in rocket_copy_tasks()
110 static void rocket_job_hw_submit(struct rocket_core *core, struct rocket_job *job) in rocket_job_hw_submit() argument
115 /* Don't queue the job if a reset is in progress */ in rocket_job_hw_submit()
121 task = &job->tasks[job->next_task_idx]; in rocket_job_hw_submit()
122 job->next_task_idx++; in rocket_job_hw_submit()
159 struct drm_sched_job *job, in rocket_acquire_object_fences() 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()
187 ivpu_dbg(vdev, JOB, "Command queue %d created, ctx %d, flags 0x%08x\n", in ivpu_cmdq_create()
248 ivpu_dbg(vdev, JOB, "DB %d registered to cmdq %d ctx %d priority %d\n", in ivpu_register_db()
302 ivpu_dbg(vdev, JOB, "DB %d unregistered\n", cmdq->db_id); in ivpu_cmdq_unregister()
307 ivpu_dbg(vdev, JOB, "Command queue %d destroyed, ctx %d\n", in ivpu_cmdq_unregister()
385 * and FW loses job queue state. The next time job queue is used it
426 ivpu_dbg(vdev, JOB, "Context ID: %u abort\n", file_priv->ctx.id); in ivpu_context_abort_locked()
[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 …]
/linux/drivers/scsi/lpfc/
H A Dlpfc_bsg.c71 /* driver data associated with the job */
96 struct bsg_job *set_job; /* job waiting for this iocb to finish */
305 struct bsg_job *job; in lpfc_bsg_send_mgmt_cmd_cmp() local
316 /* Determine if job has been aborted */ in lpfc_bsg_send_mgmt_cmd_cmp()
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()
321 /* Prevent timeout handling from trying to abort job */ 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()
[all …]
/linux/drivers/gpu/drm/nouveau/
H A Dnouveau_exec.c67 * 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 * executed 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
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
[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/media/platform/renesas/rcar-isp/
H A Dcore.c141 struct rcar_isp_job *job; in risp_core_job_run() local
150 if (core->vspx.job) in risp_core_job_run()
153 job = list_first_entry_or_null(&core->risp_jobs, in risp_core_job_run()
156 if (!job) in risp_core_job_run()
159 list_del(&job->job_queue); in risp_core_job_run()
161 core->vspx.job = job; in risp_core_job_run()
165 struct risp_buffer *buf = job->buffers[i]; in risp_core_job_run()
169 risp_core_job_run_params(core, &job->vspx_job, buf); in risp_core_job_run()
177 if (vsp1_isp_job_run(core->vspx.dev, &job->vspx_job)) { in risp_core_job_run()
179 * Release all buffers in this job if running on the VSPX in risp_core_job_run()
[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
80 Running A Job
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
[all …]
/linux/drivers/accel/habanalabs/common/
H A Dhw_queue.c229 * hl_hw_queue_send_cb_no_cmpl - send a single CB (not a JOB) without completion
272 * ext_queue_schedule_job - submit a JOB to an external queue
274 * @job: pointer to the job that needs to be submitted to the queue
279 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()
292 * Update the JOB ID inside the BD CTL so the device would know what 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()
[all …]
H A Dirq.c70 * job_finish - queue job finish work
81 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()
173 * 2. Interrupt per CS job completion in queue: (CQ per queue) in hl_irq_handler_cq()
174 * CQ entry represents a completed job in a certain queue in hl_irq_handler_cq()
[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()
149 dev_err(se->dev, "failed to allocate host1x job\n"); 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()
[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 …]
H A Dpq3-sec4.4-0.dtsi45 compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring";
51 compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring";
57 compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring";
63 compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring";
/linux/drivers/gpu/drm/panthor/
H A Dpanthor_sched.c65 * We rely on the drm_gpu_scheduler framework to deal with job
68 * entity has its own job scheduler. When a job is ready to be executed
88 * a queue of waiters, ordered by job submission order). This approach
461 * @fence_ctx.last_fence: Fence of the last submitted job.
466 * the CS ring buffer with a dummy job that only signals the fence.
479 /** @profiling: Job profiling data slots and access information. */
636 * callback and job post-completion processing function
679 /** @sync_upd_work: Work used to check/signal job fences. */
792 * struct panthor_job - Used to manage GPU job
801 /** @group: Group of the queue this job will be pushed to. */
[all …]
/linux/drivers/media/platform/renesas/
H A Drcar_fdp1.c54 /* Number of Job's to have available on the processing queue */
551 /* A job can only be on one list at a time */
567 /* Job Queues */
628 * while preparing our job lists.
648 * list_remove_job: Take the first item off the specified job list
650 * Returns: pointer to a job, or NULL if the list is empty.
655 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()
[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/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 …]

12345678910>>...17