| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_tlb_inval_job.c | 19 /** 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 D | xe_exec.c | 66 * 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/md/ |
| H A D | dm-kcopyd.c | 41 MODULE_PARM_DESC(kcopyd_subjob_size_kb, "Sub-job size for dm-kcopyd clients"); 353 * Error state of the job. 373 * Set this to ensure you are notified when the job has 380 * These fields are only used if the job has been split 414 * Functions to push and pop a job onto the head of a given job 420 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() [all …]
|
| /linux/drivers/gpu/drm/imagination/ |
| H A D | pvr_job.h | 34 /** @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 …]
|
| /linux/Documentation/devicetree/bindings/powerpc/fsl/ |
| H A D | raideng.txt | 30 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/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_ids.c | 180 struct amdgpu_job *job) in amdgpu_vmid_gds_switch_needed() argument 182 return id->gds_base != job->gds_base || in amdgpu_vmid_gds_switch_needed() 183 id->gds_size != job->gds_size || in amdgpu_vmid_gds_switch_needed() 184 id->gws_base != job->gws_base || in amdgpu_vmid_gds_switch_needed() 185 id->gws_size != job->gws_size || in amdgpu_vmid_gds_switch_needed() 186 id->oa_base != job->oa_base || in amdgpu_vmid_gds_switch_needed() 187 id->oa_size != job->oa_size; in amdgpu_vmid_gds_switch_needed() 190 /* Check if the id is compatible with the job */ 192 struct amdgpu_job *job) in amdgpu_vmid_compatible() argument 194 return id->pd_gpu_addr == job->vm_pd_addr && in amdgpu_vmid_compatible() [all …]
|
| /linux/drivers/crypto/caam/ |
| H A D | Kconfig | 20 This module creates job ring devices, and configures h/w 36 tristate "Freescale CAAM Job Ring driver backend" 40 Enables the driver module for Job Rings which are part of 42 and Assurance Module (CAAM). This module adds a job ring operation 51 int "Job Ring size" 55 Select size of Job Rings as a power of 2, within the 68 bool "Job Ring interrupt coalescing" 70 Enable the Job Ring's interrupt coalescing feature. 76 int "Job Ring interrupt coalescing count threshold" 84 equal or greater than the job ring size will force timeouts. [all …]
|
| /linux/Documentation/core-api/ |
| H A D | padata.rst | 14 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/ufs/core/ |
| H A D | ufs_bsg.c | 29 static int ufs_bsg_alloc_desc_buffer(struct ufs_hba *hba, struct bsg_job *job, in ufs_bsg_alloc_desc_buffer() argument 33 struct ufs_bsg_request *bsg_request = job->request; in ufs_bsg_alloc_desc_buffer() 47 if (*desc_len > job->request_payload.payload_len) { in ufs_bsg_alloc_desc_buffer() 57 sg_copy_to_buffer(job->request_payload.sg_list, in ufs_bsg_alloc_desc_buffer() 58 job->request_payload.sg_cnt, descp, in ufs_bsg_alloc_desc_buffer() 67 static int ufs_bsg_exec_advanced_rpmb_req(struct ufs_hba *hba, struct bsg_job *job) in ufs_bsg_exec_advanced_rpmb_req() argument 69 struct ufs_rpmb_request *rpmb_request = job->request; in ufs_bsg_exec_advanced_rpmb_req() 70 struct ufs_rpmb_reply *rpmb_reply = job->reply; in ufs_bsg_exec_advanced_rpmb_req() 107 payload = &job->request_payload; in ufs_bsg_exec_advanced_rpmb_req() 132 static int ufs_bsg_request(struct bsg_job *job) in ufs_bsg_request() argument [all …]
|
| /linux/drivers/accel/habanalabs/common/ |
| H A D | hw_queue.c | 229 * 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 D | irq.c | 70 * 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 …]
|
| H A D | command_submission.c | 267 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() 309 * @job : pointer to the job that holds the command submission info 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() [all …]
|
| /linux/arch/powerpc/boot/dts/fsl/ |
| H A D | qoriq-sec6.0-0.dtsi | 42 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 D | qoriq-sec5.3-0.dtsi | 45 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 D | qoriq-sec5.2-0.dtsi | 45 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 D | pq3-sec4.4-0.dtsi | 45 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";
|
| H A D | qoriq-sec5.0-0.dtsi | 45 compatible = "fsl,sec-v5.0-job-ring", 46 "fsl,sec-v4.0-job-ring"; 52 compatible = "fsl,sec-v5.0-job-ring", 53 "fsl,sec-v4.0-job-ring"; 59 compatible = "fsl,sec-v5.0-job-ring", 60 "fsl,sec-v4.0-job-ring"; 66 compatible = "fsl,sec-v5.0-job-ring", 67 "fsl,sec-v4.0-job-ring";
|
| H A D | qoriq-sec4.2-0.dtsi | 45 compatible = "fsl,sec-v4.2-job-ring", 46 "fsl,sec-v4.0-job-ring"; 52 compatible = "fsl,sec-v4.2-job-ring", 53 "fsl,sec-v4.0-job-ring"; 59 compatible = "fsl,sec-v4.2-job-ring", 60 "fsl,sec-v4.0-job-ring"; 66 compatible = "fsl,sec-v4.2-job-ring", 67 "fsl,sec-v4.0-job-ring";
|
| /linux/drivers/scsi/libsas/ |
| H A D | sas_host_smp.c | 225 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/media/platform/renesas/ |
| H A D | rcar_fdp1.c | 54 /* 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/smartpqi/ |
| H A D | smartpqi_sas_transport.c | 458 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, ¶meters->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/drivers/media/platform/raspberrypi/pisp_be/ |
| H A D | pisp_be.c | 191 /* Records a job configuration and memory addresses. */ 222 bool hw_busy; /* non-zero if a job is queued or is being started */ 240 * Queue a job to the h/w. If the h/w is idle it will begin immediately. 242 * queued, unstarted job. 245 struct pispbe_job_descriptor *job) in pispbe_queue_job() argument 250 dev_err(pispbe->dev, "ERROR: not safe to queue new job!\n"); in pispbe_queue_job() 260 lower_32_bits(job->hw_dma_addrs[u])); in pispbe_queue_job() 262 upper_32_bits(job->hw_dma_addrs[u])); in pispbe_queue_job() 265 job->hw_enables.bayer_enables); in pispbe_queue_job() 267 job->hw_enables.rgb_enables); in pispbe_queue_job() [all …]
|
| /linux/drivers/gpu/drm/nouveau/ |
| H A D | nouveau_exec.h | 41 #define to_nouveau_exec_job(job) \ argument 42 container_of((job), struct nouveau_exec_job, base) 44 int nouveau_exec_job_init(struct nouveau_exec_job **job, 53 /* Limit the number of IBs per job to half the size of the ring in order in nouveau_exec_push_max_from_ib_max() 55 * more slot for the job's HW fence. in nouveau_exec_push_max_from_ib_max()
|
| H A D | nouveau_sched.h | 92 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/Documentation/admin-guide/mm/ |
| H A D | multigen_lru.rst | 99 optimize job scheduling (bin packing) to improve memory utilizations. 100 When a new job comes in, the job scheduler needs to find out whether 102 this new job before it can pick a candidate. To do so, the job 133 A typical use case is that a job scheduler runs this command at a 141 pressure. It usually targets cold pages only. E.g., when a new job 142 comes in, the job scheduler wants to proactively reclaim cold pages on 144 this new job. 158 A typical use case is that a job scheduler runs this command before it 159 tries to land a new job on a server. If it fails to materialize enough
|