Home
last modified time | relevance | path

Searched refs:kfd (Results 1 – 25 of 27) sorted by relevance

12

/Linux-v5.4/drivers/gpu/drm/amd/amdkfd/
Dkfd_device.c501 static int kfd_gtt_sa_init(struct kfd_dev *kfd, unsigned int buf_size,
503 static void kfd_gtt_sa_fini(struct kfd_dev *kfd);
505 static int kfd_resume(struct kfd_dev *kfd);
527 struct kfd_dev *kfd; in kgd2kfd_probe() local
536 kfd = kzalloc(sizeof(*kfd), GFP_KERNEL); in kgd2kfd_probe()
537 if (!kfd) in kgd2kfd_probe()
544 kfd->pci_atomic_requested = amdgpu_amdkfd_have_atomics_support(kgd); in kgd2kfd_probe()
546 !kfd->pci_atomic_requested) { in kgd2kfd_probe()
550 kfree(kfd); in kgd2kfd_probe()
554 kfd->kgd = kgd; in kgd2kfd_probe()
[all …]
Dkfd_doorbell.c52 size_t kfd_doorbell_process_slice(struct kfd_dev *kfd) in kfd_doorbell_process_slice() argument
54 return roundup(kfd->device_info->doorbell_size * in kfd_doorbell_process_slice()
60 int kfd_doorbell_init(struct kfd_dev *kfd) in kfd_doorbell_init() argument
73 roundup(kfd->shared_resources.doorbell_start_offset, in kfd_doorbell_init()
74 kfd_doorbell_process_slice(kfd)); in kfd_doorbell_init()
77 rounddown(kfd->shared_resources.doorbell_aperture_size, in kfd_doorbell_init()
78 kfd_doorbell_process_slice(kfd)); in kfd_doorbell_init()
83 kfd_doorbell_process_slice(kfd); in kfd_doorbell_init()
91 kfd->doorbell_base = kfd->shared_resources.doorbell_physical_address + in kfd_doorbell_init()
94 kfd->doorbell_id_offset = doorbell_start_offset / sizeof(u32); in kfd_doorbell_init()
[all …]
Dkfd_interrupt.c52 int kfd_interrupt_init(struct kfd_dev *kfd) in kfd_interrupt_init() argument
56 r = kfifo_alloc(&kfd->ih_fifo, in kfd_interrupt_init()
57 KFD_IH_NUM_ENTRIES * kfd->device_info->ih_ring_entry_size, in kfd_interrupt_init()
64 kfd->ih_wq = alloc_workqueue("KFD IH", WQ_HIGHPRI, 1); in kfd_interrupt_init()
65 spin_lock_init(&kfd->interrupt_lock); in kfd_interrupt_init()
67 INIT_WORK(&kfd->interrupt_work, interrupt_wq); in kfd_interrupt_init()
69 kfd->interrupts_active = true; in kfd_interrupt_init()
81 void kfd_interrupt_exit(struct kfd_dev *kfd) in kfd_interrupt_exit() argument
90 spin_lock_irqsave(&kfd->interrupt_lock, flags); in kfd_interrupt_exit()
91 kfd->interrupts_active = false; in kfd_interrupt_exit()
[all …]
Dkfd_iommu.c39 int kfd_iommu_check_device(struct kfd_dev *kfd) in kfd_iommu_check_device() argument
44 if (!kfd->device_info->needs_iommu_device) in kfd_iommu_check_device()
48 err = amd_iommu_device_info(kfd->pdev, &iommu_info); in kfd_iommu_check_device()
60 int kfd_iommu_device_init(struct kfd_dev *kfd) in kfd_iommu_device_init() argument
67 top_dev = kfd_topology_device_by_id(kfd->id); in kfd_iommu_device_init()
69 if (!kfd->device_info->needs_iommu_device) in kfd_iommu_device_init()
73 err = amd_iommu_device_info(kfd->pdev, &iommu_info); in kfd_iommu_device_init()
91 (unsigned int)(1 << kfd->device_info->max_pasid_bits), in kfd_iommu_device_init()
217 static int kfd_bind_processes_to_device(struct kfd_dev *kfd) in kfd_bind_processes_to_device() argument
228 pdd = kfd_get_process_device_data(kfd, p); in kfd_bind_processes_to_device()
[all …]
Dkfd_iommu.h30 int kfd_iommu_check_device(struct kfd_dev *kfd);
31 int kfd_iommu_device_init(struct kfd_dev *kfd);
36 void kfd_iommu_suspend(struct kfd_dev *kfd);
37 int kfd_iommu_resume(struct kfd_dev *kfd);
43 static inline int kfd_iommu_check_device(struct kfd_dev *kfd) in kfd_iommu_check_device() argument
47 static inline int kfd_iommu_device_init(struct kfd_dev *kfd) in kfd_iommu_device_init() argument
62 static inline void kfd_iommu_suspend(struct kfd_dev *kfd) in kfd_iommu_suspend() argument
66 static inline int kfd_iommu_resume(struct kfd_dev *kfd) in kfd_iommu_resume() argument
Dkfd_priv.h809 size_t kfd_doorbell_process_slice(struct kfd_dev *kfd);
810 int kfd_doorbell_init(struct kfd_dev *kfd);
811 void kfd_doorbell_fini(struct kfd_dev *kfd);
814 void __iomem *kfd_get_kernel_doorbell(struct kfd_dev *kfd,
816 void kfd_release_kernel_doorbell(struct kfd_dev *kfd, u32 __iomem *db_addr);
820 unsigned int kfd_doorbell_id_to_offset(struct kfd_dev *kfd,
830 int kfd_gtt_sa_allocate(struct kfd_dev *kfd, unsigned int size,
833 int kfd_gtt_sa_free(struct kfd_dev *kfd, struct kfd_mem_obj *mem_obj);
858 bool enqueue_ih_ring_entry(struct kfd_dev *kfd, const void *ih_ring_entry);
997 uint64_t kfd_get_number_elems(struct kfd_dev *kfd);
Dkfd_mqd_manager_v10.c69 static struct kfd_mem_obj *allocate_mqd(struct kfd_dev *kfd, in allocate_mqd() argument
79 if (kfd->cwsr_enabled && (q->type == KFD_QUEUE_TYPE_COMPUTE)) { in allocate_mqd()
83 retval = amdgpu_amdkfd_alloc_gtt_mem(kfd->kgd, in allocate_mqd()
90 retval = kfd_gtt_sa_allocate(kfd, sizeof(struct v10_compute_mqd), in allocate_mqd()
253 struct kfd_dev *kfd = mm->dev; in free_mqd() local
256 amdgpu_amdkfd_free_gtt_mem(kfd->kgd, mqd_mem_obj->gtt_mem); in free_mqd()
Dkfd_mqd_manager_v9.c84 static struct kfd_mem_obj *allocate_mqd(struct kfd_dev *kfd, in allocate_mqd() argument
94 if (kfd->cwsr_enabled && (q->type == KFD_QUEUE_TYPE_COMPUTE)) { in allocate_mqd()
98 retval = amdgpu_amdkfd_alloc_gtt_mem(kfd->kgd, in allocate_mqd()
105 retval = kfd_gtt_sa_allocate(kfd, sizeof(struct v9_mqd), in allocate_mqd()
272 struct kfd_dev *kfd = mm->dev; in free_mqd() local
275 amdgpu_amdkfd_free_gtt_mem(kfd->kgd, mqd_mem_obj->gtt_mem); in free_mqd()
Dkfd_mqd_manager.h69 struct kfd_mem_obj* (*allocate_mqd)(struct kfd_dev *kfd,
Dkfd_kernel_queue_v10.c119 struct kfd_dev *kfd = pm->dqm->dev; in pm_runlist_v10() local
131 kfd->max_proc_per_quantum); in pm_runlist_v10()
Dkfd_kernel_queue_vi.c120 struct kfd_dev *kfd = pm->dqm->dev; in pm_runlist_vi() local
135 kfd->max_proc_per_quantum); in pm_runlist_vi()
Dkfd_kernel_queue_v9.c115 struct kfd_dev *kfd = pm->dqm->dev; in pm_runlist_v9() local
127 kfd->max_proc_per_quantum); in pm_runlist_v9()
Dkfd_mqd_manager_cik.c75 static struct kfd_mem_obj *allocate_mqd(struct kfd_dev *kfd, in allocate_mqd() argument
80 if (kfd_gtt_sa_allocate(kfd, sizeof(struct cik_mqd), in allocate_mqd()
Dkfd_mqd_manager_vi.c78 static struct kfd_mem_obj *allocate_mqd(struct kfd_dev *kfd, in allocate_mqd() argument
83 if (kfd_gtt_sa_allocate(kfd, sizeof(struct vi_mqd), in allocate_mqd()
Dkfd_chardev.c1009 struct kfd_dev *kfd; in kfd_ioctl_create_event() local
1019 kfd = kfd_device_by_id(GET_GPU_ID(args->event_page_offset)); in kfd_ioctl_create_event()
1020 if (!kfd) { in kfd_ioctl_create_event()
1026 pdd = kfd_bind_process_to_device(kfd, p); in kfd_ioctl_create_event()
1042 err = amdgpu_amdkfd_gpuvm_map_gtt_bo_to_kernel(kfd->kgd, in kfd_ioctl_create_event()
/Linux-v5.4/drivers/gpu/drm/amd/amdgpu/
Damdgpu_amdkfd.c103 adev->kfd.dev = kgd2kfd_probe((struct kgd_dev *)adev, in amdgpu_amdkfd_device_probe()
106 if (adev->kfd.dev) in amdgpu_amdkfd_device_probe()
148 if (adev->kfd.dev) { in amdgpu_amdkfd_device_init()
205 kgd2kfd_device_init(adev->kfd.dev, &gpu_resources); in amdgpu_amdkfd_device_init()
211 if (adev->kfd.dev) { in amdgpu_amdkfd_device_fini()
212 kgd2kfd_device_exit(adev->kfd.dev); in amdgpu_amdkfd_device_fini()
213 adev->kfd.dev = NULL; in amdgpu_amdkfd_device_fini()
220 if (adev->kfd.dev) in amdgpu_amdkfd_interrupt()
221 kgd2kfd_interrupt(adev->kfd.dev, ih_ring_entry); in amdgpu_amdkfd_interrupt()
226 if (adev->kfd.dev) in amdgpu_amdkfd_suspend()
[all …]
Damdgpu_amdkfd.h244 bool kgd2kfd_device_init(struct kfd_dev *kfd,
246 void kgd2kfd_device_exit(struct kfd_dev *kfd);
247 void kgd2kfd_suspend(struct kfd_dev *kfd);
248 int kgd2kfd_resume(struct kfd_dev *kfd);
249 int kgd2kfd_pre_reset(struct kfd_dev *kfd);
250 int kgd2kfd_post_reset(struct kfd_dev *kfd);
251 void kgd2kfd_interrupt(struct kfd_dev *kfd, const void *ih_ring_entry);
256 void kgd2kfd_set_sram_ecc_flag(struct kfd_dev *kfd);
Damdgpu_amdkfd_gpuvm.c149 (adev->kfd.vram_used + vram_needed > in amdgpu_amdkfd_reserve_mem_limit()
155 adev->kfd.vram_used += vram_needed; in amdgpu_amdkfd_reserve_mem_limit()
181 adev->kfd.vram_used -= size; in unreserve_mem_limit()
182 WARN_ONCE(adev->kfd.vram_used < 0, in unreserve_mem_limit()
Dgmc_v9_0.c250 kgd2kfd_set_sram_ecc_flag(adev->kfd.dev); in gmc_v9_0_process_ras_data_cb()
Damdgpu.h949 struct amdgpu_kfd_dev kfd; member
/Linux-v5.4/samples/bpf/
Dtask_fd_query_user.c223 int err, res, kfd, efd; in test_debug_fs_uprobe() local
228 kfd = open(buf, O_WRONLY | O_APPEND, 0); in test_debug_fs_uprobe()
229 CHECK_PERROR_RET(kfd < 0); in test_debug_fs_uprobe()
238 CHECK_PERROR_RET(write(kfd, buf, strlen(buf)) < 0); in test_debug_fs_uprobe()
240 close(kfd); in test_debug_fs_uprobe()
241 kfd = -1; in test_debug_fs_uprobe()
257 kfd = sys_perf_event_open(&attr, -1, 0, -1, PERF_FLAG_FD_CLOEXEC); in test_debug_fs_uprobe()
258 CHECK_PERROR_RET(kfd < 0); in test_debug_fs_uprobe()
259 CHECK_PERROR_RET(ioctl(kfd, PERF_EVENT_IOC_SET_BPF, prog_fd[0]) < 0); in test_debug_fs_uprobe()
260 CHECK_PERROR_RET(ioctl(kfd, PERF_EVENT_IOC_ENABLE, 0) < 0); in test_debug_fs_uprobe()
[all …]
/Linux-v5.4/tools/perf/
Dbuiltin-probe.c419 int ret, ret2, ufd = -1, kfd = -1; in perf_del_probe_events() local
433 ret = probe_file__open_both(&kfd, &ufd, PF_FL_RW); in perf_del_probe_events()
444 ret = probe_file__get_events(kfd, filter, klist); in perf_del_probe_events()
449 ret = probe_file__del_strlist(kfd, klist); in perf_del_probe_events()
470 if (kfd >= 0) in perf_del_probe_events()
471 close(kfd); in perf_del_probe_events()
/Linux-v5.4/tools/perf/util/
Dprobe-file.c117 int probe_file__open_both(int *kfd, int *ufd, int flag) in probe_file__open_both() argument
119 if (!kfd || !ufd) in probe_file__open_both()
122 *kfd = open_kprobe_events(flag & PF_FL_RW); in probe_file__open_both()
124 if (*kfd < 0 && *ufd < 0) { in probe_file__open_both()
125 print_both_open_warning(*kfd, *ufd); in probe_file__open_both()
126 return *kfd; in probe_file__open_both()
Dprobe-file.h42 int probe_file__open_both(int *kfd, int *ufd, int flag);
Dprobe-event.c3468 int ret, ret2, ufd = -1, kfd = -1; in del_perf_probe_events() local
3475 ret = probe_file__open_both(&kfd, &ufd, PF_FL_RW); in del_perf_probe_events()
3479 ret = probe_file__del_events(kfd, filter); in del_perf_probe_events()
3491 if (kfd >= 0) in del_perf_probe_events()
3492 close(kfd); in del_perf_probe_events()

12