Home
last modified time | relevance | path

Searched refs:asid (Results 1 – 25 of 141) sorted by relevance

123456

/openbmc/linux/arch/arm64/mm/
H A Dcontext.c38 #define ctxid2asid(asid) ((asid) & ~ASID_MASK) argument
39 #define asid2ctxid(asid, genid) ((asid) | (genid)) argument
44 u32 asid; in get_cpu_asid_bits() local
54 asid = 8; in get_cpu_asid_bits()
57 asid = 16; in get_cpu_asid_bits()
60 return asid; in get_cpu_asid_bits()
66 u32 asid = get_cpu_asid_bits(); in verify_cpu_asid_bits() local
68 if (asid < asid_bits) { in verify_cpu_asid_bits()
74 smp_processor_id(), asid, asid_bits); in verify_cpu_asid_bits()
101 #define asid_gen_match(asid) \ argument
[all …]
/openbmc/linux/arch/arm/mm/
H A Dcontext.c56 u64 context_id, asid; in a15_erratum_get_cpumask() local
67 asid = per_cpu(active_asids, cpu).counter; in a15_erratum_get_cpumask()
68 if (asid == 0) in a15_erratum_get_cpumask()
69 asid = per_cpu(reserved_asids, cpu); in a15_erratum_get_cpumask()
70 if (context_id == asid) in a15_erratum_get_cpumask()
139 u64 asid; in flush_context() local
144 asid = atomic64_xchg(&per_cpu(active_asids, i), 0); in flush_context()
152 if (asid == 0) in flush_context()
153 asid = per_cpu(reserved_asids, i); in flush_context()
154 __set_bit(asid & ~ASID_MASK, asid_map); in flush_context()
[all …]
/openbmc/linux/arch/csky/mm/
H A Dasid.c21 #define asid2idx(info, asid) (((asid) & ~ASID_MASK(info)) >> (info)->ctxt_shift) argument
27 u64 asid; in flush_context() local
33 asid = atomic64_xchg_relaxed(&active_asid(info, i), 0); in flush_context()
41 if (asid == 0) in flush_context()
42 asid = reserved_asid(info, i); in flush_context()
43 __set_bit(asid2idx(info, asid), info->map); in flush_context()
44 reserved_asid(info, i) = asid; in flush_context()
54 static bool check_update_reserved_asid(struct asid_info *info, u64 asid, in check_update_reserved_asid() argument
70 if (reserved_asid(info, cpu) == asid) { in check_update_reserved_asid()
83 u64 asid = atomic64_read(pasid); in new_context() local
[all …]
/openbmc/linux/arch/riscv/mm/
H A Dtlbflush.c18 unsigned long asid) in local_flush_tlb_range_threshold_asid() argument
24 local_flush_tlb_all_asid(asid); in local_flush_tlb_range_threshold_asid()
29 local_flush_tlb_page_asid(start, asid); in local_flush_tlb_range_threshold_asid()
35 unsigned long size, unsigned long stride, unsigned long asid) in local_flush_tlb_range_asid() argument
38 local_flush_tlb_page_asid(start, asid); in local_flush_tlb_range_asid()
40 local_flush_tlb_all_asid(asid); in local_flush_tlb_range_asid()
42 local_flush_tlb_range_threshold_asid(start, size, stride, asid); in local_flush_tlb_range_asid()
65 unsigned long asid; member
75 local_flush_tlb_range_asid(d->start, d->size, d->stride, d->asid); in __ipi_flush_tlb_range_asid()
83 unsigned long asid = FLUSH_TLB_NO_ASID; in __flush_tlb_range() local
[all …]
/openbmc/linux/arch/xtensa/include/asm/
H A Dmmu_context.h72 unsigned long asid = cpu_asid_cache(cpu); in get_new_mmu_context() local
73 if ((++asid & ASID_MASK) == 0) { in get_new_mmu_context()
79 asid += ASID_USER_FIRST; in get_new_mmu_context()
81 cpu_asid_cache(cpu) = asid; in get_new_mmu_context()
82 mm->context.asid[cpu] = asid; in get_new_mmu_context()
93 unsigned long asid = mm->context.asid[cpu]; in get_mmu_context() local
95 if (asid == NO_CONTEXT || in get_mmu_context()
96 ((asid ^ cpu_asid_cache(cpu)) & ~ASID_MASK)) in get_mmu_context()
104 set_rasid_register(ASID_INSERT(mm->context.asid[cpu])); in activate_context()
120 mm->context.asid[cpu] = NO_CONTEXT; in init_new_context()
/openbmc/linux/arch/sh/include/asm/
H A Dmmu_context_32.h6 static inline void set_asid(unsigned long asid) in set_asid() argument
8 __raw_writel(asid, MMU_PTEAEX); in set_asid()
16 static inline void set_asid(unsigned long asid) in set_asid() argument
25 : "r" (asid), "m" (__m(MMU_PTEH)), in set_asid()
31 unsigned long asid; in get_asid() local
34 : "=r" (asid) in get_asid()
36 asid &= MMU_CONTEXT_ASID_MASK; in get_asid()
37 return asid; in get_asid()
H A Dmmu_context.h57 unsigned long asid = asid_cache(cpu); in get_mmu_context() local
60 if (((cpu_context(cpu, mm) ^ asid) & MMU_CONTEXT_VERSION_MASK) == 0) in get_mmu_context()
65 if (!(++asid & MMU_CONTEXT_ASID_MASK)) { in get_mmu_context()
76 if (!asid) in get_mmu_context()
77 asid = MMU_CONTEXT_FIRST_VERSION; in get_mmu_context()
80 cpu_context(cpu, mm) = asid_cache(cpu) = asid; in get_mmu_context()
128 #define set_asid(asid) do { } while (0) argument
131 #define switch_and_save_asid(asid) (0) argument
/openbmc/linux/arch/sh/mm/
H A Dtlbflush_32.c21 unsigned long asid; in local_flush_tlb_page() local
24 asid = cpu_asid(cpu, vma->vm_mm); in local_flush_tlb_page()
30 set_asid(asid); in local_flush_tlb_page()
32 local_flush_tlb_one(asid, page); in local_flush_tlb_page()
56 unsigned long asid; in local_flush_tlb_range() local
59 asid = cpu_asid(cpu, mm); in local_flush_tlb_range()
65 set_asid(asid); in local_flush_tlb_range()
68 local_flush_tlb_one(asid, start); in local_flush_tlb_range()
89 unsigned long asid; in local_flush_tlb_kernel_range() local
92 asid = cpu_asid(cpu, &init_mm); in local_flush_tlb_kernel_range()
[all …]
/openbmc/linux/arch/arm64/include/asm/
H A Dtlbflush.h58 #define __TLBI_VADDR(addr, asid) \ argument
62 __ta |= (unsigned long)(asid) << 48; \
137 #define __TLBI_VADDR_RANGE(addr, asid, scale, num, ttl) \ argument
145 __ta |= (unsigned long)(asid) << 48; \
255 unsigned long asid; in flush_tlb_mm() local
258 asid = __TLBI_VADDR(0, ASID(mm)); in flush_tlb_mm()
259 __tlbi(aside1is, asid); in flush_tlb_mm()
260 __tlbi_user(aside1is, asid); in flush_tlb_mm()
370 asid, tlb_level, tlbi_user) \ argument
379 addr = __TLBI_VADDR(start, asid); \
[all …]
/openbmc/linux/arch/x86/mm/
H A Dtlb.c114 static inline u16 kern_pcid(u16 asid) in kern_pcid() argument
116 VM_WARN_ON_ONCE(asid > MAX_ASID_AVAILABLE); in kern_pcid()
129 VM_WARN_ON_ONCE(asid & (1 << X86_CR3_PTI_PCID_USER_BIT)); in kern_pcid()
144 return asid + 1; in kern_pcid()
150 static inline u16 user_pcid(u16 asid) in user_pcid() argument
152 u16 ret = kern_pcid(asid); in user_pcid()
159 static inline unsigned long build_cr3(pgd_t *pgd, u16 asid, unsigned long lam) in build_cr3() argument
164 VM_WARN_ON_ONCE(asid > MAX_ASID_AVAILABLE); in build_cr3()
165 cr3 |= kern_pcid(asid); in build_cr3()
167 VM_WARN_ON_ONCE(asid != 0); in build_cr3()
[all …]
/openbmc/linux/arch/riscv/kvm/
H A Dtlb.c78 unsigned long asid, in kvm_riscv_local_hfence_vvma_asid_gva() argument
86 kvm_riscv_local_hfence_vvma_asid_all(vmid, asid); in kvm_riscv_local_hfence_vvma_asid_gva()
96 : : "r" (pos), "r" (asid) : "memory"); in kvm_riscv_local_hfence_vvma_asid_gva()
101 : : "r" (pos), "r" (asid) : "memory"); in kvm_riscv_local_hfence_vvma_asid_gva()
108 unsigned long asid) in kvm_riscv_local_hfence_vvma_asid_all() argument
114 asm volatile(HFENCE_VVMA(zero, %0) : : "r" (asid) : "memory"); in kvm_riscv_local_hfence_vvma_asid_all()
269 READ_ONCE(v->vmid), d.asid, in kvm_riscv_hfence_process()
275 READ_ONCE(v->vmid), d.asid); in kvm_riscv_hfence_process()
340 data.asid = 0; in kvm_riscv_hfence_gvma_vmid_gpa()
358 unsigned long order, unsigned long asid) in kvm_riscv_hfence_vvma_asid_gva() argument
[all …]
/openbmc/linux/arch/riscv/include/asm/
H A Dtlbflush.h25 static inline void local_flush_tlb_all_asid(unsigned long asid) in local_flush_tlb_all_asid() argument
27 if (asid != FLUSH_TLB_NO_ASID) in local_flush_tlb_all_asid()
28 ALT_SFENCE_VMA_ASID(asid); in local_flush_tlb_all_asid()
40 unsigned long asid) in local_flush_tlb_page_asid() argument
42 if (asid != FLUSH_TLB_NO_ASID) in local_flush_tlb_page_asid()
43 ALT_SFENCE_VMA_ADDR_ASID(addr, asid); in local_flush_tlb_page_asid()
/openbmc/linux/drivers/misc/sgi-gru/
H A Dgrumain.c93 static int gru_reset_asid_limit(struct gru_state *gru, int asid) in gru_reset_asid_limit() argument
97 gru_dbg(grudev, "gid %d, asid 0x%x\n", gru->gs_gid, asid); in gru_reset_asid_limit()
100 if (asid >= limit) in gru_reset_asid_limit()
101 asid = gru_wrap_asid(gru); in gru_reset_asid_limit()
112 if (inuse_asid == asid) { in gru_reset_asid_limit()
113 asid += ASID_INC; in gru_reset_asid_limit()
114 if (asid >= limit) { in gru_reset_asid_limit()
120 if (asid >= MAX_ASID) in gru_reset_asid_limit()
121 asid = gru_wrap_asid(gru); in gru_reset_asid_limit()
126 if ((inuse_asid > asid) && (inuse_asid < limit)) in gru_reset_asid_limit()
[all …]
H A Dgrutlbpurge.c150 int grupagesize, pagesize, pageshift, gid, asid; in gru_flush_tlb_range() local
167 asid = asids->mt_asid; in gru_flush_tlb_range()
168 if (asids->mt_ctxbitmap && asid) { in gru_flush_tlb_range()
170 asid = GRUASID(asid, start); in gru_flush_tlb_range()
173 gid, asid, start, grupagesize, num, asids->mt_ctxbitmap); in gru_flush_tlb_range()
175 tgh_invalidate(tgh, start, ~0, asid, grupagesize, 0, in gru_flush_tlb_range()
184 gid, asid, asids->mt_ctxbitmap, in gru_flush_tlb_range()
H A Dgruhandles.c141 int asid, int pagesize, int global, int n, in tgh_invalidate() argument
145 tgh->asid = asid; in tgh_invalidate()
158 unsigned long vaddr, int asid, int dirty, in tfh_write_only() argument
161 tfh->fillasid = asid; in tfh_write_only()
174 unsigned long vaddr, int asid, int dirty, in tfh_write_restart() argument
177 tfh->fillasid = asid; in tfh_write_restart()
/openbmc/linux/arch/loongarch/include/asm/
H A Dmmu_context.h34 #define cpu_context(cpu, mm) ((mm)->context.asid[cpu])
54 u64 asid = asid_cache(cpu); in get_new_mmu_context() local
56 if (!((++asid) & cpu_asid_mask(&cpu_data[cpu]))) in get_new_mmu_context()
59 cpu_context(cpu, mm) = asid_cache(cpu) = asid; in get_new_mmu_context()
130 int asid; in drop_mmu_context() local
135 asid = read_csr_asid() & cpu_asid_mask(&current_cpu_data); in drop_mmu_context()
137 if (asid == cpu_asid(cpu, mm)) { in drop_mmu_context()
/openbmc/qemu/hw/arm/
H A Dsmmu-common.c41 a += key->asid + key->vmid + key->level + key->tg; in smmu_iotlb_key_hash()
55 return (k1->asid == k2->asid) && (k1->iova == k2->iova) && in smmu_iotlb_key_equal()
60 SMMUIOTLBKey smmu_get_iotlb_key(int asid, int vmid, uint64_t iova, in smmu_get_iotlb_key() argument
63 SMMUIOTLBKey key = {.asid = asid, .vmid = vmid, .iova = iova, in smmu_get_iotlb_key()
85 key = smmu_get_iotlb_key(cfg->asid, cfg->s2cfg.vmid, in smmu_iotlb_lookup_all_levels()
126 trace_smmu_iotlb_lookup_hit(cfg->asid, cfg->s2cfg.vmid, iova, in smmu_iotlb_lookup()
132 trace_smmu_iotlb_lookup_miss(cfg->asid, cfg->s2cfg.vmid, iova, in smmu_iotlb_lookup()
149 *key = smmu_get_iotlb_key(cfg->asid, cfg->s2cfg.vmid, new->entry.iova, in smmu_iotlb_insert()
151 trace_smmu_iotlb_insert(cfg->asid, cfg->s2cfg.vmid, new->entry.iova, in smmu_iotlb_insert()
168 return (SMMU_IOTLB_ASID(*iotlb_key) == info->asid) && in smmu_hash_remove_by_asid_vmid()
[all …]
H A Dtrace-events14 smmu_iotlb_inv_asid_vmid(int asid, int vmid) "IOTLB invalidate asid=%d vmid=%d"
17 smmu_iotlb_inv_iova(int asid, uint64_t addr) "IOTLB invalidate asid=%d addr=0x%"PRIx64
19 smmu_iotlb_lookup_hit(int asid, int vmid, uint64_t addr, uint32_t hit, uint32_t miss, uint32_t p) "…
20 smmu_iotlb_lookup_miss(int asid, int vmid, uint64_t addr, uint32_t hit, uint32_t miss, uint32_t p) …
21 smmu_iotlb_insert(int asid, int vmid, uint64_t addr, uint8_t tg, uint8_t level) "IOTLB ++ asid=%d v…
50 …range_inval(int vmid, int asid, uint64_t addr, uint8_t tg, uint64_t num_pages, uint8_t ttl, bool l…
53 smmuv3_cmdq_tlbi_nh_asid(int asid) "asid=%d"
58 …ers_iova(const char *name, int asid, int vmid, uint64_t iova, uint8_t tg, uint64_t num_pages, int …
/openbmc/linux/drivers/accel/habanalabs/common/
H A Dasid.c50 void hl_asid_free(struct hl_device *hdev, unsigned long asid) in hl_asid_free() argument
52 if (asid == HL_KERNEL_ASID_ID || asid >= hdev->asic_prop.max_asid) { in hl_asid_free()
53 dev_crit(hdev->dev, "Invalid ASID %lu", asid); in hl_asid_free()
57 clear_bit(asid, hdev->asid_bitmap); in hl_asid_free()
/openbmc/linux/drivers/vhost/
H A Dvdpa.c70 u64 last, u32 asid);
79 static struct vhost_vdpa_as *asid_to_as(struct vhost_vdpa *v, u32 asid) in asid_to_as() argument
81 struct hlist_head *head = &v->as[asid % VHOST_VDPA_IOTLB_BUCKETS]; in asid_to_as()
85 if (as->id == asid) in asid_to_as()
91 static struct vhost_iotlb *asid_to_iotlb(struct vhost_vdpa *v, u32 asid) in asid_to_iotlb() argument
93 struct vhost_vdpa_as *as = asid_to_as(v, asid); in asid_to_iotlb()
101 static struct vhost_vdpa_as *vhost_vdpa_alloc_as(struct vhost_vdpa *v, u32 asid) in vhost_vdpa_alloc_as() argument
103 struct hlist_head *head = &v->as[asid % VHOST_VDPA_IOTLB_BUCKETS]; in vhost_vdpa_alloc_as()
106 if (asid_to_as(v, asid)) in vhost_vdpa_alloc_as()
109 if (asid >= v->vdpa->nas) in vhost_vdpa_alloc_as()
[all …]
/openbmc/linux/drivers/iommu/arm/arm-smmu-v3/
H A Darm-smmu-v3-sva.c45 arm_smmu_share_asid(struct mm_struct *mm, u16 asid) in arm_smmu_share_asid() argument
53 cd = xa_load(&arm_smmu_asid_xa, asid); in arm_smmu_share_asid()
77 cd->asid = new_asid; in arm_smmu_share_asid()
86 arm_smmu_tlb_inv_asid(smmu, asid); in arm_smmu_share_asid()
88 xa_erase(&arm_smmu_asid_xa, asid); in arm_smmu_share_asid()
94 u16 asid; in arm_smmu_alloc_shared_cd() local
103 asid = arm64_mm_context_get(mm); in arm_smmu_alloc_shared_cd()
104 if (!asid) { in arm_smmu_alloc_shared_cd()
118 ret = arm_smmu_share_asid(mm, asid); in arm_smmu_alloc_shared_cd()
124 err = xa_insert(&arm_smmu_asid_xa, asid, cd, GFP_KERNEL); in arm_smmu_alloc_shared_cd()
[all …]
/openbmc/linux/drivers/vdpa/mlx5/core/
H A Dmr.c492 static void _mlx5_vdpa_destroy_cvq_mr(struct mlx5_vdpa_dev *mvdev, unsigned int asid) in _mlx5_vdpa_destroy_cvq_mr() argument
494 if (mvdev->group2asid[MLX5_VDPA_CVQ_GROUP] != asid) in _mlx5_vdpa_destroy_cvq_mr()
500 static void _mlx5_vdpa_destroy_dvq_mr(struct mlx5_vdpa_dev *mvdev, unsigned int asid) in _mlx5_vdpa_destroy_dvq_mr() argument
504 if (mvdev->group2asid[MLX5_VDPA_DATAVQ_GROUP] != asid) in _mlx5_vdpa_destroy_dvq_mr()
518 void mlx5_vdpa_destroy_mr_asid(struct mlx5_vdpa_dev *mvdev, unsigned int asid) in mlx5_vdpa_destroy_mr_asid() argument
524 _mlx5_vdpa_destroy_dvq_mr(mvdev, asid); in mlx5_vdpa_destroy_mr_asid()
525 _mlx5_vdpa_destroy_cvq_mr(mvdev, asid); in mlx5_vdpa_destroy_mr_asid()
538 unsigned int asid) in _mlx5_vdpa_create_cvq_mr() argument
540 if (mvdev->group2asid[MLX5_VDPA_CVQ_GROUP] != asid) in _mlx5_vdpa_create_cvq_mr()
548 unsigned int asid) in _mlx5_vdpa_create_dvq_mr() argument
[all …]
/openbmc/linux/arch/mips/lib/
H A Dr3k_dump_tlb.c27 unsigned int asid; in dump_tlb() local
31 asid = read_c0_entryhi() & asid_mask; in dump_tlb()
46 (entryhi & asid_mask) == asid)) { in dump_tlb()
65 write_c0_entryhi(asid); in dump_tlb()
/openbmc/linux/drivers/accel/habanalabs/gaudi/
H A Dgaudi.c475 static int gaudi_mmu_update_asid_hop0_addr(struct hl_device *hdev, u32 asid,
488 static void gaudi_mmu_prepare(struct hl_device *hdev, u32 asid);
5853 static int gaudi_context_switch(struct hl_device *hdev, u32 asid) in gaudi_context_switch() argument
6050 void gaudi_mmu_prepare_reg(struct hl_device *hdev, u64 reg, u32 asid) in gaudi_mmu_prepare_reg() argument
6054 WREG32_OR(reg, asid); in gaudi_mmu_prepare_reg()
6057 static void gaudi_mmu_prepare(struct hl_device *hdev, u32 asid) in gaudi_mmu_prepare() argument
6064 if (asid & ~DMA0_QM_GLBL_NON_SECURE_PROPS_0_ASID_MASK) { in gaudi_mmu_prepare()
6065 dev_crit(hdev->dev, "asid %u is too big\n", asid); in gaudi_mmu_prepare()
6069 gaudi_mmu_prepare_reg(hdev, mmDMA0_QM_GLBL_NON_SECURE_PROPS_0, asid); in gaudi_mmu_prepare()
6070 gaudi_mmu_prepare_reg(hdev, mmDMA0_QM_GLBL_NON_SECURE_PROPS_1, asid); in gaudi_mmu_prepare()
[all …]
/openbmc/linux/drivers/iommu/arm/arm-smmu/
H A Dqcom_iommu.c62 u8 asid; /* asid and ctx bank # are 1:1 */ member
92 static struct qcom_iommu_ctx * to_ctx(struct qcom_iommu_domain *d, unsigned asid) in to_ctx() argument
97 return qcom_iommu->ctxs[asid]; in to_ctx()
151 iommu_writel(ctx, ARM_SMMU_CB_S1_TLBIASID, ctx->asid); in qcom_iommu_tlb_inv_context()
171 iova |= ctx->asid; in qcom_iommu_tlb_inv_range_nosync()
217 fsr, iova, fsynr, ctx->asid); in qcom_iommu_fault()
268 ret = qcom_scm_restore_sec_cfg(qcom_iommu->sec_id, ctx->asid); in qcom_iommu_init_domain()
292 FIELD_PREP(ARM_SMMU_TTBRn_ASID, ctx->asid)); in qcom_iommu_init_domain()
527 unsigned asid = args->args[0]; in qcom_iommu_of_xlate() local
545 if (WARN_ON(asid > qcom_iommu->max_asid) || in qcom_iommu_of_xlate()
[all …]

123456