| /linux/include/asm-generic/ |
| H A D | tlb.h | 225 extern void tlb_remove_table(struct mmu_gather *tlb, void *table); 229 static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page); 234 static inline void tlb_remove_table(struct mmu_gather *tlb, void *table) in tlb_remove_table() argument 239 tlb_remove_page(tlb, ptdesc_page(ptdesc)); in tlb_remove_table() 290 extern bool __tlb_remove_page_size(struct mmu_gather *tlb, struct page *page, int page_size); 291 bool __tlb_remove_folio_pages(struct mmu_gather *tlb, struct page *page, 299 #define tlb_delay_rmap(tlb) (((tlb)->delayed_rmap = 1), true) argument 300 extern void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma); 313 #define tlb_delay_rmap(tlb) (false) argument 314 static inline void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma) { } in tlb_flush_rmaps() argument [all …]
|
| /linux/mm/ |
| H A D | mmu_gather.c | 20 static bool tlb_next_batch(struct mmu_gather *tlb) in tlb_next_batch() argument 25 if (tlb->delayed_rmap && tlb->active != &tlb->local) in tlb_next_batch() 28 batch = tlb->active; in tlb_next_batch() 30 tlb->active = batch->next; in tlb_next_batch() 34 if (tlb->batch_count == MAX_GATHER_BATCH_COUNT) in tlb_next_batch() 41 tlb->batch_count++; in tlb_next_batch() 46 tlb->active->next = batch; in tlb_next_batch() 47 tlb->active = batch; in tlb_next_batch() 84 void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma) in tlb_flush_rmaps() argument 86 if (!tlb->delayed_rmap) in tlb_flush_rmaps() [all …]
|
| H A D | mprotect.c | 37 #include <asm/tlb.h> 122 int idx, bool set_write, struct mmu_gather *tlb) in prot_commit_flush_ptes() argument 138 tlb_flush_pte_range(tlb, addr, nr_ptes * PAGE_SIZE); in prot_commit_flush_ptes() 174 pte_t oldpte, pte_t ptent, int nr_ptes, struct mmu_gather *tlb) in commit_anon_folio_batch() argument 185 sub_batch_idx, expected_anon_exclusive, tlb); in commit_anon_folio_batch() 193 pte_t oldpte, pte_t ptent, int nr_ptes, struct mmu_gather *tlb) in set_write_prot_commit_flush_ptes() argument 200 /* idx = */ 0, set_write, tlb); in set_write_prot_commit_flush_ptes() 208 /* idx = */ 0, set_write, tlb); in set_write_prot_commit_flush_ptes() 211 commit_anon_folio_batch(vma, folio, page, addr, ptep, oldpte, ptent, nr_ptes, tlb); in set_write_prot_commit_flush_ptes() 214 static long change_pte_range(struct mmu_gather *tlb, in change_pte_range() argument 451 change_pmd_range(struct mmu_gather * tlb,struct vm_area_struct * vma,pud_t * pud,unsigned long addr,unsigned long end,pgprot_t newprot,unsigned long cp_flags) change_pmd_range() argument 521 change_pud_range(struct mmu_gather * tlb,struct vm_area_struct * vma,p4d_t * p4d,unsigned long addr,unsigned long end,pgprot_t newprot,unsigned long cp_flags) change_pud_range() argument 580 change_p4d_range(struct mmu_gather * tlb,struct vm_area_struct * vma,pgd_t * pgd,unsigned long addr,unsigned long end,pgprot_t newprot,unsigned long cp_flags) change_p4d_range() argument 603 change_protection_range(struct mmu_gather * tlb,struct vm_area_struct * vma,unsigned long addr,unsigned long end,pgprot_t newprot,unsigned long cp_flags) change_protection_range() argument 633 change_protection(struct mmu_gather * tlb,struct vm_area_struct * vma,unsigned long start,unsigned long end,unsigned long cp_flags) change_protection() argument 695 mprotect_fixup(struct vma_iterator * vmi,struct mmu_gather * tlb,struct vm_area_struct * vma,struct vm_area_struct ** pprev,unsigned long start,unsigned long end,vm_flags_t newflags) mprotect_fixup() argument 810 struct mmu_gather tlb; do_mprotect_pkey() local [all...] |
| H A D | madvise.c | 50 struct mmu_gather *tlb; member 69 struct mmu_gather *tlb; member 357 struct mmu_gather *tlb = private->tlb; in madvise_cold_or_pageout_pte_range() local 359 struct mm_struct *mm = tlb->mm; in madvise_cold_or_pageout_pte_range() 380 tlb_change_page_size(tlb, HPAGE_PMD_SIZE); in madvise_cold_or_pageout_pte_range() 423 tlb_remove_pmd_tlb_entry(tlb, pmd, addr); in madvise_cold_or_pageout_pte_range() 448 tlb_change_page_size(tlb, PAGE_SIZE); in madvise_cold_or_pageout_pte_range() 532 tlb_remove_tlb_entries(tlb, pte, nr, addr); in madvise_cold_or_pageout_pte_range() 572 static void madvise_cold_page_range(struct mmu_gather *tlb, in madvise_cold_page_range() argument 580 .tlb = tlb, in madvise_cold_page_range() [all …]
|
| H A D | vma_exec.c | 41 struct mmu_gather tlb; in relocate_vma_down() local 69 tlb_gather_mmu(&tlb, mm); in relocate_vma_down() 75 free_pgd_range(&tlb, new_end, old_end, new_end, in relocate_vma_down() 84 free_pgd_range(&tlb, old_start, old_end, new_end, in relocate_vma_down() 87 tlb_finish_mmu(&tlb); in relocate_vma_down()
|
| H A D | pt_reclaim.c | |
| /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)
|
| /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 53 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift) in pgtable_free_tlb() argument 59 tlb_remove_table(tlb, (void *)pgf); in pgtable_free_tlb() 70 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table, in __pte_free_tlb() argument 73 tlb_flush_pgtable(tlb, address); in __pte_free_tlb() 74 pgtable_free_tlb(tlb, table, 0); in __pte_free_tlb()
|
| /linux/arch/x86/include/asm/ |
| H A D | pgalloc.h | 54 extern void ___pte_free_tlb(struct mmu_gather *tlb, struct page *pte); 56 static inline void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte, in __pte_free_tlb() argument 59 ___pte_free_tlb(tlb, pte); in __pte_free_tlb() 86 extern void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd); 88 static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, in __pmd_free_tlb() argument 91 ___pmd_free_tlb(tlb, pmd); in __pmd_free_tlb() 123 extern void ___pud_free_tlb(struct mmu_gather *tlb, pud_t *pud); 125 static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, in __pud_free_tlb() argument 128 ___pud_free_tlb(tlb, pud); in __pud_free_tlb() 148 extern void ___p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d); [all …]
|
| /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)
|
| /linux/arch/um/include/asm/ |
| H A D | pgalloc.h | 28 #define __pte_free_tlb(tlb, pte, address) \ argument 29 tlb_remove_ptdesc((tlb), page_ptdesc(pte)) 33 #define __pmd_free_tlb(tlb, pmd, address) \ argument 34 tlb_remove_ptdesc((tlb), virt_to_ptdesc(pmd)) 38 #define __pud_free_tlb(tlb, pud, address) \ argument 39 tlb_remove_ptdesc((tlb), virt_to_ptdesc(pud))
|
| /linux/arch/powerpc/mm/book3s32/ |
| H A D | tlb.c | 109 void hash__flush_gather(struct mmu_gather *tlb) in hash__flush_gather() argument 111 if (tlb->fullmm || tlb->need_flush_all) in hash__flush_gather() 112 hash__flush_tlb_mm(tlb->mm); in hash__flush_gather() 114 hash__flush_range(tlb->mm, tlb->start, tlb->end); in hash__flush_gather()
|
| /linux/include/linux/ |
| H A D | io-pgtable.h | 111 const struct iommu_flush_ops *tlb; member 274 if (iop->cfg.tlb && iop->cfg.tlb->tlb_flush_all) in io_pgtable_tlb_flush_all() 275 iop->cfg.tlb->tlb_flush_all(iop->cookie); in io_pgtable_tlb_flush_all() 282 if (iop->cfg.tlb && iop->cfg.tlb->tlb_flush_walk) in io_pgtable_tlb_flush_walk() 283 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk() 291 if (iop->cfg.tlb && iop->cfg.tlb->tlb_add_page) in io_pgtable_tlb_add_page() 292 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
|
| /linux/arch/riscv/boot/dts/sifive/ |
| H A D | fu540-c000.dtsi | 48 d-tlb-sets = <1>; 49 d-tlb-size = <32>; 54 i-tlb-sets = <1>; 55 i-tlb-size = <32>; 62 tlb-split; 75 d-tlb-sets = <1>; 76 d-tlb-size = <32>; 81 i-tlb-sets = <1>; 82 i-tlb-size = <32>; 89 tlb-split; [all …]
|
| H A D | fu740-c000.dtsi | 49 d-tlb-sets = <1>; 50 d-tlb-size = <40>; 55 i-tlb-sets = <1>; 56 i-tlb-size = <40>; 64 tlb-split; 76 d-tlb-sets = <1>; 77 d-tlb-size = <40>; 82 i-tlb-sets = <1>; 83 i-tlb-size = <40>; 91 tlb-split; [all …]
|
| /linux/arch/loongarch/include/asm/ |
| H A D | tlb.h | 135 static void tlb_flush(struct mmu_gather *tlb); 140 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument 144 vma.vm_mm = tlb->mm; in tlb_flush() 146 if (tlb->fullmm) { in tlb_flush() 147 flush_tlb_mm(tlb->mm); in tlb_flush() 151 flush_tlb_range(&vma, tlb->start, tlb->end); in tlb_flush()
|
| /linux/arch/riscv/include/asm/ |
| H A D | pgalloc.h | 89 static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, in __pud_free_tlb() argument 93 tlb_remove_ptdesc(tlb, virt_to_ptdesc(pud)); in __pud_free_tlb() 96 static inline void __p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d, in __p4d_free_tlb() argument 100 tlb_remove_ptdesc(tlb, virt_to_ptdesc(p4d)); in __p4d_free_tlb() 125 static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, in __pmd_free_tlb() argument 128 tlb_remove_ptdesc(tlb, virt_to_ptdesc(pmd)); in __pmd_free_tlb() 133 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, in __pte_free_tlb() argument 136 tlb_remove_ptdesc(tlb, page_ptdesc(pte)); in __pte_free_tlb()
|
| /linux/arch/powerpc/boot/dts/ |
| H A D | microwatt.dts | 122 i-tlb-sets = <1>; 127 i-tlb-size = <64>; 132 tlb-size = <0>; 133 tlb-sets = <0>; 135 d-tlb-size = <128>; 136 d-tlb-sets = <2>; 152 i-tlb-sets = <1>; 157 i-tlb-size = <64>; 162 tlb-size = <0>; 163 tlb-sets = <0>; [all …]
|
| /linux/arch/powerpc/include/asm/book3s/64/ |
| H A D | pgalloc.h | 21 extern void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift); 136 static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, in __pud_free_tlb() argument 139 pgtable_free_tlb(tlb, pud, PUD_INDEX); in __pud_free_tlb() 152 static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, in __pmd_free_tlb() argument 155 return pgtable_free_tlb(tlb, pmd, PMD_INDEX); in __pmd_free_tlb() 170 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table, in __pte_free_tlb() argument 173 pgtable_free_tlb(tlb, table, PTE_INDEX); in __pte_free_tlb()
|
| /linux/Documentation/devicetree/bindings/nios2/ |
| H A D | nios2.txt | 23 - altr,tlb-num-ways: Specifies the number of set-associativity ways in the TLB. 24 - altr,tlb-num-entries: Specifies the number of entries in the TLB. 25 - altr,tlb-ptr-sz: Specifies size of TLB pointer. 30 - altr,fast-tlb-miss-addr: Specifies CPU fast TLB miss exception address 52 altr,tlb-num-ways = <16>; 53 altr,tlb-num-entries = <128>; 54 altr,tlb-ptr-sz = <7>; 58 altr,fast-tlb-miss-addr = <0xc7fff400>;
|
| /linux/arch/powerpc/include/asm/book3s/32/ |
| H A D | pgalloc.h | 31 #define __pmd_free_tlb(tlb,x,a) do { } while (0) argument 56 static inline void pgtable_free_tlb(struct mmu_gather *tlb, in pgtable_free_tlb() argument 62 tlb_remove_table(tlb, (void *)pgf); in pgtable_free_tlb() 73 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table, in __pte_free_tlb() argument 76 pgtable_free_tlb(tlb, table, 0); in __pte_free_tlb()
|
| /linux/arch/sh/include/asm/ |
| H A D | pgalloc.h | 20 #define __pmd_free_tlb(tlb, pmdp, addr) pmd_free((tlb)->mm, (pmdp)) argument 35 #define __pte_free_tlb(tlb, pte, addr) \ argument 36 tlb_remove_ptdesc((tlb), page_ptdesc(pte))
|
| /linux/arch/mips/mm/ |
| H A D | Makefile | 17 obj-y += tlb-funcs.o 35 obj-$(CONFIG_CPU_R3K_TLB) += tlb-r3k.o 36 obj-$(CONFIG_CPU_R4K_CACHE_TLB) += c-r4k.o cex-gen.o tlb-r4k.o 38 obj-$(CONFIG_CPU_SB1) += c-r4k.o cerr-sb1.o cex-sb1.o tlb-r4k.o 39 obj-$(CONFIG_CPU_CAVIUM_OCTEON) += c-octeon.o cex-oct.o tlb-r4k.o
|
| /linux/arch/arm/mm/ |
| H A D | Makefile | 58 obj-$(CONFIG_CPU_TLB_V4WT) += tlb-v4.o 59 obj-$(CONFIG_CPU_TLB_V4WB) += tlb-v4wb.o 60 obj-$(CONFIG_CPU_TLB_V4WBI) += tlb-v4wbi.o 61 obj-$(CONFIG_CPU_TLB_FEROCEON) += tlb-v4wbi.o # reuse v4wbi TLB functions 62 obj-$(CONFIG_CPU_TLB_V6) += tlb-v6.o 63 obj-$(CONFIG_CPU_TLB_V7) += tlb-v7.o 64 obj-$(CONFIG_CPU_TLB_FA) += tlb-fa.o 65 obj-y += tlb.o
|
| /linux/arch/powerpc/include/asm/nohash/64/ |
| H A D | pgalloc.h | 62 #define __pmd_free_tlb(tlb, pmd, addr) \ argument 63 pgtable_free_tlb(tlb, pmd, PMD_CACHE_INDEX) 64 #define __pud_free_tlb(tlb, pud, addr) \ argument 65 pgtable_free_tlb(tlb, pud, PUD_INDEX_SIZE)
|