/drivers/misc/ocxl/ |
D | trace.h | 12 TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr), 13 TP_ARGS(pid, spa, pasid, pidr, tidr), 18 __field(int, pasid) 26 __entry->pasid = pasid; 34 __entry->pasid, 41 TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr), 42 TP_ARGS(pid, spa, pasid, pidr, tidr) 46 TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr), 47 TP_ARGS(pid, spa, pasid, pidr, tidr) 51 TP_PROTO(int pasid, int rc), [all …]
|
D | context.c | 10 int pasid; in ocxl_context_alloc() local 19 pasid = idr_alloc(&afu->contexts_idr, ctx, afu->pasid_base, in ocxl_context_alloc() 21 if (pasid < 0) { in ocxl_context_alloc() 24 return pasid; in ocxl_context_alloc() 29 ctx->pasid = pasid; in ocxl_context_alloc() 84 rc = ocxl_link_add_pe(ctx->afu->fn->link, ctx->pasid, pidr, ctx->tidr, in ocxl_context_attach() 127 pasid_off = ctx->pasid - ctx->afu->pasid_base; in map_pp_mmio() 146 ctx->pasid, vmf->address, offset); in ocxl_mmap_fault() 229 rc = ocxl_config_terminate_pasid(dev, afu_control_pos, ctx->pasid); in ocxl_context_detach() 231 trace_ocxl_terminate_pasid(ctx->pasid, rc); in ocxl_context_detach() [all …]
|
D | link.c | 495 int ocxl_link_add_pe(void *link_handle, int pasid, u32 pidr, u32 tidr, in ocxl_link_add_pe() argument 507 if (pasid > SPA_PASID_MAX) in ocxl_link_add_pe() 511 pe_handle = pasid & SPA_PE_MASK; in ocxl_link_add_pe() 568 trace_ocxl_context_add(current->pid, spa->spa_mem, pasid, pidr, tidr); in ocxl_link_add_pe() 575 int ocxl_link_update_pe(void *link_handle, int pasid, __u16 tid) in ocxl_link_update_pe() argument 582 if (pasid > SPA_PASID_MAX) in ocxl_link_update_pe() 585 pe_handle = pasid & SPA_PE_MASK; in ocxl_link_update_pe() 611 int ocxl_link_remove_pe(void *link_handle, int pasid) in ocxl_link_remove_pe() argument 619 if (pasid > SPA_PASID_MAX) in ocxl_link_remove_pe() 640 pe_handle = pasid & SPA_PE_MASK; in ocxl_link_remove_pe() [all …]
|
D | file.c | 79 pr_debug("%s for context %d\n", __func__, ctx->pasid); in afu_ioctl_attach() 104 arg.pasid = ctx->pasid; in afu_ioctl_get_metadata() 141 ctx->pasid, ctx->tidr); in afu_ioctl_enable_p9_wait() 212 pr_debug("%s for context %d, command %s\n", __func__, ctx->pasid, in afu_ioctl() 297 pr_debug("%s for context %d\n", __func__, ctx->pasid); in afu_mmap() 330 pr_debug("%s for context %d\n", __func__, ctx->pasid); in afu_poll()
|
/drivers/gpu/drm/amd/amdkfd/ |
D | kfd_dbgmgr.c | 51 pmgr->pasid = 0; in kfd_dbgmgr_uninitialize() 77 new_buff->pasid = 0; in kfd_dbgmgr_create() 98 if (pmgr->pasid != 0) { in kfd_dbgmgr_register() 100 pmgr->pasid); in kfd_dbgmgr_register() 105 pmgr->pasid = p->pasid; in kfd_dbgmgr_register() 119 if (pmgr->pasid != p->pasid) { in kfd_dbgmgr_unregister() 121 p->pasid); in kfd_dbgmgr_unregister() 127 pmgr->pasid = 0; in kfd_dbgmgr_unregister() 136 if (pmgr->pasid != wac_info->process->pasid) { in kfd_dbgmgr_wave_control() 138 wac_info->process->pasid); in kfd_dbgmgr_wave_control() [all …]
|
D | cik_event_interrupt.c | 36 unsigned int vmid, pasid; in cik_event_interrupt_isr() local 51 pasid = f2g->get_atc_vmid_pasid_mapping_pasid(dev->kgd, vmid); in cik_event_interrupt_isr() 55 tmp_ihre->ring_id |= pasid << 16; in cik_event_interrupt_isr() 57 return (pasid != 0) && in cik_event_interrupt_isr() 69 pasid = (ihre->ring_id & 0xffff0000) >> 16; in cik_event_interrupt_isr() 70 if (WARN_ONCE(pasid == 0, "FW bug: No PASID in KFD interrupt")) in cik_event_interrupt_isr() 91 unsigned int pasid = (ihre->ring_id & 0xffff0000) >> 16; in cik_event_interrupt_wq() local 93 if (pasid == 0) in cik_event_interrupt_wq() 97 kfd_signal_event_interrupt(pasid, context_id, 28); in cik_event_interrupt_wq() 99 kfd_signal_event_interrupt(pasid, context_id, 28); in cik_event_interrupt_wq() [all …]
|
D | kfd_int_process_v9.c | 33 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_isr_v9() local 44 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_isr_v9() 50 if (!pasid && dev->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS) { in event_interrupt_isr_v9() 57 pasid = dev->kfd2kgd->get_atc_vmid_pasid_mapping_pasid( in event_interrupt_isr_v9() 62 & ~pasid_mask) | pasid); in event_interrupt_isr_v9() 66 client_id, source_id, vmid, pasid); in event_interrupt_isr_v9() 72 if (WARN_ONCE(pasid == 0, "Bug: No PASID in KFD interrupt")) in event_interrupt_isr_v9() 90 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_wq_v9() local 95 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_wq_v9() 100 kfd_signal_event_interrupt(pasid, context_id, 32); in event_interrupt_wq_v9() [all …]
|
D | kfd_iommu.c | 123 err = amd_iommu_bind_pasid(dev->pdev, p->pasid, p->lead_thread); in kfd_iommu_bind_process_to_device() 141 amd_iommu_unbind_pasid(pdd->dev->pdev, p->pasid); in kfd_iommu_unbind_process() 145 static void iommu_pasid_shutdown_callback(struct pci_dev *pdev, int pasid) in iommu_pasid_shutdown_callback() argument 159 p = kfd_lookup_process_by_pasid(pasid); in iommu_pasid_shutdown_callback() 163 pr_debug("Unbinding process %d from IOMMU\n", pasid); in iommu_pasid_shutdown_callback() 167 if (dev->dbgmgr && dev->dbgmgr->pasid == p->pasid) { in iommu_pasid_shutdown_callback() 191 static int iommu_invalid_ppr_cb(struct pci_dev *pdev, int pasid, in iommu_invalid_ppr_cb() argument 201 pasid, in iommu_invalid_ppr_cb() 207 kfd_signal_iommu_event(dev, pasid, address, in iommu_invalid_ppr_cb() 235 err = amd_iommu_bind_pasid(kfd->pdev, p->pasid, in kfd_bind_processes_to_device() [all …]
|
D | kfd_process.c | 85 val = p->pasid; in kfd_procfs_show() 420 pdd->dev->id, p->pasid); in kfd_process_destroy_pdds() 471 kfd_pasid_free(p->pasid); in kfd_process_wq_release() 526 if (dev && dev->dbgmgr && dev->dbgmgr->pasid == p->pasid) { in kfd_process_notifier_release() 642 process->pasid = kfd_pasid_alloc(); in create_process() 643 if (process->pasid == 0) in create_process() 678 kfd_pasid_free(process->pasid); in create_process() 788 dev->kgd, drm_file, p->pasid, in kfd_process_device_init_vm() 791 ret = amdgpu_amdkfd_gpuvm_create_process_vm(dev->kgd, p->pasid, in kfd_process_device_init_vm() 905 struct kfd_process *kfd_lookup_process_by_pasid(unsigned int pasid) in kfd_lookup_process_by_pasid() argument [all …]
|
D | kfd_pasid.c | 80 void kfd_pasid_free(unsigned int pasid) in kfd_pasid_free() argument 83 amdgpu_pasid_free(pasid); in kfd_pasid_free()
|
D | kfd_priv.h | 690 unsigned int pasid; member 764 struct kfd_process *kfd_lookup_process_by_pasid(unsigned int pasid); 806 void kfd_pasid_free(unsigned int pasid); 889 int kfd_process_vm_fault(struct device_queue_manager *dqm, unsigned int pasid); 1012 void kfd_signal_event_interrupt(unsigned int pasid, uint32_t partial_id, 1015 unsigned int pasid, unsigned long address, 1017 void kfd_signal_hw_exception_event(unsigned int pasid); 1028 void kfd_signal_vm_fault_event(struct kfd_dev *dev, unsigned int pasid,
|
D | kfd_events.c | 464 void kfd_signal_event_interrupt(unsigned int pasid, uint32_t partial_id, in kfd_signal_event_interrupt() argument 474 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in kfd_signal_event_interrupt() 876 void kfd_signal_iommu_event(struct kfd_dev *dev, unsigned int pasid, in kfd_signal_iommu_event() argument 888 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in kfd_signal_iommu_event() 953 void kfd_signal_hw_exception_event(unsigned int pasid) in kfd_signal_hw_exception_event() argument 960 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in kfd_signal_hw_exception_event() 974 void kfd_signal_vm_fault_event(struct kfd_dev *dev, unsigned int pasid, in kfd_signal_vm_fault_event() argument 979 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in kfd_signal_vm_fault_event()
|
/drivers/iommu/ |
D | intel-pasid.c | 48 void intel_pasid_free_id(int pasid) in intel_pasid_free_id() argument 51 idr_remove(&pasid_idr, pasid); in intel_pasid_free_id() 55 void *intel_pasid_lookup_id(int pasid) in intel_pasid_lookup_id() argument 60 p = idr_find(&pasid_idr, pasid); in intel_pasid_lookup_id() 224 struct pasid_entry *intel_pasid_get_entry(struct device *dev, int pasid) in intel_pasid_get_entry() argument 233 if (WARN_ON(!pasid_table || pasid < 0 || in intel_pasid_get_entry() 234 pasid >= intel_pasid_get_dev_max_id(dev))) in intel_pasid_get_entry() 239 dir_index = pasid >> PASID_PDE_SHIFT; in intel_pasid_get_entry() 240 index = pasid & PASID_PTE_MASK; in intel_pasid_get_entry() 274 static void intel_pasid_clear_entry(struct device *dev, int pasid) in intel_pasid_clear_entry() argument [all …]
|
D | intel-svm.c | 108 desc.qw0 = QI_EIOTLB_PASID(svm->pasid) | in intel_flush_svm_range_dev() 116 desc.qw0 = QI_EIOTLB_PASID(svm->pasid) | in intel_flush_svm_range_dev() 129 desc.qw0 = QI_DEV_EIOTLB_PASID(svm->pasid) | in intel_flush_svm_range_dev() 195 intel_pasid_tear_down_entry(svm->iommu, sdev->dev, svm->pasid); in intel_mm_release() 210 int intel_svm_bind_mm(struct device *dev, int *pasid, int flags, struct svm_dev_ops *ops) in intel_svm_bind_mm() argument 233 } else if (pasid) { in intel_svm_bind_mm() 239 if (pasid && !(flags & SVM_FLAG_PRIVATE_PASID)) { in intel_svm_bind_mm() 247 if (svm->pasid >= pasid_max) { in intel_svm_bind_mm() 250 svm->pasid); in intel_svm_bind_mm() 278 if (ret || !pasid) { in intel_svm_bind_mm() [all …]
|
D | amd_iommu_v2.c | 45 int pasid; /* PASID index */ member 75 u16 pasid; member 155 int pasid, bool alloc) in __get_pasid_state_ptr() argument 165 index = (pasid >> (9 * level)) & 0x1ff; in __get_pasid_state_ptr() 189 int pasid) in set_pasid_state() argument 196 ptr = __get_pasid_state_ptr(dev_state, pasid, true); in set_pasid_state() 216 static void clear_pasid_state(struct device_state *dev_state, int pasid) in clear_pasid_state() argument 222 ptr = __get_pasid_state_ptr(dev_state, pasid, true); in clear_pasid_state() 234 int pasid) in get_pasid_state() argument 240 ptr = __get_pasid_state_ptr(dev_state, pasid, false); in get_pasid_state() [all …]
|
D | intel-pasid.h | 80 void intel_pasid_free_id(int pasid); 81 void *intel_pasid_lookup_id(int pasid); 86 struct pasid_entry *intel_pasid_get_entry(struct device *dev, int pasid); 89 int pasid, u16 did, int flags); 92 struct device *dev, int pasid); 95 struct device *dev, int pasid); 97 struct device *dev, int pasid);
|
D | amd_iommu_proto.h | 46 extern int amd_iommu_flush_page(struct iommu_domain *dom, int pasid, 48 extern int amd_iommu_flush_tlb(struct iommu_domain *dom, int pasid); 49 extern int amd_iommu_domain_set_gcr3(struct iommu_domain *dom, int pasid, 51 extern int amd_iommu_domain_clear_gcr3(struct iommu_domain *dom, int pasid); 67 extern int amd_iommu_complete_ppr(struct pci_dev *pdev, int pasid,
|
D | amd_iommu.c | 564 int type, devid, pasid, flags, tag; in iommu_print_event() local 572 pasid = (event[0] & EVENT_DOMID_MASK_HI) | in iommu_print_event() 588 amd_iommu_report_page_fault(devid, pasid, address, flags); in iommu_print_event() 596 pasid, address, flags); in iommu_print_event() 608 pasid, address, flags); in iommu_print_event() 626 pasid, address, flags); in iommu_print_event() 629 pasid = ((event[0] >> 16) & 0xFFFF) in iommu_print_event() 634 pasid, address, flags, tag); in iommu_print_event() 669 fault.pasid = PPR_PASID(raw[0]); in iommu_handle_ppr_entry() 960 static void build_inv_iommu_pasid(struct iommu_cmd *cmd, u16 domid, int pasid, in build_inv_iommu_pasid() argument [all …]
|
/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_ids.c | 46 unsigned int pasid; member 62 int pasid = -EINVAL; in amdgpu_pasid_alloc() local 65 pasid = ida_simple_get(&amdgpu_pasid_ida, in amdgpu_pasid_alloc() 68 if (pasid != -ENOSPC) in amdgpu_pasid_alloc() 72 if (pasid >= 0) in amdgpu_pasid_alloc() 73 trace_amdgpu_pasid_allocated(pasid); in amdgpu_pasid_alloc() 75 return pasid; in amdgpu_pasid_alloc() 82 void amdgpu_pasid_free(unsigned int pasid) in amdgpu_pasid_free() argument 84 trace_amdgpu_pasid_freed(pasid); in amdgpu_pasid_free() 85 ida_simple_remove(&amdgpu_pasid_ida, pasid); in amdgpu_pasid_free() [all …]
|
D | amdgpu_trace.h | 88 __field(unsigned, pasid) 100 __entry->pasid = iv->pasid; 110 __entry->timestamp, __entry->pasid, 221 __field(u32, pasid) 231 __entry->pasid = vm->pasid; 239 __entry->pasid, __get_str(ring), __entry->vmid, 389 TP_PROTO(unsigned pasid), 390 TP_ARGS(pasid), 392 __field(unsigned, pasid) 395 __entry->pasid = pasid; [all …]
|
D | amdgpu_ids.h | 61 unsigned pasid; member 74 void amdgpu_pasid_free(unsigned int pasid); 76 unsigned int pasid);
|
D | amdgpu_vm.c | 1049 if (id->pasid != job->pasid || !id->pasid_mapping || in amdgpu_vm_flush() 1075 amdgpu_gmc_emit_pasid_mapping(ring, job->vmid, job->pasid); in amdgpu_vm_flush() 1094 id->pasid = job->pasid; in amdgpu_vm_flush() 2674 int vm_context, unsigned int pasid) in amdgpu_vm_init() argument 2743 if (pasid) { in amdgpu_vm_init() 2747 r = idr_alloc(&adev->vm_manager.pasid_idr, vm, pasid, pasid + 1, in amdgpu_vm_init() 2753 vm->pasid = pasid; in amdgpu_vm_init() 2825 int amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm, unsigned int pasid) in amdgpu_vm_make_compute() argument 2839 if (pasid) { in amdgpu_vm_make_compute() 2843 r = idr_alloc(&adev->vm_manager.pasid_idr, vm, pasid, pasid + 1, in amdgpu_vm_make_compute() [all …]
|
D | amdgpu_gmc.h | 100 unsigned pasid); 187 …e amdgpu_gmc_emit_pasid_mapping(r, vmid, pasid) (r)->adev->gmc.gmc_funcs->emit_pasid_mapping((r), … argument 233 uint16_t pasid, uint64_t timestamp);
|
D | amdgpu_amdkfd_gfx_v10.c | 61 static int kgd_set_pasid_vmid_mapping(struct kgd_dev *kgd, unsigned int pasid, 107 static int invalidate_tlbs(struct kgd_dev *kgd, uint16_t pasid); 237 static int kgd_set_pasid_vmid_mapping(struct kgd_dev *kgd, unsigned int pasid, in kgd_set_pasid_vmid_mapping() argument 249 uint32_t pasid_mapping = (pasid == 0) ? 0 : (uint32_t)pasid | in kgd_set_pasid_vmid_mapping() 252 pr_debug("pasid 0x%x vmid %d, reg value %x\n", pasid, vmid, pasid_mapping); in kgd_set_pasid_vmid_mapping() 804 static int invalidate_tlbs_with_kiq(struct amdgpu_device *adev, uint16_t pasid) in invalidate_tlbs_with_kiq() argument 815 PACKET3_INVALIDATE_TLBS_PASID(pasid)); in invalidate_tlbs_with_kiq() 829 static int invalidate_tlbs(struct kgd_dev *kgd, uint16_t pasid) in invalidate_tlbs() argument 836 return invalidate_tlbs_with_kiq(adev, pasid); in invalidate_tlbs() 843 == pasid) { in invalidate_tlbs()
|
D | amdgpu_vm.h | 260 unsigned int pasid; member 348 int vm_context, unsigned int pasid); 349 int amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm, unsigned int pasid); 405 void amdgpu_vm_get_task_info(struct amdgpu_device *adev, unsigned int pasid,
|