Home
last modified time | relevance | path

Searched refs:pasid (Results 1 – 25 of 113) sorted by relevance

12345

/Linux-v5.15/drivers/misc/ocxl/
Dtrace.h36 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 …]
Dcontext.c10 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 …]
Dlink.c537 int ocxl_link_add_pe(void *link_handle, int pasid, u32 pidr, u32 tidr, in ocxl_link_add_pe() argument
549 if (pasid > SPA_PASID_MAX) in ocxl_link_add_pe()
553 pe_handle = pasid & SPA_PE_MASK; in ocxl_link_add_pe()
575 pe->pasid = cpu_to_be32(pasid << (31 - 19)); in ocxl_link_add_pe()
594 trace_ocxl_init_mmu_notifier(pasid, mm->context.id); in ocxl_link_add_pe()
623 trace_ocxl_context_add(current->pid, spa->spa_mem, pasid, pidr, tidr); in ocxl_link_add_pe()
630 int ocxl_link_update_pe(void *link_handle, int pasid, __u16 tid) in ocxl_link_update_pe() argument
637 if (pasid > SPA_PASID_MAX) in ocxl_link_update_pe()
640 pe_handle = pasid & SPA_PE_MASK; in ocxl_link_update_pe()
666 int ocxl_link_remove_pe(void *link_handle, int pasid) in ocxl_link_remove_pe() argument
[all …]
/Linux-v5.15/drivers/iommu/
Diommu-sva-lib.c29 ioasid_t pasid; in iommu_sva_alloc_pasid() local
36 if (mm->pasid) { in iommu_sva_alloc_pasid()
37 if (mm->pasid >= min && mm->pasid <= max) in iommu_sva_alloc_pasid()
38 ioasid_get(mm->pasid); in iommu_sva_alloc_pasid()
42 pasid = ioasid_alloc(&iommu_sva_pasid, min, max, mm); in iommu_sva_alloc_pasid()
43 if (pasid == INVALID_IOASID) in iommu_sva_alloc_pasid()
46 mm->pasid = pasid; in iommu_sva_alloc_pasid()
62 if (ioasid_put(mm->pasid)) in iommu_sva_free_pasid()
63 mm->pasid = 0; in iommu_sva_free_pasid()
82 struct mm_struct *iommu_sva_find(ioasid_t pasid) in iommu_sva_find() argument
[all …]
/Linux-v5.15/drivers/gpu/drm/amd/amdkfd/
Dkfd_dbgmgr.c51 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 …]
Dcik_event_interrupt.c38 uint16_t pasid; in cik_event_interrupt_isr() local
54 ret = f2g->get_atc_vmid_pasid_mapping_info(dev->kgd, 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 …]
Dkfd_int_process_v9.c97 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_isr_v9() local
108 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_isr_v9()
133 if (!pasid && dev->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS) { in event_interrupt_isr_v9()
140 pasid = dev->dqm->vmid_pasid[vmid]; in event_interrupt_isr_v9()
144 & ~pasid_mask) | pasid); in event_interrupt_isr_v9()
148 client_id, source_id, vmid, pasid); in event_interrupt_isr_v9()
154 if (WARN_ONCE(pasid == 0, "Bug: No PASID in KFD interrupt")) in event_interrupt_isr_v9()
173 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_wq_v9() local
179 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_wq_v9()
190 kfd_signal_event_interrupt(pasid, context_id0, 32); in event_interrupt_wq_v9()
[all …]
Dkfd_iommu.c124 err = amd_iommu_bind_pasid(dev->pdev, p->pasid, p->lead_thread); in kfd_iommu_bind_process_to_device()
142 amd_iommu_unbind_pasid(p->pdds[i]->dev->pdev, p->pasid); in kfd_iommu_unbind_process()
146 static void iommu_pasid_shutdown_callback(struct pci_dev *pdev, u32 pasid) in iommu_pasid_shutdown_callback() argument
160 p = kfd_lookup_process_by_pasid(pasid); in iommu_pasid_shutdown_callback()
164 pr_debug("Unbinding process 0x%x from IOMMU\n", pasid); in iommu_pasid_shutdown_callback()
168 if (dev->dbgmgr && dev->dbgmgr->pasid == p->pasid) { in iommu_pasid_shutdown_callback()
192 static int iommu_invalid_ppr_cb(struct pci_dev *pdev, u32 pasid, in iommu_invalid_ppr_cb() argument
202 pasid, in iommu_invalid_ppr_cb()
208 kfd_signal_iommu_event(dev, pasid, address, in iommu_invalid_ppr_cb()
236 err = amd_iommu_bind_pasid(kfd->pdev, p->pasid, in kfd_bind_processes_to_device()
[all …]
Dkfd_process.c282 dev->id, proc->pasid); in kfd_get_cu_occupancy()
289 dev->kfd2kgd->get_cu_occupancy(dev->kgd, proc->pasid, &wave_cnt, in kfd_get_cu_occupancy()
304 return snprintf(buffer, PAGE_SIZE, "%d\n", p->pasid); in kfd_procfs_show()
966 pdd->dev->id, p->pasid); in kfd_process_destroy_pdds()
1063 kfd_pasid_free(p->pasid); in kfd_process_wq_release()
1127 if (dev && dev->dbgmgr && dev->dbgmgr->pasid == p->pasid) { in kfd_process_notifier_release()
1319 process->pasid = kfd_pasid_alloc(); in create_process()
1320 if (process->pasid == 0) in create_process()
1368 kfd_pasid_free(process->pasid); in create_process()
1499 dev->kgd, drm_file, p->pasid, in kfd_process_device_init_vm()
[all …]
Dkfd_pasid.c66 void kfd_pasid_free(u32 pasid) in kfd_pasid_free() argument
68 amdgpu_pasid_free(pasid); in kfd_pasid_free()
/Linux-v5.15/drivers/iommu/intel/
Dsvm.c31 static void intel_svm_drain_prq(struct device *dev, u32 pasid);
35 static int pasid_private_add(ioasid_t pasid, void *priv) in pasid_private_add() argument
37 return xa_alloc(&pasid_private_array, &pasid, priv, in pasid_private_add()
38 XA_LIMIT(pasid, pasid), GFP_ATOMIC); in pasid_private_add()
41 static void pasid_private_remove(ioasid_t pasid) in pasid_private_remove() argument
43 xa_erase(&pasid_private_array, pasid); in pasid_private_remove()
46 static void *pasid_private_find(ioasid_t pasid) in pasid_private_find() argument
48 return xa_load(&pasid_private_array, pasid); in pasid_private_find()
208 qi_flush_piotlb(sdev->iommu, sdev->did, svm->pasid, address, pages, ih); in __flush_svm_range_dev()
211 svm->pasid, sdev->qdep, address, in __flush_svm_range_dev()
[all …]
Dpasid.c29 int vcmd_alloc_pasid(struct intel_iommu *iommu, u32 *pasid) in vcmd_alloc_pasid() argument
45 *pasid = VCMD_VRSP_RESULT_PASID(res); in vcmd_alloc_pasid()
60 void vcmd_free_pasid(struct intel_iommu *iommu, u32 pasid) in vcmd_free_pasid() argument
68 VCMD_CMD_OPERAND(pasid) | VCMD_CMD_FREE); in vcmd_free_pasid()
244 static struct pasid_entry *intel_pasid_get_entry(struct device *dev, u32 pasid) in intel_pasid_get_entry() argument
253 if (WARN_ON(!pasid_table || pasid >= intel_pasid_get_dev_max_id(dev))) in intel_pasid_get_entry()
258 dir_index = pasid >> PASID_PDE_SHIFT; in intel_pasid_get_entry()
259 index = pasid & PASID_PTE_MASK; in intel_pasid_get_entry()
312 intel_pasid_clear_entry(struct device *dev, u32 pasid, bool fault_ignore) in intel_pasid_clear_entry() argument
316 pe = intel_pasid_get_entry(dev, pasid); in intel_pasid_clear_entry()
[all …]
Dpasid.h114 u32 pasid, u16 did, int flags);
117 struct device *dev, u32 pasid);
120 struct device *dev, u32 pasid);
122 struct device *dev, pgd_t *pgd, u32 pasid,
126 struct device *dev, u32 pasid,
128 int vcmd_alloc_pasid(struct intel_iommu *iommu, u32 *pasid);
129 void vcmd_free_pasid(struct intel_iommu *iommu, u32 pasid);
/Linux-v5.15/drivers/pci/
Dats.c364 int pasid = pdev->pasid_cap; in pci_enable_pasid() local
382 if (!pasid) in pci_enable_pasid()
385 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported); in pci_enable_pasid()
395 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control); in pci_enable_pasid()
410 int pasid = pdev->pasid_cap; in pci_disable_pasid() local
419 if (!pasid) in pci_disable_pasid()
422 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control); in pci_disable_pasid()
435 int pasid = pdev->pasid_cap; in pci_restore_pasid_state() local
443 if (!pasid) in pci_restore_pasid_state()
447 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control); in pci_restore_pasid_state()
[all …]
/Linux-v5.15/drivers/iommu/amd/
Diommu_v2.c44 u32 pasid; /* PASID index */ member
74 u32 pasid; member
154 u32 pasid, bool alloc) in __get_pasid_state_ptr() argument
164 index = (pasid >> (9 * level)) & 0x1ff; in __get_pasid_state_ptr()
188 u32 pasid) in set_pasid_state() argument
195 ptr = __get_pasid_state_ptr(dev_state, pasid, true); in set_pasid_state()
215 static void clear_pasid_state(struct device_state *dev_state, u32 pasid) in clear_pasid_state() argument
221 ptr = __get_pasid_state_ptr(dev_state, pasid, true); in clear_pasid_state()
233 u32 pasid) in get_pasid_state() argument
239 ptr = __get_pasid_state_ptr(dev_state, pasid, false); in get_pasid_state()
[all …]
Damd_iommu.h55 extern int amd_iommu_flush_page(struct iommu_domain *dom, u32 pasid,
61 extern int amd_iommu_flush_tlb(struct iommu_domain *dom, u32 pasid);
62 extern int amd_iommu_domain_set_gcr3(struct iommu_domain *dom, u32 pasid,
64 extern int amd_iommu_domain_clear_gcr3(struct iommu_domain *dom, u32 pasid);
79 extern int amd_iommu_complete_ppr(struct pci_dev *pdev, u32 pasid,
/Linux-v5.15/drivers/gpu/drm/amd/amdgpu/
Damdgpu_ids.c46 u32 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(u32 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 …]
Damdgpu_trace.h88 __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,
438 TP_PROTO(unsigned pasid),
439 TP_ARGS(pasid),
441 __field(unsigned, pasid)
444 __entry->pasid = pasid;
[all …]
Damdgpu_gmc.h115 int (*flush_gpu_tlb_pasid)(struct amdgpu_device *adev, uint16_t pasid,
122 unsigned pasid);
266 #define amdgpu_gmc_flush_gpu_tlb_pasid(adev, pasid, type, allhub) \ argument
268 ((adev), (pasid), (type), (allhub)))
270 …e amdgpu_gmc_emit_pasid_mapping(r, vmid, pasid) (r)->adev->gmc.gmc_funcs->emit_pasid_mapping((r), … argument
320 uint16_t pasid, uint64_t timestamp);
322 uint16_t pasid);
Damdgpu_ids.h61 unsigned pasid; member
74 void amdgpu_pasid_free(u32 pasid);
76 u32 pasid);
/Linux-v5.15/arch/csky/include/asm/
Dasid.h33 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-v5.15/include/uapi/linux/
Diommu.h75 __u32 pasid; member
100 __u32 pasid; member
156 __u32 pasid; member
195 __u64 pasid; member
221 __u64 pasid; member
/Linux-v5.15/arch/csky/mm/
Dasid.c79 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-v5.15/include/linux/
Damd-iommu.h63 extern int amd_iommu_bind_pasid(struct pci_dev *pdev, u32 pasid,
75 extern void amd_iommu_unbind_pasid(struct pci_dev *pdev, u32 pasid);
101 u32 pasid,
153 typedef void (*amd_iommu_invalidate_ctx)(struct pci_dev *pdev, u32 pasid);
/Linux-v5.15/drivers/dma/idxd/
Dcdev.c37 unsigned int pasid; member
80 unsigned int pasid; in idxd_cdev_open() local
110 pasid = iommu_sva_get_pasid(sva); in idxd_cdev_open()
111 if (pasid == IOMMU_PASID_INVALID) { in idxd_cdev_open()
118 ctx->pasid = pasid; in idxd_cdev_open()
121 rc = idxd_wq_set_pasid(wq, pasid); in idxd_cdev_open()
153 idxd_device_drain_pasid(idxd, ctx->pasid); in idxd_cdev_release()

12345