Lines Matching +full:fault +full:- +full:q
1 /* SPDX-License-Identifier: GPL-2.0 OR MIT */
3 * Copyright 2014-2022 Advanced Micro Devices, Inc.
60 * BITS[63:62] - Encode MMAP type
61 * BITS[61:46] - Encode gpu_id. To identify to which GPU the offset belongs to
62 * BITS[45:0] - MMAP offset value
75 #define KFD_MMAP_GPU_ID_MASK (((1ULL << KFD_GPU_ID_HASH_WIDTH) - 1) \
100 * Size of the per-process TBA+TMA buffer: 2 pages
103 * chunk is used as TMA for user-mode trap handler setup in daisy-chain mode.
121 * same SDMA engine on SOC15, which has 8-byte doorbells for SDMA.
122 * 512 8-byte doorbell distance (i.e. one page away) ensures that SDMA RLC
129 * enum kfd_ioctl_flags - KFD ioctl flags
173 * This kernel module is used to simulate large bar machine on non-large bar
191 * Don't evict process queues on vm fault
205 #define KFD_GC_VERSION(dev) (amdgpu_ip_version((dev)->adev, GC_HWIP, 0))
387 * enum kfd_unmap_queues_filter - Enum for queue filters.
392 * @KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES: Preempts all non-static queues
406 * enum kfd_queue_type - Enum for various queue types.
469 * @doorbell_off: The doorbell offset in the doorbell pci-bar.
480 * @is_gws: Defines if the queue has been updated to be GWS-capable or not.
536 #define QUEUE_IS_ACTIVE(q) ((q).queue_size > 0 && \ argument
537 (q).queue_address != 0 && \
538 (q).queue_percent > 0 && \
539 !(q).is_evicted && \
540 !(q).is_suspended)
668 /* This flag tells us if this process has a GWS-capable
740 /* Data that is per-process-per device. */
748 /* per-process-per device QCM data structure */
767 * This is used to prevent dev->dqm->ops.process_termination() from
812 * under certain conditions - e.g. CU masking.
819 /* sysfs counters for GPU retry fault and page migration tracking */
833 /* Tracks debug per-vmid request settings */
869 /* check point ts decides if page fault recovery need be dropped */
882 * kfd_process are stored in an mm_struct*->kfd_process*
925 /* Event-related data */
957 /* per-process-per device debug event fd file */
962 * its own clean-up, so we don't set the flag here. We track this by
994 /* Tracks debug per-vmid request for debug flags */
1012 * typedef amdkfd_ioctl_t - typedef for ioctl function pointer.
1045 return gpuidx < p->n_pdds ? p->pdds[gpuidx]->dev->id : -EINVAL; in kfd_process_gpuid_from_gpuidx()
1049 return gpuidx < p->n_pdds ? p->pdds[gpuidx] : NULL; in kfd_process_device_from_gpuidx()
1114 /* GTT Sub-Allocator */
1126 int kfd_procfs_add_queue(struct queue *q);
1127 void kfd_procfs_del_queue(struct queue *q);
1144 return (node->interrupt_bitmap & (1 << node_id)) != 0 && in kfd_irq_is_from_node()
1145 (node->compute_vmid_bitmap & (1 << vmid)) != 0; in kfd_irq_is_from_node()
1149 struct kfd_dev *dev = adev->kfd.dev; in kfd_node_by_irq_ids()
1154 return dev->nodes[0]; in kfd_node_by_irq_ids()
1156 for (i = 0; i < dev->num_nodes; i++) in kfd_node_by_irq_ids()
1157 if (kfd_irq_is_from_node(dev->nodes[i], node_id, vmid)) in kfd_node_by_irq_ids()
1158 return dev->nodes[i]; in kfd_node_by_irq_ids()
1300 /* CRIU - End */
1303 int init_queue(struct queue **q, const struct queue_properties *properties);
1304 void uninit_queue(struct queue *q);
1305 void print_queue_properties(struct queue_properties *q);
1306 void print_queue(struct queue *q);
1339 struct queue *q; member
1405 /* Support ASIC-specific packet formats for PM4 packets */
1413 struct queue *q, bool is_static);
1501 struct amdgpu_device *adev = pdd->dev->adev; in kfd_flush_tlb()
1502 struct amdgpu_vm *vm = drm_priv_to_vm(pdd->drm_priv); in kfd_flush_tlb()
1504 amdgpu_vm_flush_compute_tlb(adev, vm, type, pdd->dev->xcc_mask); in kfd_flush_tlb()
1510 (KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 1) && dev->sdma_fw_version >= 18) || in kfd_flush_tlb_after_unmap()
1530 if (node->xcp) in kfd_devcgroup_check_permission()
1531 ddev = node->xcp->ddev; in kfd_devcgroup_check_permission()
1533 ddev = adev_to_drm(node->adev); in kfd_devcgroup_check_permission()
1536 ddev->render->index, in kfd_devcgroup_check_permission()
1545 return (node == node->kfd->nodes[0]); in kfd_is_first_node()