/openbmc/linux/include/asm-generic/ |
H A D | tlb.h | 359 tlb->start = min(tlb->start, address); in __tlb_adjust_range() 360 tlb->end = max(tlb->end, address + range_size); in __tlb_adjust_range() 366 tlb->start = tlb->end = ~0; in __tlb_reset_range() 369 tlb->end = 0; in __tlb_reset_range() 399 if (tlb->end) in tlb_flush() 413 if (tlb->fullmm || tlb->need_flush_all) { in tlb_flush() 422 flush_tlb_range(&vma, tlb->start, tlb->end); in tlb_flush() 454 if (!(tlb->freed_tables || tlb->cleared_ptes || tlb->cleared_pmds || in tlb_flush_mmu_tlbonly() 455 tlb->cleared_puds || tlb->cleared_p4ds)) in tlb_flush_mmu_tlbonly() 498 if (tlb->page_size && tlb->page_size != page_size) { in tlb_change_page_size() [all …]
|
/openbmc/linux/mm/ |
H A D | mmu_gather.c | 23 if (tlb->delayed_rmap && tlb->active != &tlb->local) in tlb_next_batch() 26 batch = tlb->active; in tlb_next_batch() 39 tlb->batch_count++; in tlb_next_batch() 45 tlb->active = batch; in tlb_next_batch() 79 if (tlb->active != &tlb->local) in tlb_flush_rmaps() 105 tlb->active = &tlb->local; in tlb_batch_pages_flush() 279 tlb->batch = NULL; in tlb_table_init() 306 tlb->mm = mm; in __tlb_gather_mmu() 313 tlb->local.max = ARRAY_SIZE(tlb->__pages); in __tlb_gather_mmu() 314 tlb->active = &tlb->local; in __tlb_gather_mmu() [all …]
|
H A D | madvise.c | 41 struct mmu_gather *tlb; member 347 struct mmu_gather *tlb = private->tlb; in madvise_cold_or_pageout_pte_range() local 501 tlb->fullmm); in madvise_cold_or_pageout_pte_range() 550 .tlb = tlb, in madvise_cold_page_range() 555 tlb_end_vma(tlb, vma); in madvise_cold_page_range() 568 struct mmu_gather tlb; in madvise_cold() local 577 tlb_finish_mmu(&tlb); in madvise_cold() 588 .tlb = tlb, in madvise_pageout_page_range() 620 tlb_finish_mmu(&tlb); in madvise_pageout() 739 tlb->fullmm); in madvise_free_pte_range() [all …]
|
/openbmc/linux/arch/arm64/include/asm/ |
H A D | tlb.h | 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() 42 tlb->cleared_p4ds)) in tlb_get_level() 45 if (tlb->cleared_puds && !(tlb->cleared_ptes || in tlb_get_level() 47 tlb->cleared_p4ds)) in tlb_get_level() 65 if (tlb->fullmm) { in tlb_flush() 67 flush_tlb_mm(tlb->mm); in tlb_flush() [all …]
|
/openbmc/linux/arch/s390/include/asm/ |
H A D | tlb.h | 70 tlb->freed_tables = 1; in pte_free_tlb() 71 tlb->cleared_pmds = 1; in pte_free_tlb() 90 if (mm_pmd_folded(tlb->mm)) in pmd_free_tlb() 95 tlb->freed_tables = 1; in pmd_free_tlb() 96 tlb->cleared_puds = 1; in pmd_free_tlb() 110 if (mm_p4d_folded(tlb->mm)) in p4d_free_tlb() 114 tlb->freed_tables = 1; in p4d_free_tlb() 115 tlb_remove_table(tlb, p4d); in p4d_free_tlb() 128 if (mm_pud_folded(tlb->mm)) in pud_free_tlb() 131 tlb->freed_tables = 1; in pud_free_tlb() [all …]
|
/openbmc/qemu/target/ppc/ |
H A D | mmu_helper.c | 52 tlb = &env->tlb.tlb6[nr]; in ppc6xx_tlb_invalidate_all() 70 tlb = &env->tlb.tlb6[nr]; in ppc6xx_tlb_invalidate_virt2() 97 tlb = &env->tlb.tlb6[nr]; in ppc6xx_tlb_store() 117 tlb = &env->tlb.tlbe[i]; in ppc4xx_tlb_invalidate_all() 691 tlb = &env->tlb.tlbe[entry]; in helper_4xx_tlbre_hi() 711 tlb = &env->tlb.tlbe[entry]; in helper_4xx_tlbre_lo() 750 tlb = &env->tlb.tlbe[entry]; in helper_4xx_tlbwe_hi() 785 (int)entry, tlb->RPN, tlb->EPN, tlb->size, in helper_4xx_tlbwe_hi() 801 tlb = &env->tlb.tlbe[entry]; in helper_4xx_tlbwe_lo() 821 (int)entry, tlb->RPN, tlb->EPN, tlb->size, in helper_4xx_tlbwe_lo() [all …]
|
H A D | mmu-booke.c | 42 mask, (uint32_t)tlb->PID, tlb->prot); in ppcemb_tlb_check() 44 if (tlb->PID != 0 && tlb->PID != pid) { in ppcemb_tlb_check() 58 ppcemb_tlb_t *tlb; in ppcemb_tlb_search() local 63 tlb = &env->tlb.tlbe[i]; in ppcemb_tlb_search() 75 ppcemb_tlb_t *tlb; in mmu40x_get_physical_address() local 81 tlb = &env->tlb.tlbe[i]; in mmu40x_get_physical_address() 192 ppcemb_tlb_t *tlb; in mmubooke_get_physical_address() local 196 tlb = &env->tlb.tlbe[i]; in mmubooke_get_physical_address() 240 __func__, address, pid, tlb->mas1, tlb->mas2, mask, in ppcmas_tlb_check() 241 tlb->mas7_3, tlb->mas8); in ppcmas_tlb_check() [all …]
|
/openbmc/qemu/target/mips/tcg/sysemu/ |
H A D | tlb_helper.c | 55 tlb = &env->tlb->mmu.r4k.tlb[idx]; in r4k_fill_tlb() 94 tlb = &env->tlb->mmu.r4k.tlb[idx]; in r4k_helper_tlbinv() 127 tlb = &env->tlb->mmu.r4k.tlb[idx]; in r4k_helper_tlbwi() 183 tlb = &env->tlb->mmu.r4k.tlb[i]; in r4k_helper_tlbp() 202 tlb = &env->tlb->mmu.r4k.tlb[i]; in r4k_helper_tlbp() 243 tlb = &env->tlb->mmu.r4k.tlb[idx]; in r4k_helper_tlbr() 259 env->CP0_EntryHi = mi ? tlb->VPN : tlb->VPN | tlb->ASID; in r4k_helper_tlbr() 319 tlb = &env->tlb->mmu.r4k.tlb[idx]; in global_invalidate_tlb() 403 r4k_tlb_t *tlb = &env->tlb->mmu.r4k.tlb[i]; in r4k_map_address() local 1372 tlb = &env->tlb->mmu.r4k.tlb[idx]; in r4k_invalidate_tlb() [all …]
|
/openbmc/qemu/target/loongarch/tcg/ |
H A D | tlb_helper.c | 120 LoongArchTLB *tlb = &env->tlb[index]; in invalidate_tlb_entry() local 154 tlb = &env->tlb[index]; in invalidate_tlb() 165 LoongArchTLB *tlb = &env->tlb[index]; in fill_tlb_entry() local 200 tlb->tlb_misc = FIELD_DP64(tlb->tlb_misc, TLB_MISC, E, 1); in fill_tlb_entry() 243 tlb = &env->tlb[index]; in helper_tlbrd() 335 tlb = &env->tlb[i * 256 + (index % 256)]; in helper_tlbclr() 345 tlb = &env->tlb[i]; in helper_tlbclr() 393 LoongArchTLB *tlb = &env->tlb[i]; in helper_invtlb_all_g() local 408 LoongArchTLB *tlb = &env->tlb[i]; in helper_invtlb_all_asid() local 425 LoongArchTLB *tlb = &env->tlb[i]; in helper_invtlb_page_asid() local [all …]
|
/openbmc/qemu/target/sh4/ |
H A D | monitor.c | 30 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 D | tlb.h | 11 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 D | tlb.h | 6 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 D | pgalloc.h | 56 extern void ___pte_free_tlb(struct mmu_gather *tlb, struct page *pte); 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); 170 static inline void __p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d, in __p4d_free_tlb() argument [all …]
|
/openbmc/linux/arch/sh/mm/ |
H A D | Makefile | 30 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/qemu/target/loongarch/ |
H A D | cpu_helper.c | 19 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() 113 tlb_g = FIELD_EX64(tlb->tlb_entry0, TLBENTRY, G); in loongarch_tlb_search() 125 tlb = &env->tlb[i]; in loongarch_tlb_search() 126 tlb_e = FIELD_EX64(tlb->tlb_misc, TLB_MISC, E); in loongarch_tlb_search() 129 tlb_ps = FIELD_EX64(tlb->tlb_misc, TLB_MISC, PS); in loongarch_tlb_search() [all …]
|
/openbmc/linux/arch/arm/include/asm/ |
H A D | tlb.h | 23 #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/include/asm/nohash/ |
H A D | pgalloc.h | 8 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/qemu/hw/ppc/ |
H A D | ppc440_bamboo.c | 118 ppcemb_tlb_t *tlb = &env->tlb.tlbe[0]; in mmubooke_create_initial_mapping() local 120 tlb->attr = 0; in mmubooke_create_initial_mapping() 122 tlb->size = 1U << 31; /* up to 0x80000000 */ in mmubooke_create_initial_mapping() 123 tlb->EPN = va & TARGET_PAGE_MASK; in mmubooke_create_initial_mapping() 124 tlb->RPN = pa & TARGET_PAGE_MASK; in mmubooke_create_initial_mapping() 125 tlb->PID = 0; in mmubooke_create_initial_mapping() 127 tlb = &env->tlb.tlbe[1]; in mmubooke_create_initial_mapping() 128 tlb->attr = 0; in mmubooke_create_initial_mapping() 131 tlb->EPN = 0x80000000 & TARGET_PAGE_MASK; in mmubooke_create_initial_mapping() 132 tlb->RPN = 0x80000000 & TARGET_PAGE_MASK; in mmubooke_create_initial_mapping() [all …]
|
H A D | virtex_ml507.c | 75 ppcemb_tlb_t *tlb = &env->tlb.tlbe[0]; in mmubooke_create_initial_mapping() local 77 tlb->attr = 0; in mmubooke_create_initial_mapping() 79 tlb->size = 1U << 31; /* up to 0x80000000 */ in mmubooke_create_initial_mapping() 80 tlb->EPN = va & TARGET_PAGE_MASK; in mmubooke_create_initial_mapping() 81 tlb->RPN = pa & TARGET_PAGE_MASK; in mmubooke_create_initial_mapping() 82 tlb->PID = 0; in mmubooke_create_initial_mapping() 84 tlb = &env->tlb.tlbe[1]; in mmubooke_create_initial_mapping() 85 tlb->attr = 0; in mmubooke_create_initial_mapping() 88 tlb->EPN = 0x80000000 & TARGET_PAGE_MASK; in mmubooke_create_initial_mapping() 89 tlb->RPN = 0x80000000 & TARGET_PAGE_MASK; in mmubooke_create_initial_mapping() [all …]
|
/openbmc/linux/arch/sparc/include/asm/ |
H A D | pgalloc_64.h | 82 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/powerpc/mm/ |
H A D | hugetlbpage.c | 281 if (atomic_read(&tlb->mm->mm_users) < 2 || in hugepd_free() 282 mm_is_thread_local(tlb->mm)) { in hugepd_free() 341 hugepd_free(tlb, hugepte); in free_hugepd_range() 343 pgtable_free_tlb(tlb, hugepte, in free_hugepd_range() 357 pte_free_tlb(tlb, token, addr); in hugetlb_free_pte_range() 358 mm_dec_nr_ptes(tlb->mm); in hugetlb_free_pte_range() 408 pmd_free_tlb(tlb, pmd, start & PUD_MASK); in hugetlb_free_pmd_range() 409 mm_dec_nr_pmds(tlb->mm); in hugetlb_free_pmd_range() 451 pud_free_tlb(tlb, pud, start & PGDIR_MASK); in hugetlb_free_pud_range() 452 mm_dec_nr_puds(tlb->mm); in hugetlb_free_pud_range() [all …]
|
/openbmc/linux/arch/loongarch/include/asm/ |
H A D | tlb.h | 135 #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/include/linux/ |
H A D | io-pgtable.h | 100 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 D | pgalloc.h | 39 #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/riscv/boot/dts/sifive/ |
H A D | fu540-c000.dtsi | 45 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>; 75 i-tlb-sets = <1>; 80 tlb-split; 93 d-tlb-sets = <1>; 104 tlb-split; [all …]
|