| /kernel/linux/linux-4.19/drivers/gpu/drm/amd/amdgpu/ |
| D | amdgpu_job.c | 34 struct amdgpu_job *job = to_amdgpu_job(s_job); in amdgpu_job_timedout() local 37 job->base.sched->name, atomic_read(&ring->fence_drv.last_seq), in amdgpu_job_timedout() 40 amdgpu_device_gpu_recover(ring->adev, job, false); in amdgpu_job_timedout() 44 struct amdgpu_job **job, struct amdgpu_vm *vm) in amdgpu_job_alloc() argument 53 *job = kzalloc(size, GFP_KERNEL); in amdgpu_job_alloc() 54 if (!*job) in amdgpu_job_alloc() 61 (*job)->base.sched = &adev->rings[0]->sched; in amdgpu_job_alloc() 62 (*job)->vm = vm; in amdgpu_job_alloc() 63 (*job)->ibs = (void *)&(*job)[1]; in amdgpu_job_alloc() 64 (*job)->num_ibs = num_ibs; in amdgpu_job_alloc() [all …]
|
| /kernel/linux/linux-4.19/drivers/gpu/host1x/ |
| D | job.c | 2 * Tegra host1x Job 31 #include "job.h" 39 struct host1x_job *job = NULL; in host1x_job_alloc() local 54 mem = job = kzalloc(total, GFP_KERNEL); in host1x_job_alloc() 55 if (!job) in host1x_job_alloc() 58 kref_init(&job->ref); in host1x_job_alloc() 59 job->channel = ch; in host1x_job_alloc() 63 job->relocs = num_relocs ? mem : NULL; in host1x_job_alloc() 65 job->unpins = num_unpins ? mem : NULL; in host1x_job_alloc() 67 job->gathers = num_cmdbufs ? mem : NULL; in host1x_job_alloc() [all …]
|
| D | cdma.c | 34 #include "job.h" 221 * Start timer that tracks the time spent by the job. 225 struct host1x_job *job) in cdma_start_timer_locked() argument 234 cdma->timeout.client = job->client; in cdma_start_timer_locked() 235 cdma->timeout.syncpt = host1x_syncpt_get(host, job->syncpt_id); in cdma_start_timer_locked() 236 cdma->timeout.syncpt_val = job->syncpt_end; in cdma_start_timer_locked() 240 msecs_to_jiffies(job->timeout)); in cdma_start_timer_locked() 267 struct host1x_job *job, *n; in update_cdma_locked() local 277 list_for_each_entry_safe(job, n, &cdma->sync_queue, list) { in update_cdma_locked() 279 host1x_syncpt_get(host1x, job->syncpt_id); in update_cdma_locked() [all …]
|
| /kernel/linux/linux-4.19/drivers/md/ |
| D | dm-kcopyd.c | 329 * Error state of the job. 349 * Set this to ensure you are notified when the job has 356 * These fields are only used if the job has been split 390 * Functions to push and pop a job onto the head of a given job 396 struct kcopyd_job *job; in pop_io_job() local 402 list_for_each_entry(job, jobs, list) { in pop_io_job() 403 if (job->rw == READ || !test_bit(DM_KCOPYD_WRITE_SEQ, &job->flags)) { in pop_io_job() 404 list_del(&job->list); in pop_io_job() 405 return job; in pop_io_job() 408 if (job->write_offset == job->master_job->write_offset) { in pop_io_job() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdgpu/ |
| D | amdgpu_job.c | 34 struct amdgpu_job *job = to_amdgpu_job(s_job); in amdgpu_job_timedout() local 41 amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) { in amdgpu_job_timedout() 47 amdgpu_vm_get_task_info(ring->adev, job->pasid, &ti); in amdgpu_job_timedout() 49 job->base.sched->name, atomic_read(&ring->fence_drv.last_seq), in amdgpu_job_timedout() 55 amdgpu_device_gpu_recover(ring->adev, job); in amdgpu_job_timedout() 64 struct amdgpu_job **job, struct amdgpu_vm *vm) in amdgpu_job_alloc() argument 73 *job = kzalloc(size, GFP_KERNEL); in amdgpu_job_alloc() 74 if (!*job) in amdgpu_job_alloc() 81 (*job)->base.sched = &adev->rings[0]->sched; in amdgpu_job_alloc() 82 (*job)->vm = vm; in amdgpu_job_alloc() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/host1x/ |
| D | job.c | 3 * Tegra host1x Job 21 #include "job.h" 29 struct host1x_job *job = NULL; in host1x_job_alloc() local 47 mem = job = kzalloc(total, GFP_KERNEL); in host1x_job_alloc() 48 if (!job) in host1x_job_alloc() 51 kref_init(&job->ref); in host1x_job_alloc() 52 job->channel = ch; in host1x_job_alloc() 56 job->relocs = num_relocs ? mem : NULL; in host1x_job_alloc() 58 job->unpins = num_unpins ? mem : NULL; in host1x_job_alloc() 60 job->gathers = num_cmdbufs ? mem : NULL; in host1x_job_alloc() [all …]
|
| D | cdma.c | 23 #include "job.h" 270 * Start timer that tracks the time spent by the job. 274 struct host1x_job *job) in cdma_start_timer_locked() argument 283 cdma->timeout.client = job->client; in cdma_start_timer_locked() 284 cdma->timeout.syncpt = host1x_syncpt_get(host, job->syncpt_id); in cdma_start_timer_locked() 285 cdma->timeout.syncpt_val = job->syncpt_end; in cdma_start_timer_locked() 289 msecs_to_jiffies(job->timeout)); in cdma_start_timer_locked() 316 struct host1x_job *job, *n; in update_cdma_locked() local 326 list_for_each_entry_safe(job, n, &cdma->sync_queue, list) { in update_cdma_locked() 328 host1x_syncpt_get(host1x, job->syncpt_id); in update_cdma_locked() [all …]
|
| /kernel/linux/linux-5.10/block/ |
| D | bsg-lib.c | 39 struct bsg_job *job = blk_mq_rq_to_pdu(rq); in bsg_transport_fill_hdr() local 42 job->request_len = hdr->request_len; in bsg_transport_fill_hdr() 43 job->request = memdup_user(uptr64(hdr->request), hdr->request_len); in bsg_transport_fill_hdr() 44 if (IS_ERR(job->request)) in bsg_transport_fill_hdr() 45 return PTR_ERR(job->request); in bsg_transport_fill_hdr() 48 job->bidi_rq = blk_get_request(rq->q, REQ_OP_SCSI_IN, 0); in bsg_transport_fill_hdr() 49 if (IS_ERR(job->bidi_rq)) { in bsg_transport_fill_hdr() 50 ret = PTR_ERR(job->bidi_rq); in bsg_transport_fill_hdr() 54 ret = blk_rq_map_user(rq->q, job->bidi_rq, NULL, in bsg_transport_fill_hdr() 60 job->bidi_bio = job->bidi_rq->bio; in bsg_transport_fill_hdr() [all …]
|
| /kernel/linux/linux-5.10/drivers/md/ |
| D | dm-kcopyd.c | 40 MODULE_PARM_DESC(kcopyd_subjob_size_kb, "Sub-job size for dm-kcopyd clients"); 347 * Error state of the job. 367 * Set this to ensure you are notified when the job has 374 * These fields are only used if the job has been split 408 * Functions to push and pop a job onto the head of a given job 414 struct kcopyd_job *job; in pop_io_job() local 420 list_for_each_entry(job, jobs, list) { in pop_io_job() 421 if (job->rw == READ || !test_bit(DM_KCOPYD_WRITE_SEQ, &job->flags)) { in pop_io_job() 422 list_del(&job->list); in pop_io_job() 423 return job; in pop_io_job() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/v3d/ |
| D | v3d_sched.c | 10 * scheduler will round-robin between clients to submit the next job. 13 * jobs when bulk background jobs are queued up, we submit a new job 60 struct v3d_job *job = to_v3d_job(sched_job); in v3d_job_free() local 63 v3d_job_put(job); in v3d_job_free() 67 * Returns the fences that the job depends on, one by one. 76 struct v3d_job *job = to_v3d_job(sched_job); in v3d_job_dependency() local 82 if (!xa_empty(&job->deps)) in v3d_job_dependency() 83 return xa_erase(&job->deps, job->last_dep++); in v3d_job_dependency() 90 struct v3d_bin_job *job = to_bin_job(sched_job); in v3d_bin_job_run() local 91 struct v3d_dev *v3d = job->base.v3d; in v3d_bin_job_run() [all …]
|
| D | v3d_gem.c | 167 * need to wait for completion before dispatching the job -- in v3d_flush_l2t() 171 * synchronously clean after a job. in v3d_flush_l2t() 184 * signaling job completion. So, we synchronously wait before 250 v3d_lock_bo_reservations(struct v3d_job *job, in v3d_lock_bo_reservations() argument 255 ret = drm_gem_lock_reservations(job->bo, job->bo_count, acquire_ctx); in v3d_lock_bo_reservations() 259 for (i = 0; i < job->bo_count; i++) { in v3d_lock_bo_reservations() 260 ret = drm_gem_fence_array_add_implicit(&job->deps, in v3d_lock_bo_reservations() 261 job->bo[i], true); in v3d_lock_bo_reservations() 263 drm_gem_unlock_reservations(job->bo, job->bo_count, in v3d_lock_bo_reservations() 273 * v3d_lookup_bos() - Sets up job->bo[] with the GEM objects [all …]
|
| /kernel/linux/linux-4.19/block/ |
| D | bsg-lib.c | 47 struct bsg_job *job = blk_mq_rq_to_pdu(rq); in bsg_transport_fill_hdr() local 49 job->request_len = hdr->request_len; in bsg_transport_fill_hdr() 50 job->request = memdup_user(uptr64(hdr->request), hdr->request_len); in bsg_transport_fill_hdr() 52 return PTR_ERR_OR_ZERO(job->request); in bsg_transport_fill_hdr() 57 struct bsg_job *job = blk_mq_rq_to_pdu(rq); in bsg_transport_complete_rq() local 64 hdr->device_status = job->result & 0xff; in bsg_transport_complete_rq() 65 hdr->transport_status = host_byte(job->result); in bsg_transport_complete_rq() 66 hdr->driver_status = driver_byte(job->result); in bsg_transport_complete_rq() 72 if (job->result < 0) { in bsg_transport_complete_rq() 74 job->reply_len = sizeof(u32); in bsg_transport_complete_rq() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/panfrost/ |
| D | panfrost_job.c | 112 static int panfrost_job_get_slot(struct panfrost_job *job) in panfrost_job_get_slot() argument 118 if (job->requirements & PANFROST_JD_REQ_FS) in panfrost_job_get_slot() 123 if (job->requirements & PANFROST_JD_REQ_ONLY_COMPUTE) { in panfrost_job_get_slot() 124 if ((job->requirements & PANFROST_JD_REQ_CORE_GRP_MASK) && in panfrost_job_get_slot() 125 (job->pfdev->features.nr_core_groups == 2)) in panfrost_job_get_slot() 127 if (panfrost_has_hw_issue(job->pfdev, HW_ISSUE_8987)) in panfrost_job_get_slot() 151 static void panfrost_job_hw_submit(struct panfrost_job *job, int js) in panfrost_job_hw_submit() argument 153 struct panfrost_device *pfdev = job->pfdev; in panfrost_job_hw_submit() 155 u64 jc_head = job->jc; in panfrost_job_hw_submit() 168 cfg = panfrost_mmu_as_get(pfdev, job->file_priv->mmu); in panfrost_job_hw_submit() [all …]
|
| D | panfrost_drv.c | 112 * panfrost_lookup_bos() - Sets up job->bo[] with the GEM objects 113 * referenced by the job. 117 * @job: job being set up 119 * Resolve handles from userspace to BOs and attach them to job. 128 struct panfrost_job *job) in panfrost_lookup_bos() argument 135 job->bo_count = args->bo_handle_count; in panfrost_lookup_bos() 137 if (!job->bo_count) in panfrost_lookup_bos() 140 job->implicit_fences = kvmalloc_array(job->bo_count, in panfrost_lookup_bos() 143 if (!job->implicit_fences) in panfrost_lookup_bos() 148 job->bo_count, &job->bos); in panfrost_lookup_bos() [all …]
|
| /kernel/linux/linux-4.19/drivers/gpu/drm/v3d/ |
| D | v3d_sched.c | 10 * scheduler will round-robin between clients to submit the next job. 13 * jobs when bulk background jobs are queued up, we submit a new job 36 struct v3d_job *job = to_v3d_job(sched_job); in v3d_job_free() local 38 v3d_exec_put(job->exec); in v3d_job_free() 42 * Returns the fences that the bin job depends on, one by one. 49 struct v3d_job *job = to_v3d_job(sched_job); in v3d_job_dependency() local 50 struct v3d_exec_info *exec = job->exec; in v3d_job_dependency() 51 enum v3d_queue q = job == &exec->bin ? V3D_BIN : V3D_RENDER; in v3d_job_dependency() 54 fence = job->in_fence; in v3d_job_dependency() 56 job->in_fence = NULL; in v3d_job_dependency() [all …]
|
| /kernel/linux/linux-4.19/drivers/gpu/host1x/hw/ |
| D | channel_hw.c | 27 #include "../job.h" 61 static void submit_gathers(struct host1x_job *job) in submit_gathers() argument 63 struct host1x_cdma *cdma = &job->channel->cdma; in submit_gathers() 66 for (i = 0; i < job->num_gathers; i++) { in submit_gathers() 67 struct host1x_job_gather *g = &job->gathers[i]; in submit_gathers() 76 static inline void synchronize_syncpt_base(struct host1x_job *job) in synchronize_syncpt_base() argument 78 struct host1x *host = dev_get_drvdata(job->channel->dev->parent); in synchronize_syncpt_base() 79 struct host1x_syncpt *sp = host->syncpt + job->syncpt_id; in synchronize_syncpt_base() 86 host1x_cdma_push(&job->channel->cdma, in synchronize_syncpt_base() 93 static int channel_submit(struct host1x_job *job) in channel_submit() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/misc/habanalabs/common/ |
| D | command_submission.c | 123 static bool is_cb_patched(struct hl_device *hdev, struct hl_cs_job *job) in is_cb_patched() argument 129 return (job->queue_type == QUEUE_TYPE_EXT || in is_cb_patched() 130 (job->queue_type == QUEUE_TYPE_HW && in is_cb_patched() 131 job->is_kernel_allocated_cb && in is_cb_patched() 139 * @job : pointer to the job that holds the command submission info 146 static int cs_parser(struct hl_fpriv *hpriv, struct hl_cs_job *job) in cs_parser() argument 152 parser.ctx_id = job->cs->ctx->asid; in cs_parser() 153 parser.cs_sequence = job->cs->sequence; in cs_parser() 154 parser.job_id = job->id; in cs_parser() 156 parser.hw_queue_id = job->hw_queue_id; in cs_parser() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/host1x/hw/ |
| D | channel_hw.c | 17 #include "../job.h" 50 static void submit_gathers(struct host1x_job *job) in submit_gathers() argument 52 struct host1x_cdma *cdma = &job->channel->cdma; in submit_gathers() 54 struct device *dev = job->channel->dev; in submit_gathers() 58 for (i = 0; i < job->num_gathers; i++) { in submit_gathers() 59 struct host1x_job_gather *g = &job->gathers[i]; in submit_gathers() 87 static inline void synchronize_syncpt_base(struct host1x_job *job) in synchronize_syncpt_base() argument 89 struct host1x *host = dev_get_drvdata(job->channel->dev->parent); in synchronize_syncpt_base() 90 struct host1x_syncpt *sp = host->syncpt + job->syncpt_id; in synchronize_syncpt_base() 97 host1x_cdma_push(&job->channel->cdma, in synchronize_syncpt_base() [all …]
|
| /kernel/linux/linux-4.19/include/drm/ |
| D | gpu_scheduler.h | 48 * struct drm_sched_entity - A wrapper around a job queue (typically 63 * @dependency: the dependency fence of the job which is on the top 64 * of the job queue. 68 * @last_scheduled: points to the finished fence of the last scheduled job. 69 * @last_user: last group leader pushing a job into the entity. 112 * struct drm_sched_fence - fences corresponding to the scheduling of a job. 117 * when the job is scheduled. 123 * when the job is completed. 125 * When setting up an out fence for the job, you should use 139 * when scheduling the job on hardware. We signal the [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/ |
| D | drm_writeback.c | 262 int drm_writeback_prepare_job(struct drm_writeback_job *job) in drm_writeback_prepare_job() argument 264 struct drm_writeback_connector *connector = job->connector; in drm_writeback_prepare_job() 270 ret = funcs->prepare_writeback_job(connector, job); in drm_writeback_prepare_job() 275 job->prepared = true; in drm_writeback_prepare_job() 281 * drm_writeback_queue_job - Queue a writeback job for later signalling 282 * @wb_connector: The writeback connector to queue a job on 283 * @conn_state: The connector state containing the job to queue 285 * This function adds the job contained in @conn_state to the job_queue for a 286 * writeback connector. It takes ownership of the writeback job and sets the 287 * @conn_state->writeback_job to NULL, and so no access to the job may be [all …]
|
| /kernel/linux/linux-5.10/include/drm/ |
| D | gpu_scheduler.h | 50 * struct drm_sched_entity - A wrapper around a job queue (typically 70 * @dependency: the dependency fence of the job which is on the top 71 * of the job queue. 75 * @last_scheduled: points to the finished fence of the last scheduled job. 76 * @last_user: last group leader pushing a job into the entity. 126 * struct drm_sched_fence - fences corresponding to the scheduling of a job. 131 * when the job is scheduled. 137 * when the job is completed. 139 * When setting up an out fence for the job, you should use 149 * when scheduling the job on hardware. We signal the [all …]
|
| /kernel/linux/linux-4.19/drivers/scsi/lpfc/ |
| D | lpfc_bsg.c | 70 /* driver data associated with the job */ 103 struct bsg_job *set_job; /* job waiting for this iocb to finish */ 303 struct bsg_job *job; in lpfc_bsg_send_mgmt_cmd_cmp() local 315 /* Determine if job has been aborted */ in lpfc_bsg_send_mgmt_cmd_cmp() 317 job = dd_data->set_job; in lpfc_bsg_send_mgmt_cmd_cmp() 318 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp() 319 bsg_reply = job->reply; in lpfc_bsg_send_mgmt_cmd_cmp() 320 /* Prevent timeout handling from trying to abort job */ in lpfc_bsg_send_mgmt_cmd_cmp() 321 job->dd_data = NULL; in lpfc_bsg_send_mgmt_cmd_cmp() 339 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp() [all …]
|
| /kernel/linux/linux-5.10/drivers/scsi/lpfc/ |
| D | lpfc_bsg.c | 71 /* driver data associated with the job */ 104 struct bsg_job *set_job; /* job waiting for this iocb to finish */ 304 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() 340 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/scheduler/ |
| D | sched_main.c | 32 * backend operations to the scheduler like submitting a job to hardware run queue, 33 * returning the dependencies of a job etc. 122 * drm_sched_rq_select_entity - Select an entity which could provide a job to run 219 * drm_sched_suspend_timeout - Suspend scheduler job timeout 249 * drm_sched_resume_timeout - Resume scheduler job timeout 283 struct drm_sched_job *job; in drm_sched_job_timedout() local 289 job = list_first_entry_or_null(&sched->ring_mirror_list, in drm_sched_job_timedout() 292 if (job) { in drm_sched_job_timedout() 294 * Remove the bad job so it cannot be freed by concurrent in drm_sched_job_timedout() 298 list_del_init(&job->node); in drm_sched_job_timedout() [all …]
|
| /kernel/linux/linux-5.10/drivers/crypto/caam/ |
| 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 …]
|