Home
last modified time | relevance | path

Searched refs:tlb (Results 1 – 25 of 286) sorted by relevance

12345678910>>...12

/openbmc/linux/include/asm-generic/
H A Dtlb.h204 extern void tlb_remove_table(struct mmu_gather *tlb, void *table);
212 #define tlb_remove_table(tlb, page) tlb_remove_page((tlb), (page)) argument
263 extern bool __tlb_remove_page_size(struct mmu_gather *tlb,
272 #define tlb_delay_rmap(tlb) (((tlb)->delayed_rmap = 1), true) argument
273 extern void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma);
286 #define tlb_delay_rmap(tlb) (false) argument
287 static inline void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma) { } in tlb_flush_rmaps() argument
353 void tlb_flush_mmu(struct mmu_gather *tlb);
355 static inline void __tlb_adjust_range(struct mmu_gather *tlb, in __tlb_adjust_range() argument
359 tlb->start = min(tlb->start, address); in __tlb_adjust_range()
[all …]
/openbmc/linux/mm/
H A Dmmu_gather.c18 static bool tlb_next_batch(struct mmu_gather *tlb) in tlb_next_batch() argument
23 if (tlb->delayed_rmap && tlb->active != &tlb->local) in tlb_next_batch()
26 batch = tlb->active; in tlb_next_batch()
28 tlb->active = batch->next; in tlb_next_batch()
32 if (tlb->batch_count == MAX_GATHER_BATCH_COUNT) in tlb_next_batch()
39 tlb->batch_count++; in tlb_next_batch()
44 tlb->active->next = batch; in tlb_next_batch()
45 tlb->active = batch; in tlb_next_batch()
73 void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma) in tlb_flush_rmaps() argument
75 if (!tlb->delayed_rmap) in tlb_flush_rmaps()
[all …]
H A Dmadvise.c41 struct mmu_gather *tlb; member
347 struct mmu_gather *tlb = private->tlb; in madvise_cold_or_pageout_pte_range() local
349 struct mm_struct *mm = tlb->mm; in madvise_cold_or_pageout_pte_range()
368 tlb_change_page_size(tlb, HPAGE_PMD_SIZE); in madvise_cold_or_pageout_pte_range()
411 tlb_remove_pmd_tlb_entry(tlb, pmd, addr); in madvise_cold_or_pageout_pte_range()
436 tlb_change_page_size(tlb, PAGE_SIZE); in madvise_cold_or_pageout_pte_range()
501 tlb->fullmm); in madvise_cold_or_pageout_pte_range()
504 tlb_remove_tlb_entry(tlb, pte, addr); in madvise_cold_or_pageout_pte_range()
544 static void madvise_cold_page_range(struct mmu_gather *tlb, in madvise_cold_page_range() argument
550 .tlb = tlb, in madvise_cold_page_range()
[all …]
/openbmc/qemu/target/ppc/
H A Dmmu_helper.c48 ppc6xx_tlb_t *tlb; in ppc6xx_tlb_invalidate_all() local
52 tlb = &env->tlb.tlb6[nr]; in ppc6xx_tlb_invalidate_all()
53 pte_invalidate(&tlb->pte0); in ppc6xx_tlb_invalidate_all()
64 ppc6xx_tlb_t *tlb; in ppc6xx_tlb_invalidate_virt2() local
70 tlb = &env->tlb.tlb6[nr]; in ppc6xx_tlb_invalidate_virt2()
71 if (pte_is_valid(tlb->pte0) && (match_epn == 0 || eaddr == tlb->EPN)) { in ppc6xx_tlb_invalidate_virt2()
74 pte_invalidate(&tlb->pte0); in ppc6xx_tlb_invalidate_virt2()
75 tlb_flush_page(cs, tlb->EPN); in ppc6xx_tlb_invalidate_virt2()
93 ppc6xx_tlb_t *tlb; in ppc6xx_tlb_store() local
97 tlb = &env->tlb.tlb6[nr]; in ppc6xx_tlb_store()
[all …]
H A Dmmu-booke.c28 static bool ppcemb_tlb_check(CPUPPCState *env, ppcemb_tlb_t *tlb, in ppcemb_tlb_check() argument
35 if (!(tlb->prot & PAGE_VALID)) { in ppcemb_tlb_check()
38 mask = ~(tlb->size - 1); in ppcemb_tlb_check()
41 __func__, i, address, pid, tlb->EPN, in ppcemb_tlb_check()
42 mask, (uint32_t)tlb->PID, tlb->prot); in ppcemb_tlb_check()
44 if (tlb->PID != 0 && tlb->PID != pid) { in ppcemb_tlb_check()
48 if ((address & mask) != tlb->EPN) { in ppcemb_tlb_check()
51 *raddrp = (tlb->RPN & mask) | (address & ~mask); in ppcemb_tlb_check()
58 ppcemb_tlb_t *tlb; in ppcemb_tlb_search() local
63 tlb = &env->tlb.tlbe[i]; in ppcemb_tlb_search()
[all …]
/openbmc/linux/arch/arm64/include/asm/
H A Dtlb.h20 static void tlb_flush(struct mmu_gather *tlb);
29 static inline int tlb_get_level(struct mmu_gather *tlb) in tlb_get_level() argument
32 if (tlb->freed_tables) in tlb_get_level()
35 if (tlb->cleared_ptes && !(tlb->cleared_pmds || in tlb_get_level()
36 tlb->cleared_puds || in tlb_get_level()
37 tlb->cleared_p4ds)) in tlb_get_level()
40 if (tlb->cleared_pmds && !(tlb->cleared_ptes || in tlb_get_level()
41 tlb->cleared_puds || in tlb_get_level()
42 tlb->cleared_p4ds)) in tlb_get_level()
45 if (tlb->cleared_puds && !(tlb->cleared_ptes || in tlb_get_level()
[all …]
/openbmc/linux/arch/s390/include/asm/
H A Dtlb.h26 static inline void tlb_flush(struct mmu_gather *tlb);
27 static inline bool __tlb_remove_page_size(struct mmu_gather *tlb,
48 static inline bool __tlb_remove_page_size(struct mmu_gather *tlb, in __tlb_remove_page_size() argument
56 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument
58 __tlb_flush_mm_lazy(tlb->mm); in tlb_flush()
65 static inline void pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, in pte_free_tlb() argument
68 __tlb_adjust_range(tlb, address, PAGE_SIZE); in pte_free_tlb()
69 tlb->mm->context.flush_mm = 1; in pte_free_tlb()
70 tlb->freed_tables = 1; in pte_free_tlb()
71 tlb->cleared_pmds = 1; in pte_free_tlb()
[all …]
/openbmc/qemu/target/mips/tcg/sysemu/
H A Dtlb_helper.c34 while (env->tlb->tlb_in_use > first) { in r4k_mips_tlb_flush_extra()
35 r4k_invalidate_tlb(env, --env->tlb->tlb_in_use, 0); in r4k_mips_tlb_flush_extra()
51 r4k_tlb_t *tlb; in r4k_fill_tlb() local
55 tlb = &env->tlb->mmu.r4k.tlb[idx]; in r4k_fill_tlb()
57 tlb->EHINV = 1; in r4k_fill_tlb()
60 tlb->EHINV = 0; in r4k_fill_tlb()
61 tlb->VPN = env->CP0_EntryHi & (TARGET_PAGE_MASK << 1); in r4k_fill_tlb()
63 tlb->VPN &= env->SEGMask; in r4k_fill_tlb()
65 tlb->ASID = env->CP0_EntryHi & env->CP0_EntryHi_ASID_mask; in r4k_fill_tlb()
66 tlb->MMID = env->CP0_MemoryMapID; in r4k_fill_tlb()
[all …]
/openbmc/qemu/target/loongarch/tcg/
H A Dtlb_helper.c120 LoongArchTLB *tlb = &env->tlb[index]; in invalidate_tlb_entry() local
123 uint8_t tlb_v0 = FIELD_EX64(tlb->tlb_entry0, TLBENTRY, V); in invalidate_tlb_entry()
124 uint8_t tlb_v1 = FIELD_EX64(tlb->tlb_entry1, TLBENTRY, V); in invalidate_tlb_entry()
125 uint64_t tlb_vppn = FIELD_EX64(tlb->tlb_misc, TLB_MISC, VPPN); in invalidate_tlb_entry()
128 tlb_ps = FIELD_EX64(tlb->tlb_misc, TLB_MISC, PS); in invalidate_tlb_entry()
150 LoongArchTLB *tlb; in invalidate_tlb() local
154 tlb = &env->tlb[index]; in invalidate_tlb()
155 tlb_asid = FIELD_EX64(tlb->tlb_misc, TLB_MISC, ASID); in invalidate_tlb()
156 tlb_g = FIELD_EX64(tlb->tlb_entry0, TLBENTRY, G); in invalidate_tlb()
165 LoongArchTLB *tlb = &env->tlb[index]; in fill_tlb_entry() local
[all …]
/openbmc/qemu/target/sh4/
H A Dmonitor.c30 static void print_tlb(Monitor *mon, int idx, tlb_t *tlb) in print_tlb() argument
37 tlb->asid, tlb->vpn, tlb->ppn, tlb->sz, tlb->size, in print_tlb()
38 tlb->v, tlb->sh, tlb->c, tlb->pr, in print_tlb()
39 tlb->d, tlb->wt); in print_tlb()
/openbmc/linux/arch/riscv/include/asm/
H A Dtlb.h11 static void tlb_flush(struct mmu_gather *tlb);
16 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument
19 if (tlb->fullmm || tlb->need_flush_all || tlb->freed_tables) in tlb_flush()
20 flush_tlb_mm(tlb->mm); in tlb_flush()
22 flush_tlb_mm_range(tlb->mm, tlb->start, tlb->end, in tlb_flush()
23 tlb_get_unmap_size(tlb)); in tlb_flush()
/openbmc/linux/arch/x86/include/asm/
H A Dtlb.h6 static inline void tlb_flush(struct mmu_gather *tlb);
10 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument
13 unsigned int stride_shift = tlb_get_unmap_shift(tlb); in tlb_flush()
15 if (!tlb->fullmm && !tlb->need_flush_all) { in tlb_flush()
16 start = tlb->start; in tlb_flush()
17 end = tlb->end; in tlb_flush()
20 flush_tlb_mm_range(tlb->mm, start, end, stride_shift, tlb->freed_tables); in tlb_flush()
H A Dpgalloc.h56 extern void ___pte_free_tlb(struct mmu_gather *tlb, struct page *pte);
58 static inline void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte, in __pte_free_tlb() argument
61 ___pte_free_tlb(tlb, pte); in __pte_free_tlb()
88 extern void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd);
90 static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, in __pmd_free_tlb() argument
93 ___pmd_free_tlb(tlb, pmd); in __pmd_free_tlb()
125 extern void ___pud_free_tlb(struct mmu_gather *tlb, pud_t *pud);
127 static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, in __pud_free_tlb() argument
130 ___pud_free_tlb(tlb, pud); in __pud_free_tlb()
168 extern void ___p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d);
[all …]
/openbmc/qemu/target/loongarch/
H A Dcpu_helper.c19 LoongArchTLB *tlb = &env->tlb[index]; in loongarch_map_tlb_entry() local
25 tlb_ps = FIELD_EX64(tlb->tlb_misc, TLB_MISC, PS); in loongarch_map_tlb_entry()
31 tlb_entry = n ? tlb->tlb_entry1 : tlb->tlb_entry0; in loongarch_map_tlb_entry()
94 LoongArchTLB *tlb; in loongarch_tlb_search() local
108 tlb = &env->tlb[i * 256 + stlb_idx]; in loongarch_tlb_search()
109 tlb_e = FIELD_EX64(tlb->tlb_misc, TLB_MISC, E); in loongarch_tlb_search()
111 tlb_vppn = FIELD_EX64(tlb->tlb_misc, TLB_MISC, VPPN); in loongarch_tlb_search()
112 tlb_asid = FIELD_EX64(tlb->tlb_misc, TLB_MISC, ASID); in loongarch_tlb_search()
113 tlb_g = FIELD_EX64(tlb->tlb_entry0, TLBENTRY, G); in loongarch_tlb_search()
125 tlb = &env->tlb[i]; in loongarch_tlb_search()
[all …]
/openbmc/linux/arch/sh/mm/
H A DMakefile30 debugfs-$(CONFIG_CPU_SH4) += tlb-debugfs.o
31 tlb-$(CONFIG_CPU_SH3) := tlb-sh3.o
32 tlb-$(CONFIG_CPU_SH4) := tlb-sh4.o tlb-urb.o
33 tlb-$(CONFIG_CPU_HAS_PTEAEX) := tlb-pteaex.o tlb-urb.o
34 obj-y += $(tlb-y)
/openbmc/linux/arch/powerpc/include/asm/nohash/
H A Dpgalloc.h8 extern void tlb_remove_table(struct mmu_gather *tlb, void *table);
10 extern void tlb_flush_pgtable(struct mmu_gather *tlb, unsigned long address);
13 static inline void tlb_flush_pgtable(struct mmu_gather *tlb, in tlb_flush_pgtable() argument
49 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift) in pgtable_free_tlb() argument
55 tlb_remove_table(tlb, (void *)pgf); in pgtable_free_tlb()
66 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table, in __pte_free_tlb() argument
69 tlb_flush_pgtable(tlb, address); in __pte_free_tlb()
70 pgtable_free_tlb(tlb, table, 0); in __pte_free_tlb()
/openbmc/linux/arch/arm/include/asm/
H A Dtlb.h23 #define tlb_flush(tlb) ((void) tlb) argument
40 __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, unsigned long addr) in __pte_free_tlb() argument
52 __tlb_adjust_range(tlb, addr - PAGE_SIZE, 2 * PAGE_SIZE); in __pte_free_tlb()
55 tlb_remove_ptdesc(tlb, ptdesc); in __pte_free_tlb()
59 __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, unsigned long addr) in __pmd_free_tlb() argument
65 tlb_remove_ptdesc(tlb, ptdesc); in __pmd_free_tlb()
/openbmc/linux/arch/powerpc/mm/
H A Dhugetlbpage.c275 static void hugepd_free(struct mmu_gather *tlb, void *hugepte) in hugepd_free() argument
281 if (atomic_read(&tlb->mm->mm_users) < 2 || in hugepd_free()
282 mm_is_thread_local(tlb->mm)) { in hugepd_free()
301 static inline void hugepd_free(struct mmu_gather *tlb, void *hugepte) {} in hugepd_free() argument
319 static void free_hugepd_range(struct mmu_gather *tlb, hugepd_t *hpdp, int pdshift, in free_hugepd_range() argument
341 hugepd_free(tlb, hugepte); in free_hugepd_range()
343 pgtable_free_tlb(tlb, hugepte, in free_hugepd_range()
347 static void hugetlb_free_pte_range(struct mmu_gather *tlb, pmd_t *pmd, in hugetlb_free_pte_range() argument
357 pte_free_tlb(tlb, token, addr); in hugetlb_free_pte_range()
358 mm_dec_nr_ptes(tlb->mm); in hugetlb_free_pte_range()
[all …]
/openbmc/linux/arch/sparc/include/asm/
H A Dpgalloc_64.h82 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, bool is_page) in pgtable_free_tlb() argument
87 tlb_remove_table(tlb, (void *)pgf); in pgtable_free_tlb()
100 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, bool is_page) in pgtable_free_tlb() argument
106 static inline void __pte_free_tlb(struct mmu_gather *tlb, pte_t *pte, in __pte_free_tlb() argument
109 pgtable_free_tlb(tlb, pte, true); in __pte_free_tlb()
112 #define __pmd_free_tlb(tlb, pmd, addr) \ argument
113 pgtable_free_tlb(tlb, pmd, false)
115 #define __pud_free_tlb(tlb, pud, addr) \ argument
116 pgtable_free_tlb(tlb, pud, false)
/openbmc/linux/arch/loongarch/include/asm/
H A Dtlb.h135 #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) argument
137 static void tlb_flush(struct mmu_gather *tlb);
142 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument
146 vma.vm_mm = tlb->mm; in tlb_flush()
148 if (tlb->fullmm) { in tlb_flush()
149 flush_tlb_mm(tlb->mm); in tlb_flush()
153 flush_tlb_range(&vma, tlb->start, tlb->end); in tlb_flush()
/openbmc/linux/arch/riscv/boot/dts/sifive/
H A Dfu540-c000.dtsi45 d-tlb-sets = <1>;
46 d-tlb-size = <32>;
51 i-tlb-sets = <1>;
52 i-tlb-size = <32>;
56 tlb-split;
69 d-tlb-sets = <1>;
70 d-tlb-size = <32>;
75 i-tlb-sets = <1>;
76 i-tlb-size = <32>;
80 tlb-split;
[all …]
H A Dfu740-c000.dtsi46 d-tlb-sets = <1>;
47 d-tlb-size = <40>;
52 i-tlb-sets = <1>;
53 i-tlb-size = <40>;
58 tlb-split;
70 d-tlb-sets = <1>;
71 d-tlb-size = <40>;
76 i-tlb-sets = <1>;
77 i-tlb-size = <40>;
82 tlb-split;
[all …]
/openbmc/linux/include/linux/
H A Dio-pgtable.h100 const struct iommu_flush_ops *tlb; member
219 if (iop->cfg.tlb && iop->cfg.tlb->tlb_flush_all) in io_pgtable_tlb_flush_all()
220 iop->cfg.tlb->tlb_flush_all(iop->cookie); in io_pgtable_tlb_flush_all()
227 if (iop->cfg.tlb && iop->cfg.tlb->tlb_flush_walk) in io_pgtable_tlb_flush_walk()
228 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk()
236 if (iop->cfg.tlb && iop->cfg.tlb->tlb_add_page) in io_pgtable_tlb_add_page()
237 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
/openbmc/linux/arch/ia64/include/asm/
H A Dpgalloc.h39 #define __pud_free_tlb(tlb, pud, address) pud_free((tlb)->mm, pud) argument
48 #define __pmd_free_tlb(tlb, pmd, address) pmd_free((tlb)->mm, pmd) argument
62 #define __pte_free_tlb(tlb, pte, address) pte_free((tlb)->mm, pte) argument
/openbmc/linux/arch/arc/include/asm/
H A Dpgalloc.h80 #define __pud_free_tlb(tlb, pmd, addr) pud_free((tlb)->mm, pmd) argument
91 #define __pmd_free_tlb(tlb, pmd, addr) pmd_free((tlb)->mm, pmd) argument
95 #define __pte_free_tlb(tlb, pte, addr) pte_free((tlb)->mm, pte) argument

12345678910>>...12