Home
last modified time | relevance | path

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

123456

/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()
82 void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma) in tlb_flush_rmaps() argument
84 if (!tlb->delayed_rmap) in tlb_flush_rmaps()
[all …]
H A Dmprotect.c122 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
227 tlb_change_page_size(tlb, PAGE_SIZE); in change_pte_range()
[all …]
H A Dmadvise.c50 struct mmu_gather *tlb; member
69 struct mmu_gather *tlb; member
359 struct mmu_gather *tlb = private->tlb; in madvise_cold_or_pageout_pte_range() local
361 struct mm_struct *mm = tlb->mm; in madvise_cold_or_pageout_pte_range()
382 tlb_change_page_size(tlb, HPAGE_PMD_SIZE); in madvise_cold_or_pageout_pte_range()
425 tlb_remove_pmd_tlb_entry(tlb, pmd, addr); in madvise_cold_or_pageout_pte_range()
450 tlb_change_page_size(tlb, PAGE_SIZE); in madvise_cold_or_pageout_pte_range()
534 tlb_remove_tlb_entries(tlb, pte, nr, addr); in madvise_cold_or_pageout_pte_range()
574 static void madvise_cold_page_range(struct mmu_gather *tlb, in madvise_cold_page_range() argument
582 .tlb = tlb, in madvise_cold_page_range()
[all …]
/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)
/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
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 Dpgalloc.h54 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 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/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/arch/powerpc/mm/book3s32/
H A Dtlb.c109 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 Dio-pgtable.h111 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 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>;
76 d-tlb-size = <32>;
81 i-tlb-sets = <1>;
82 i-tlb-size = <32>;
89 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>;
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 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/arch/riscv/include/asm/
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/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/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
100 #define __pud_free_tlb(tlb, x, addr) pud_free((tlb)->mm, x) argument
/linux/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/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
/linux/arch/powerpc/include/asm/book3s/64/
H A Dpgalloc.h21 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 Dnios2.txt23 - 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 Dpgalloc.h31 #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/riscv/boot/dts/microchip/
H A Dmpfs.dtsi44 d-tlb-sets = <1>;
45 d-tlb-size = <32>;
50 i-tlb-sets = <1>;
51 i-tlb-size = <32>;
59 tlb-split;
75 d-tlb-sets = <1>;
76 d-tlb-size = <32>;
81 i-tlb-sets = <1>;
82 i-tlb-size = <32>;
90 tlb-split;
[all …]
/linux/arch/sh/include/asm/
H A Dpgalloc.h20 #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 DMakefile17 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

123456