/linux/drivers/misc/ocxl/ |
H A D | trace.h | 36 TP_PROTO(int pasid, unsigned long pidr), 37 TP_ARGS(pasid, pidr), 40 __field(int, pasid) 45 __entry->pasid = pasid; 50 __entry->pasid, 56 TP_PROTO(int pasid, unsigned long pidr), 57 TP_ARGS(pasid, pidr), 60 __field(int, pasid) 65 __entry->pasid = pasid; 70 __entry->pasid, [all …]
|
H A 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() 86 rc = ocxl_link_add_pe(ctx->afu->fn->link, ctx->pasid, pidr, ctx->tidr, in ocxl_context_attach() 129 pasid_off = ctx->pasid - ctx->afu->pasid_base; in map_pp_mmio() 148 ctx->pasid, vmf->address, offset); in ocxl_mmap_fault() 231 rc = ocxl_config_terminate_pasid(dev, afu_control_pos, ctx->pasid); in ocxl_context_detach() 233 trace_ocxl_terminate_pasid(ctx->pasid, rc); in ocxl_context_detach() [all …]
|
H A D | link.c | 538 int ocxl_link_add_pe(void *link_handle, int pasid, u32 pidr, u32 tidr, in ocxl_link_add_pe() argument 550 if (pasid > SPA_PASID_MAX) in ocxl_link_add_pe() 554 pe_handle = pasid & SPA_PE_MASK; in ocxl_link_add_pe() 576 pe->pasid = cpu_to_be32(pasid << (31 - 19)); in ocxl_link_add_pe() 595 trace_ocxl_init_mmu_notifier(pasid, mm->context.id); in ocxl_link_add_pe() 624 trace_ocxl_context_add(current->pid, spa->spa_mem, pasid, pidr, tidr); in ocxl_link_add_pe() 631 int ocxl_link_update_pe(void *link_handle, int pasid, __u16 tid) in ocxl_link_update_pe() argument 638 if (pasid > SPA_PASID_MAX) in ocxl_link_update_pe() 641 pe_handle = pasid & SPA_PE_MASK; in ocxl_link_update_pe() 667 int ocxl_link_remove_pe(void *link_handle, int pasid) in ocxl_link_remove_pe() argument [all …]
|
H A D | ocxl_internal.h | 72 int pasid; member 87 __be32 pasid; member 139 int ocxl_link_update_pe(void *link_handle, int pasid, __u16 tid);
|
/linux/drivers/gpu/drm/amd/amdkfd/ |
H A D | cik_event_interrupt.c | 38 uint16_t pasid; in cik_event_interrupt_isr() local 54 ret = f2g->get_atc_vmid_pasid_mapping_info(dev->adev, vmid, &pasid); in cik_event_interrupt_isr() 58 tmp_ihre->ring_id |= pasid << 16; in cik_event_interrupt_isr() 60 return ret && (pasid != 0) && in cik_event_interrupt_isr() 72 pasid = (ihre->ring_id & 0xffff0000) >> 16; in cik_event_interrupt_isr() 73 if (WARN_ONCE(pasid == 0, "FW bug: No PASID in KFD interrupt")) in cik_event_interrupt_isr() 95 u32 pasid = (ihre->ring_id & 0xffff0000) >> 16; in cik_event_interrupt_wq() local 97 if (pasid == 0) in cik_event_interrupt_wq() 101 kfd_signal_event_interrupt(pasid, context_id, 28); in cik_event_interrupt_wq() 103 kfd_signal_event_interrupt(pasid, context_id, 28); in cik_event_interrupt_wq() [all …]
|
H A D | kfd_int_process_v11.c | 192 uint16_t pasid, uint16_t source_id) in event_interrupt_poison_consumption_v11() argument 197 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in event_interrupt_poison_consumption_v11() 214 ret = dev->dqm->ops.reset_queues(dev->dqm, pasid); in event_interrupt_poison_consumption_v11() 226 kfd_signal_poison_consumed_event(dev, pasid); in event_interrupt_poison_consumption_v11() 238 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_isr_v11() local 251 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_isr_v11() 259 client_id, source_id, vmid, pasid); in event_interrupt_isr_v11() 265 if (WARN_ONCE(pasid == 0, "Bug: No PASID in KFD interrupt")) in event_interrupt_isr_v11() 285 uint16_t source_id, client_id, ring_id, pasid, vmid; in event_interrupt_wq_v11() local 294 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_wq_v11() [all …]
|
H A D | kfd_int_process_v9.c | 145 uint16_t pasid, uint16_t client_id) in event_interrupt_poison_consumption_v9() argument 149 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in event_interrupt_poison_consumption_v9() 229 kfd_signal_poison_consumed_event(dev, pasid); in event_interrupt_poison_consumption_v9() 237 block, pasid, NULL, NULL, reset); in event_interrupt_poison_consumption_v9() 264 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_isr_v9() local 277 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_isr_v9() 303 if (!pasid && dev->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS) { in event_interrupt_isr_v9() 310 pasid = dev->dqm->vmid_pasid[vmid]; in event_interrupt_isr_v9() 314 & ~pasid_mask) | pasid); in event_interrupt_isr_v9() 318 client_id, source_id, vmid, pasid); in event_interrupt_isr_v9() [all …]
|
H A D | kfd_int_process_v10.c | 137 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_isr_v10() local 150 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_isr_v10() 172 client_id, source_id, vmid, pasid); in event_interrupt_isr_v10() 178 if (WARN_ONCE(pasid == 0, "Bug: No PASID in KFD interrupt")) in event_interrupt_isr_v10() 197 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_wq_v10() local 203 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_wq_v10() 214 kfd_signal_event_interrupt(pasid, context_id0, 32); in event_interrupt_wq_v10() 252 if (kfd_set_dbg_ev_from_interrupt(dev, pasid, in event_interrupt_wq_v10() 282 kfd_signal_event_interrupt(pasid, context_id0 & 0x7fffff, 23); in event_interrupt_wq_v10() 285 kfd_set_dbg_ev_from_interrupt(dev, pasid, in event_interrupt_wq_v10() [all …]
|
H A D | kfd_process.c | 286 dev->id, proc->pasid); in kfd_get_cu_occupancy() 334 return snprintf(buffer, PAGE_SIZE, "%d\n", p->pasid); in kfd_procfs_show() 1060 pdd->dev->id, p->pasid); in kfd_process_destroy_pdds() 1177 kfd_pasid_free(p->pasid); in kfd_process_wq_release() 1528 process->pasid = kfd_pasid_alloc(); in create_process() 1529 if (process->pasid == 0) { in create_process() 1587 kfd_pasid_free(process->pasid); in create_process() 1707 ret = amdgpu_amdkfd_gpuvm_set_vm_pasid(dev->adev, avm, p->pasid); in kfd_process_device_init_vm() 1802 struct kfd_process *kfd_lookup_process_by_pasid(u32 pasid) in kfd_lookup_process_by_pasid() argument 1810 if (p->pasid == pasid) { in kfd_lookup_process_by_pasid() [all …]
|
H A D | kfd_pasid.c | 67 void kfd_pasid_free(u32 pasid) in kfd_pasid_free() argument 69 amdgpu_pasid_free(pasid); in kfd_pasid_free()
|
H A D | kfd_events.c | 720 void kfd_signal_event_interrupt(u32 pasid, uint32_t partial_id, in kfd_signal_event_interrupt() argument 730 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in kfd_signal_event_interrupt() 1143 p->lead_thread->pid, p->pasid); in lookup_events_by_type_and_signal() 1152 p->lead_thread->pid, p->pasid); in lookup_events_by_type_and_signal() 1157 p->lead_thread->pid, p->pasid); in lookup_events_by_type_and_signal() 1164 void kfd_signal_hw_exception_event(u32 pasid) in kfd_signal_hw_exception_event() argument 1171 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in kfd_signal_hw_exception_event() 1180 void kfd_signal_vm_fault_event(struct kfd_node *dev, u32 pasid, in kfd_signal_vm_fault_event() argument 1186 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in kfd_signal_vm_fault_event() 1267 WARN_ONCE(1, "Could not get device data from pasid:0x%x\n", p->pasid); in kfd_signal_reset_event() [all …]
|
/linux/drivers/iommu/intel/ |
H A D | pasid.c | 129 static struct pasid_entry *intel_pasid_get_entry(struct device *dev, u32 pasid) in intel_pasid_get_entry() argument 138 if (WARN_ON(!pasid_table || pasid >= intel_pasid_get_dev_max_id(dev))) in intel_pasid_get_entry() 143 dir_index = pasid >> PASID_PDE_SHIFT; in intel_pasid_get_entry() 144 index = pasid & PASID_PTE_MASK; in intel_pasid_get_entry() 180 intel_pasid_clear_entry(struct device *dev, u32 pasid, bool fault_ignore) in intel_pasid_clear_entry() argument 184 pe = intel_pasid_get_entry(dev, pasid); in intel_pasid_clear_entry() 196 u16 did, u32 pasid) in pasid_cache_invalidation_with_pasid() argument 201 QI_PC_PASID(pasid) | QI_PC_TYPE; in pasid_cache_invalidation_with_pasid() 211 struct device *dev, u32 pasid) in devtlb_invalidation_with_pasid() argument 233 if (pasid == IOMMU_NO_PASID) in devtlb_invalidation_with_pasid() [all …]
|
H A D | cache.c | 25 ioasid_t pasid, enum cache_tag_type type) in cache_tage_match() argument 30 if (tag->domain_id != domain_id || tag->pasid != pasid) in cache_tage_match() 44 struct device *dev, ioasid_t pasid, in cache_tag_assign() argument 60 tag->pasid = pasid; in cache_tag_assign() 71 if (cache_tage_match(temp, did, iommu, dev, pasid, type)) { in cache_tag_assign() 95 struct device *dev, ioasid_t pasid, in cache_tag_unassign() argument 105 if (cache_tage_match(tag, did, iommu, dev, pasid, type)) { in cache_tag_unassign() 137 struct device *dev, ioasid_t pasid) in __cache_tag_assign_domain() argument 146 ret = cache_tag_assign(domain, did, dev, pasid, CACHE_TAG_IOTLB); in __cache_tag_assign_domain() 150 ret = cache_tag_assign(domain, did, dev, pasid, CACHE_TAG_DEVTLB); in __cache_tag_assign_domain() [all …]
|
H A D | prq.c | 24 u64 pasid:20; member 60 void intel_iommu_drain_pasid_prq(struct device *dev, u32 pasid) in intel_iommu_drain_pasid_prq() argument 91 (req->pasid_present && pasid != req->pasid) || in intel_iommu_drain_pasid_prq() 92 (!req->pasid_present && pasid != IOMMU_NO_PASID)) { in intel_iommu_drain_pasid_prq() 111 if (pasid == IOMMU_NO_PASID) { in intel_iommu_drain_pasid_prq() 116 qi_desc_piotlb(did, pasid, 0, -1, 0, &desc[1]); in intel_iommu_drain_pasid_prq() 117 qi_desc_dev_iotlb_pasid(sid, info->pfsid, pasid, info->ats_qdep, in intel_iommu_drain_pasid_prq() 149 desc.qw0 = QI_PGRP_PASID(req->pasid) | in handle_bad_prq_event() 184 event.fault.prm.pasid = desc->pasid; in intel_prq_report() 389 desc.qw0 = QI_PGRP_PASID(prm->pasid) | QI_PGRP_DID(sid) | in intel_iommu_page_response()
|
/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_ids.c | 46 u32 pasid; member 62 int pasid = -EINVAL; in amdgpu_pasid_alloc() local 65 pasid = ida_alloc_range(&amdgpu_pasid_ida, 1U << (bits - 1), in amdgpu_pasid_alloc() 67 if (pasid != -ENOSPC) in amdgpu_pasid_alloc() 71 if (pasid >= 0) in amdgpu_pasid_alloc() 72 trace_amdgpu_pasid_allocated(pasid); in amdgpu_pasid_alloc() 74 return pasid; in amdgpu_pasid_alloc() 81 void amdgpu_pasid_free(u32 pasid) in amdgpu_pasid_free() argument 83 trace_amdgpu_pasid_freed(pasid); in amdgpu_pasid_free() 84 ida_free(&amdgpu_pasid_ida, pasid); in amdgpu_pasid_free() [all …]
|
H A D | amdgpu_vm_tlb_fence.c | 37 uint16_t pasid; member 62 r = amdgpu_gmc_flush_gpu_tlb_pasid(f->adev, f->pasid, 2, true, 0); in amdgpu_tlb_fence_work() 65 f->pasid); in amdgpu_tlb_fence_work() 93 amdgpu_gmc_flush_gpu_tlb_pasid(adev, vm->pasid, 2, true, 0); in amdgpu_vm_tlb_fence_create() 100 f->pasid = vm->pasid; in amdgpu_vm_tlb_fence_create()
|
H A D | amdgpu_trace.h | 88 __field(unsigned, pasid) 100 __entry->pasid = iv->pasid; 110 __entry->timestamp, __entry->pasid, 223 __field(u32, pasid) 233 __entry->pasid = vm->pasid; 241 __entry->pasid, __get_str(ring), __entry->vmid, 439 TP_PROTO(unsigned pasid), 440 TP_ARGS(pasid), 442 __field(unsigned, pasid) 445 __entry->pasid = pasid; [all …]
|
H A D | amdgpu_mes.c | 256 int amdgpu_mes_create_process(struct amdgpu_device *adev, int pasid, in amdgpu_mes_create_process() argument 288 r = idr_alloc(&adev->mes.pasid_idr, process, pasid, pasid + 1, in amdgpu_mes_create_process() 291 DRM_ERROR("failed to lock pasid=%d\n", pasid); in amdgpu_mes_create_process() 297 process->pasid = pasid; in amdgpu_mes_create_process() 314 void amdgpu_mes_destroy_process(struct amdgpu_device *adev, int pasid) in amdgpu_mes_destroy_process() argument 329 process = idr_find(&adev->mes.pasid_idr, pasid); in amdgpu_mes_destroy_process() 331 DRM_WARN("pasid %d doesn't exist\n", pasid); in amdgpu_mes_destroy_process() 355 idr_remove(&adev->mes.pasid_idr, pasid); in amdgpu_mes_destroy_process() 379 int amdgpu_mes_add_gang(struct amdgpu_device *adev, int pasid, in amdgpu_mes_add_gang() argument 411 process = idr_find(&adev->mes.pasid_idr, pasid); in amdgpu_mes_add_gang() [all …]
|
H A D | amdgpu_ids.h | 61 unsigned pasid; member 75 void amdgpu_pasid_free(u32 pasid); 77 u32 pasid);
|
H A D | amdgpu_gmc.h | 140 void (*flush_gpu_tlb_pasid)(struct amdgpu_device *adev, uint16_t pasid, 148 unsigned pasid); 373 …e amdgpu_gmc_emit_pasid_mapping(r, vmid, pasid) (r)->adev->gmc.gmc_funcs->emit_pasid_mapping((r), … argument 434 uint16_t pasid, uint64_t timestamp); 436 uint16_t pasid); 443 int amdgpu_gmc_flush_gpu_tlb_pasid(struct amdgpu_device *adev, uint16_t pasid,
|
/linux/drivers/iommu/ |
H A D | iommu-sva.c | 20 ioasid_t pasid; in iommu_alloc_mm_data() local 30 if (iommu_mm->pasid >= dev->iommu->max_pasids) in iommu_alloc_mm_data() 39 pasid = iommu_alloc_global_pasid(dev); in iommu_alloc_mm_data() 40 if (pasid == IOMMU_PASID_INVALID) { in iommu_alloc_mm_data() 44 iommu_mm->pasid = pasid; in iommu_alloc_mm_data() 93 attach_handle = iommu_attach_handle_get(group, iommu_mm->pasid, IOMMU_DOMAIN_SVA); in iommu_sva_bind_device() 118 ret = iommu_attach_device_pasid(domain, dev, iommu_mm->pasid, in iommu_sva_bind_device() 133 ret = iommu_attach_device_pasid(domain, dev, iommu_mm->pasid, in iommu_sva_bind_device() 176 iommu_detach_device_pasid(domain, dev, iommu_mm->pasid); in iommu_sva_unbind_device() 201 iommu_free_global_pasid(iommu_mm->pasid); in mm_pasid_drop()
|
H A D | io-pgfault.c | 126 fault->prm.pasid, 0); in find_fault_handler() 163 .pasid = fault->prm.pasid, in iopf_error_response() 269 fault->prm.pasid); in iommu_report_device_fault() 330 .pasid = iopf->fault.prm.pasid, in iopf_group_response() 474 .pasid = iopf->fault.prm.pasid, in iopf_queue_remove_device()
|
/linux/arch/csky/mm/ |
H A D | asid.c | 79 static u64 new_context(struct asid_info *info, atomic64_t *pasid, in new_context() argument 83 u64 asid = atomic64_read(pasid); in new_context() 137 void asid_new_context(struct asid_info *info, atomic64_t *pasid, in asid_new_context() argument 145 asid = atomic64_read(pasid); in asid_new_context() 147 asid = new_context(info, pasid, mm); in asid_new_context() 148 atomic64_set(pasid, asid); in asid_new_context()
|
/linux/arch/csky/include/asm/ |
H A D | asid.h | 33 void asid_new_context(struct asid_info *info, atomic64_t *pasid, 43 atomic64_t *pasid, unsigned int cpu, in asid_check_context() argument 48 asid = atomic64_read(pasid); in asid_check_context() 71 asid_new_context(info, pasid, cpu, mm); in asid_check_context()
|
/linux/drivers/dma/idxd/ |
H A D | device.c | 304 static void __idxd_wq_set_pasid_locked(struct idxd_wq *wq, int pasid) in __idxd_wq_set_pasid_locked() argument 314 wqcfg.pasid = pasid; in __idxd_wq_set_pasid_locked() 320 int idxd_wq_set_pasid(struct idxd_wq *wq, int pasid) in idxd_wq_set_pasid() argument 328 __idxd_wq_set_pasid_locked(wq, pasid); in idxd_wq_set_pasid() 352 wqcfg.pasid = 0; in idxd_wq_disable_pasid() 585 void idxd_device_drain_pasid(struct idxd_device *idxd, int pasid) in idxd_device_drain_pasid() argument 590 operand = pasid; in idxd_device_drain_pasid() 593 dev_dbg(dev, "pasid %d drained\n", pasid); in idxd_device_drain_pasid() 1290 if (ie->pasid == IOMMU_PASID_INVALID) in idxd_device_set_perm_entry() 1294 mperm.pasid = ie->pasid; in idxd_device_set_perm_entry() [all …]
|