Home
last modified time | relevance | path

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

1234567

/linux-6.15/include/asm-generic/
H A Dtlb.h381 tlb->start = min(tlb->start, address); in __tlb_adjust_range()
382 tlb->end = max(tlb->end, address + range_size); in __tlb_adjust_range()
388 tlb->start = tlb->end = ~0; in __tlb_reset_range()
391 tlb->end = 0; in __tlb_reset_range()
421 if (tlb->end) in tlb_flush()
435 if (tlb->fullmm || tlb->need_flush_all) { in tlb_flush()
444 flush_tlb_range(&vma, tlb->start, tlb->end); in tlb_flush()
476 if (!(tlb->freed_tables || tlb->cleared_ptes || tlb->cleared_pmds || in tlb_flush_mmu_tlbonly()
477 tlb->cleared_puds || tlb->cleared_p4ds)) in tlb_flush_mmu_tlbonly()
505 if (tlb->page_size && tlb->page_size != page_size) { in tlb_change_page_size()
[all …]
/linux-6.15/mm/
H A Dmmu_gather.c23 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()
88 if (tlb->active != &tlb->local) in tlb_flush_rmaps()
150 tlb->active = &tlb->local; in tlb_batch_pages_flush()
383 tlb->batch = NULL; in tlb_table_init()
410 tlb->mm = mm; in __tlb_gather_mmu()
417 tlb->local.max = ARRAY_SIZE(tlb->__pages); in __tlb_gather_mmu()
418 tlb->active = &tlb->local; in __tlb_gather_mmu()
[all …]
H A Dmprotect.c86 static long change_pte_range(struct mmu_gather *tlb, in change_pte_range() argument
98 tlb_change_page_size(tlb, PAGE_SIZE); in change_pte_range()
197 tlb_flush_pte_range(tlb, addr, PAGE_SIZE); in change_pte_range()
394 ret = change_huge_pmd(tlb, vma, pmd, in change_pmd_range()
461 ret = change_huge_pud(tlb, vma, pudp, in change_pud_range()
516 tlb_start_vma(tlb, vma); in change_protection_range()
530 tlb_end_vma(tlb, vma); in change_protection_range()
535 long change_protection(struct mmu_gather *tlb, in change_protection() argument
712 struct mmu_gather tlb; in do_mprotect_pkey() local
773 tlb_gather_mmu(&tlb, current->mm); in do_mprotect_pkey()
[all …]
/linux-6.15/arch/arm64/include/asm/
H A Dtlb.h27 if (tlb->freed_tables) in tlb_get_level()
30 if (tlb->cleared_ptes && !(tlb->cleared_pmds || in tlb_get_level()
31 tlb->cleared_puds || in tlb_get_level()
32 tlb->cleared_p4ds)) in tlb_get_level()
35 if (tlb->cleared_pmds && !(tlb->cleared_ptes || in tlb_get_level()
37 tlb->cleared_p4ds)) in tlb_get_level()
40 if (tlb->cleared_puds && !(tlb->cleared_ptes || in tlb_get_level()
42 tlb->cleared_p4ds)) in tlb_get_level()
45 if (tlb->cleared_p4ds && !(tlb->cleared_ptes || in tlb_get_level()
65 if (tlb->fullmm) { in tlb_flush()
[all …]
/linux-6.15/arch/s390/include/asm/
H A Dtlb.h85 tlb->freed_tables = 1; in pte_free_tlb()
86 tlb->cleared_pmds = 1; in pte_free_tlb()
87 if (mm_has_pgste(tlb->mm)) in pte_free_tlb()
102 if (mm_pmd_folded(tlb->mm)) in pmd_free_tlb()
106 tlb->freed_tables = 1; in pmd_free_tlb()
107 tlb->cleared_puds = 1; in pmd_free_tlb()
121 if (mm_p4d_folded(tlb->mm)) in p4d_free_tlb()
125 tlb->freed_tables = 1; in p4d_free_tlb()
139 if (mm_pud_folded(tlb->mm)) in pud_free_tlb()
143 tlb->freed_tables = 1; in pud_free_tlb()
[all …]
/linux-6.15/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()
H A Dpgalloc.h89 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-6.15/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)
/linux-6.15/arch/arm/include/asm/
H A Dtlb.h23 #define tlb_flush(tlb) ((void) tlb) argument
33 __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, unsigned long addr) in __pte_free_tlb() argument
43 __tlb_adjust_range(tlb, addr - PAGE_SIZE, 2 * PAGE_SIZE); in __pte_free_tlb()
46 tlb_remove_ptdesc(tlb, ptdesc); in __pte_free_tlb()
50 __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, unsigned long addr) in __pmd_free_tlb() argument
55 tlb_remove_ptdesc(tlb, ptdesc); in __pmd_free_tlb()
/linux-6.15/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
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-6.15/arch/x86/include/asm/
H A Dtlb.h6 static inline void tlb_flush(struct mmu_gather *tlb);
13 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument
16 unsigned int stride_shift = tlb_get_unmap_shift(tlb); in tlb_flush()
18 if (!tlb->fullmm && !tlb->need_flush_all) { in tlb_flush()
19 start = tlb->start; in tlb_flush()
20 end = tlb->end; in tlb_flush()
23 flush_tlb_mm_range(tlb->mm, start, end, stride_shift, tlb->freed_tables); in tlb_flush()
H A Dpgalloc.h54 extern void ___pte_free_tlb(struct mmu_gather *tlb, struct page *pte);
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);
150 static inline void __p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d, in __p4d_free_tlb() argument
[all …]
/linux-6.15/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)
/linux-6.15/arch/um/include/asm/
H A Dpgalloc.h28 #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-6.15/include/linux/
H A Dio-pgtable.h105 const struct iommu_flush_ops *tlb; member
267 if (iop->cfg.tlb && iop->cfg.tlb->tlb_flush_all) in io_pgtable_tlb_flush_all()
268 iop->cfg.tlb->tlb_flush_all(iop->cookie); in io_pgtable_tlb_flush_all()
275 if (iop->cfg.tlb && iop->cfg.tlb->tlb_flush_walk) in io_pgtable_tlb_flush_walk()
276 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk()
284 if (iop->cfg.tlb && iop->cfg.tlb->tlb_add_page) in io_pgtable_tlb_add_page()
285 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
/linux-6.15/arch/loongarch/include/asm/
H A Dtlb.h135 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()
H A Dpgalloc.h58 #define __pte_free_tlb(tlb, pte, address) \ argument
59 tlb_remove_ptdesc((tlb), page_ptdesc(pte))
82 #define __pmd_free_tlb(tlb, x, addr) pmd_free((tlb)->mm, x) argument
102 #define __pud_free_tlb(tlb, x, addr) pud_free((tlb)->mm, x) argument
/linux-6.15/arch/arc/include/asm/
H A Dpgalloc.h75 #define __pud_free_tlb(tlb, pmd, addr) pud_free((tlb)->mm, pmd) argument
86 #define __pmd_free_tlb(tlb, pmd, addr) pmd_free((tlb)->mm, pmd) argument
90 #define __pte_free_tlb(tlb, pte, addr) pte_free((tlb)->mm, pte) argument
/linux-6.15/arch/riscv/boot/dts/sifive/
H A Dfu540-c000.dtsi48 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>;
81 i-tlb-sets = <1>;
89 tlb-split;
102 d-tlb-sets = <1>;
116 tlb-split;
[all …]
H A Dfu740-c000.dtsi49 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>;
82 i-tlb-sets = <1>;
91 tlb-split;
103 d-tlb-sets = <1>;
118 tlb-split;
[all …]
/linux-6.15/arch/sparc/mm/
H A Dhugetlbpage.c305 pte_free_tlb(tlb, token, addr); in hugetlb_free_pte_range()
306 mm_dec_nr_ptes(tlb->mm); in hugetlb_free_pte_range()
326 hugetlb_free_pte_range(tlb, pmd, addr); in hugetlb_free_pmd_range()
342 pmd_free_tlb(tlb, pmd, start); in hugetlb_free_pmd_range()
343 mm_dec_nr_pmds(tlb->mm); in hugetlb_free_pmd_range()
363 hugetlb_free_pmd_range(tlb, pud, addr, next, floor, in hugetlb_free_pud_range()
380 pud_free_tlb(tlb, pud, start); in hugetlb_free_pud_range()
381 mm_dec_nr_puds(tlb->mm); in hugetlb_free_pud_range()
384 void hugetlb_free_pgd_range(struct mmu_gather *tlb, in hugetlb_free_pgd_range() argument
408 pgd = pgd_offset(tlb->mm, addr); in hugetlb_free_pgd_range()
[all …]
/linux-6.15/arch/mips/include/asm/
H A Dpgalloc.h51 #define __pte_free_tlb(tlb, pte, address) \ argument
52 tlb_remove_ptdesc((tlb), page_ptdesc(pte))
75 #define __pmd_free_tlb(tlb, x, addr) pmd_free((tlb)->mm, x) argument
101 #define __pud_free_tlb(tlb, x, addr) pud_free((tlb)->mm, x) argument
/linux-6.15/arch/powerpc/boot/dts/
H A Dmicrowatt.dts122 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-6.15/arch/alpha/include/asm/
H A Dtlb.h7 #define __pte_free_tlb(tlb, pte, address) pte_free((tlb)->mm, pte) argument
8 #define __pmd_free_tlb(tlb, pmd, address) pmd_free((tlb)->mm, pmd) argument
/linux-6.15/arch/parisc/include/asm/
H A Dtlb.h8 #define __pmd_free_tlb(tlb, pmd, addr) pmd_free((tlb)->mm, pmd) argument
10 #define __pte_free_tlb(tlb, pte, addr) pte_free((tlb)->mm, pte) argument

1234567