Home
last modified time | relevance | path

Searched refs:fences (Results 1 – 21 of 21) sorted by relevance

/linux/drivers/gpu/drm/i915/
H A Di915_deps.c38 if (deps->fences != &deps->single) in i915_deps_reset_fences()
39 kfree(deps->fences); in i915_deps_reset_fences()
42 deps->fences = &deps->single; in i915_deps_reset_fences()
52 deps->fences = NULL; in i915_deps_init()
69 dma_fence_put(deps->fences[i]); in i915_deps_fini()
71 if (deps->fences != &deps->single) in i915_deps_fini()
72 kfree(deps->fences); in i915_deps_fini()
89 memcpy(new_fences, deps->fences, in i915_deps_grow()
91 swap(new_fences, deps->fences); in i915_deps_grow()
96 deps->fences[deps->num_deps++] = dma_fence_get(fence); in i915_deps_grow()
[all …]
H A Di915_deps.h26 struct dma_fence **fences; member
H A DKconfig.profile16 int "Timeout for unsignaled foreign fences (ms, jiffy granularity)"
/linux/Documentation/driver-api/
H A Dsync_file.rst9 the fences(struct dma_fence) that are needed to synchronize between drivers or
29 in-fences and out-fences
33 the driver to userspace we call the fences it contains 'out-fences'. They are
37 Out-fences are fences that the driver creates.
40 userspace we call these fence(s) 'in-fences'. Receiving in-fences means that
42 the in-fences.
72 of the Sync File to the kernel. The kernel can then retrieve the fences
/linux/Documentation/gpu/
H A Ddrm-vm-bind-async.rst20 synchronization objects can be either generic, like dma-fences or
31 understanding of dma-fences is required to digest this
38 the GPU and CPU. Memory fences are sometimes referred to as
39 user-fences, userspace-fences or gpu futexes and do not necessarily obey
41 The kernel should thus avoid waiting for memory fences with locks held.
46 a certain mode that disallows completion dma-fences.
72 IOCTL returns. A synchronous VM_BIND takes neither in-fences nor
73 out-fences. Synchronous VM_BIND may block and wait for GPU operations;
94 Since asynchronous VM_BIND operations may use dma-fences embedded in
96 memory fences given as VM_BIND in-fences need to be awaited
[all …]
H A Ddrm-compute.rst8 that cannot use fences.
H A Ddrm-vm-bind-locking.rst155 as well as reserving memory for dma_resv fences is left out.
/linux/drivers/gpu/drm/virtio/
H A Dvirtgpu_fence.c94 list_add_tail(&fence->node, &drv->fences); in virtio_gpu_fence_emit()
119 list_for_each_entry_safe(curr, tmp, &drv->fences, node) { in virtio_gpu_fence_event_process()
129 list_for_each_entry_safe(curr, tmp, &drv->fences, node) { in virtio_gpu_fence_event_process()
/linux/drivers/gpu/drm/radeon/
H A Dradeon_trace.h36 __field(u32, fences)
42 __entry->fences = radeon_fence_count_emitted(
47 __entry->fences)
/linux/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_ctx.c198 res = ktime_add(res, amdgpu_ctx_fence_time(centity->fences[i])); in amdgpu_ctx_entity_time()
215 entity = kzalloc_flex(*entity, fences, amdgpu_sched_jobs); in amdgpu_ctx_init_entity()
289 res = ktime_add(res, amdgpu_ctx_fence_time(entity->fences[i])); in amdgpu_ctx_fini_entity()
290 dma_fence_put(entity->fences[i]); in amdgpu_ctx_fini_entity()
748 other = centity->fences[idx]; in amdgpu_ctx_add_fence()
754 centity->fences[idx] = fence; in amdgpu_ctx_add_fence()
788 fence = dma_fence_get(centity->fences[seq & (amdgpu_sched_jobs - 1)]); in amdgpu_ctx_get_fence()
850 other = dma_fence_get(centity->fences[idx]); in amdgpu_ctx_wait_prev_fence()
H A Damdgpu_cs.c1647 struct drm_amdgpu_fence *fences) in amdgpu_cs_wait_all_fences() argument
1657 fence = amdgpu_cs_get_fence(adev, filp, &fences[i]); in amdgpu_cs_wait_all_fences()
1692 struct drm_amdgpu_fence *fences) in amdgpu_cs_wait_any_fence() argument
1710 fence = amdgpu_cs_get_fence(adev, filp, &fences[i]); in amdgpu_cs_wait_any_fence()
1758 struct drm_amdgpu_fence *fences; in amdgpu_cs_wait_fences_ioctl() local
1769 fences = memdup_array_user(u64_to_user_ptr(wait->in.fences), in amdgpu_cs_wait_fences_ioctl()
1772 if (IS_ERR(fences)) in amdgpu_cs_wait_fences_ioctl()
1773 return PTR_ERR(fences); in amdgpu_cs_wait_fences_ioctl()
1776 r = amdgpu_cs_wait_all_fences(adev, filp, wait, fences); in amdgpu_cs_wait_fences_ioctl()
1778 r = amdgpu_cs_wait_any_fence(adev, filp, wait, fences); in amdgpu_cs_wait_fences_ioctl()
[all …]
H A Damdgpu_userq_fence.h56 struct list_head fences; member
H A Damdgpu_uvd.c1247 unsigned int fences = 0, i, j; in amdgpu_uvd_idle_work_handler() local
1252 fences += amdgpu_fence_count_emitted(&adev->uvd.inst[i].ring); in amdgpu_uvd_idle_work_handler()
1254 fences += amdgpu_fence_count_emitted(&adev->uvd.inst[i].ring_enc[j]); in amdgpu_uvd_idle_work_handler()
1257 if (fences == 0) { in amdgpu_uvd_idle_work_handler()
H A Damdgpu_gfx.c2589 u32 i, idx, fences = 0; in amdgpu_gfx_enforce_isolation_handler() local
2602 fences += amdgpu_fence_count_emitted(&adev->gfx.gfx_ring[i]); in amdgpu_gfx_enforce_isolation_handler()
2606 fences += amdgpu_fence_count_emitted(&adev->gfx.compute_ring[i]); in amdgpu_gfx_enforce_isolation_handler()
2608 if (fences) { in amdgpu_gfx_enforce_isolation_handler()
2763 u32 i, fences = 0; in amdgpu_gfx_profile_idle_work_handler() local
2772 fences += amdgpu_fence_count_emitted(&adev->gfx.gfx_ring[i]); in amdgpu_gfx_profile_idle_work_handler()
2774 fences += amdgpu_fence_count_emitted(&adev->gfx.compute_ring[i]); in amdgpu_gfx_profile_idle_work_handler()
2775 if (!fences && !atomic_read(&adev->gfx.total_submission_cnt)) { in amdgpu_gfx_profile_idle_work_handler()
/linux/drivers/gpu/host1x/
H A Dfence.c138 dma_fence_init(&fence->base, &host1x_syncpt_fence_ops, &sp->fences.lock, in host1x_fence_create()
/linux/tools/memory-model/
H A Dlinux-kernel.cat55 * A-cumulative release fences of lock-release ensure that any stores that
97 (* Propagation: Ordering from release operations and strong fences. *)
107 * No fences needed here for prop because relation confined to one process.
/linux/tools/memory-model/Documentation/
H A Dexplanation.txt301 fences), such as calls to smp_rmb() or rcu_read_lock().
786 only internal operations. However, loads, stores, and fences involve
826 about the fence. However, fences do constrain the way CPUs and the
833 Strong fences, including smp_mb() and synchronize_rcu(), force
843 Acquire fences, such as smp_load_acquire(), force the CPU to
848 Release fences, such as smp_store_release(), force the CPU to
869 The propagation ordering enforced by release fences and strong fences
872 fence. We describe this property by saying that release fences and
873 strong fences are A-cumulative. By contrast, smp_wmb() fences are not
878 rcu_read_lock(), rcu_read_unlock(), and synchronize_rcu() fences have
[all …]
H A Dordering.txt11 1. Barriers (also known as "fences"). A barrier orders some or
/linux/drivers/gpu/drm/i915/gt/
H A Dintel_context.c416 INIT_LIST_HEAD(&ce->guc_state.fences); in intel_context_init()
/linux/Documentation/gpu/rfc/
H A Di915_vm_bind.rst62 support many of the older features like in/out/submit fences, fence array,
/linux/drivers/accel/habanalabs/gaudi/
H A Dgaudi.c8990 u32 *statuses, *fences; in gaudi_print_fences_single_engine() local
8997 fences = kcalloc(sds->props[SP_ENGINE_NUM_OF_FENCES] * in gaudi_print_fences_single_engine()
8999 sizeof(*fences), GFP_KERNEL); in gaudi_print_fences_single_engine()
9000 if (!fences) in gaudi_print_fences_single_engine()
9008 fences[i] = RREG32(base_offset + i * sizeof(u32)); in gaudi_print_fences_single_engine()
9036 fences[fence_id], in gaudi_print_fences_single_engine()
9045 kfree(fences); in gaudi_print_fences_single_engine()