/Linux-v5.4/include/asm-generic/ |
D | tlb.h | 190 extern void tlb_remove_table(struct mmu_gather *tlb, void *table); 219 extern bool __tlb_remove_page_size(struct mmu_gather *tlb, struct page *page, 280 void arch_tlb_gather_mmu(struct mmu_gather *tlb, 282 void tlb_flush_mmu(struct mmu_gather *tlb); 283 void arch_tlb_finish_mmu(struct mmu_gather *tlb, 286 static inline void __tlb_adjust_range(struct mmu_gather *tlb, in __tlb_adjust_range() argument 290 tlb->start = min(tlb->start, address); in __tlb_adjust_range() 291 tlb->end = max(tlb->end, address + range_size); in __tlb_adjust_range() 294 static inline void __tlb_reset_range(struct mmu_gather *tlb) in __tlb_reset_range() argument 296 if (tlb->fullmm) { in __tlb_reset_range() [all …]
|
/Linux-v5.4/mm/ |
D | mmu_gather.c | 16 static bool tlb_next_batch(struct mmu_gather *tlb) in tlb_next_batch() argument 20 batch = tlb->active; in tlb_next_batch() 22 tlb->active = batch->next; in tlb_next_batch() 26 if (tlb->batch_count == MAX_GATHER_BATCH_COUNT) in tlb_next_batch() 33 tlb->batch_count++; in tlb_next_batch() 38 tlb->active->next = batch; in tlb_next_batch() 39 tlb->active = batch; in tlb_next_batch() 44 static void tlb_batch_pages_flush(struct mmu_gather *tlb) in tlb_batch_pages_flush() argument 48 for (batch = &tlb->local; batch && batch->nr; batch = batch->next) { in tlb_batch_pages_flush() 52 tlb->active = &tlb->local; in tlb_batch_pages_flush() [all …]
|
D | madvise.c | 36 struct mmu_gather *tlb; member 305 struct mmu_gather *tlb = private->tlb; in madvise_cold_or_pageout_pte_range() local 307 struct mm_struct *mm = tlb->mm; in madvise_cold_or_pageout_pte_range() 322 tlb_change_page_size(tlb, HPAGE_PMD_SIZE); in madvise_cold_or_pageout_pte_range() 360 tlb_remove_pmd_tlb_entry(tlb, pmd, addr); in madvise_cold_or_pageout_pte_range() 385 tlb_change_page_size(tlb, PAGE_SIZE); in madvise_cold_or_pageout_pte_range() 433 tlb->fullmm); in madvise_cold_or_pageout_pte_range() 436 tlb_remove_tlb_entry(tlb, pte, addr); in madvise_cold_or_pageout_pte_range() 471 static void madvise_cold_page_range(struct mmu_gather *tlb, in madvise_cold_page_range() argument 477 .tlb = tlb, in madvise_cold_page_range() [all …]
|
/Linux-v5.4/arch/s390/include/asm/ |
D | tlb.h | 26 static inline void tlb_flush(struct mmu_gather *tlb); 27 static inline bool __tlb_remove_page_size(struct mmu_gather *tlb, 30 #define tlb_start_vma(tlb, vma) do { } while (0) argument 31 #define tlb_end_vma(tlb, vma) do { } while (0) argument 48 static inline bool __tlb_remove_page_size(struct mmu_gather *tlb, in __tlb_remove_page_size() argument 55 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument 57 __tlb_flush_mm_lazy(tlb->mm); in tlb_flush() 64 static inline void pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, in pte_free_tlb() argument 67 __tlb_adjust_range(tlb, address, PAGE_SIZE); in pte_free_tlb() 68 tlb->mm->context.flush_mm = 1; in pte_free_tlb() [all …]
|
/Linux-v5.4/arch/sh/mm/ |
D | tlbflush_64.c | 34 unsigned long tlb; in local_flush_tlb_one() local 43 for_each_itlb_entry(tlb) { in local_flush_tlb_one() 46 : "r" (tlb) ); in local_flush_tlb_one() 49 __flush_tlb_slot(tlb); in local_flush_tlb_one() 54 for_each_dtlb_entry(tlb) { in local_flush_tlb_one() 57 : "r" (tlb) ); in local_flush_tlb_one() 60 __flush_tlb_slot(tlb); in local_flush_tlb_one() 84 unsigned long tlb; in local_flush_tlb_range() local 100 for_each_itlb_entry(tlb) { in local_flush_tlb_range() 103 : "r" (tlb) ); in local_flush_tlb_range() [all …]
|
D | Makefile | 31 debugfs-$(CONFIG_CPU_SH4) += tlb-debugfs.o 32 tlb-$(CONFIG_CPU_SH3) := tlb-sh3.o 33 tlb-$(CONFIG_CPU_SH4) := tlb-sh4.o tlb-urb.o 34 tlb-$(CONFIG_CPU_SH5) := tlb-sh5.o 35 tlb-$(CONFIG_CPU_HAS_PTEAEX) := tlb-pteaex.o tlb-urb.o 36 obj-y += $(tlb-y)
|
/Linux-v5.4/arch/arm64/include/asm/ |
D | tlb.h | 20 static void tlb_flush(struct mmu_gather *tlb); 24 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument 26 struct vm_area_struct vma = TLB_FLUSH_VMA(tlb->mm, 0); in tlb_flush() 27 bool last_level = !tlb->freed_tables; in tlb_flush() 28 unsigned long stride = tlb_get_unmap_size(tlb); in tlb_flush() 35 if (tlb->fullmm) { in tlb_flush() 37 flush_tlb_mm(tlb->mm); in tlb_flush() 41 __flush_tlb_range(&vma, tlb->start, tlb->end, stride, last_level); in tlb_flush() 44 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, in __pte_free_tlb() argument 48 tlb_remove_table(tlb, pte); in __pte_free_tlb() [all …]
|
/Linux-v5.4/arch/x86/include/asm/ |
D | tlb.h | 5 #define tlb_start_vma(tlb, vma) do { } while (0) argument 6 #define tlb_end_vma(tlb, vma) do { } while (0) argument 7 #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) argument 10 static inline void tlb_flush(struct mmu_gather *tlb); 14 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument 17 unsigned int stride_shift = tlb_get_unmap_shift(tlb); in tlb_flush() 19 if (!tlb->fullmm && !tlb->need_flush_all) { in tlb_flush() 20 start = tlb->start; in tlb_flush() 21 end = tlb->end; in tlb_flush() 24 flush_tlb_mm_range(tlb->mm, start, end, stride_shift, tlb->freed_tables); in tlb_flush()
|
D | pgalloc.h | 55 extern void ___pte_free_tlb(struct mmu_gather *tlb, struct page *pte); 57 static inline void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte, in __pte_free_tlb() argument 60 ___pte_free_tlb(tlb, pte); in __pte_free_tlb() 113 extern void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd); 115 static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, in __pmd_free_tlb() argument 118 ___pmd_free_tlb(tlb, pmd); in __pmd_free_tlb() 165 extern void ___pud_free_tlb(struct mmu_gather *tlb, pud_t *pud); 167 static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, in __pud_free_tlb() argument 170 ___pud_free_tlb(tlb, pud); in __pud_free_tlb() 208 extern void ___p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d); [all …]
|
/Linux-v5.4/arch/arm/include/asm/ |
D | tlb.h | 23 #define tlb_flush(tlb) ((void) tlb) argument 41 #define tlb_remove_table(tlb, entry) tlb_remove_page(tlb, entry) argument 45 __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, unsigned long addr) in __pte_free_tlb() argument 55 __tlb_adjust_range(tlb, addr - PAGE_SIZE, 2 * PAGE_SIZE); in __pte_free_tlb() 58 tlb_remove_table(tlb, pte); in __pte_free_tlb() 62 __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, unsigned long addr) in __pmd_free_tlb() argument 67 tlb_remove_table(tlb, page); in __pmd_free_tlb()
|
/Linux-v5.4/arch/powerpc/include/asm/nohash/ |
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 50 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift) in pgtable_free_tlb() argument 56 tlb_remove_table(tlb, (void *)pgf); in pgtable_free_tlb() 68 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift) in pgtable_free_tlb() argument 74 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table, in __pte_free_tlb() argument 77 tlb_flush_pgtable(tlb, address); in __pte_free_tlb() 78 pgtable_free_tlb(tlb, table, 0); in __pte_free_tlb()
|
/Linux-v5.4/arch/sh/include/asm/ |
D | tlb_64.h | 25 #define for_each_dtlb_entry(tlb) \ argument 26 for (tlb = cpu_data->dtlb.first; \ 27 tlb <= cpu_data->dtlb.last; \ 28 tlb += cpu_data->dtlb.step) 35 #define for_each_itlb_entry(tlb) \ argument 36 for (tlb = cpu_data->itlb.first; \ 37 tlb <= cpu_data->itlb.last; \ 38 tlb += cpu_data->itlb.step)
|
/Linux-v5.4/arch/csky/include/asm/ |
D | tlb.h | 9 #define tlb_start_vma(tlb, vma) \ argument 11 if (!(tlb)->fullmm) \ 15 #define tlb_end_vma(tlb, vma) \ argument 17 if (!(tlb)->fullmm) \ 21 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) argument
|
/Linux-v5.4/arch/riscv/boot/dts/sifive/ |
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; 68 d-tlb-sets = <1>; 69 d-tlb-size = <32>; 74 i-tlb-sets = <1>; 75 i-tlb-size = <32>; 79 tlb-split; [all …]
|
/Linux-v5.4/arch/sparc/include/asm/ |
D | pgalloc_64.h | 79 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, bool is_page) in pgtable_free_tlb() argument 84 tlb_remove_table(tlb, (void *)pgf); in pgtable_free_tlb() 97 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, bool is_page) in pgtable_free_tlb() argument 103 static inline void __pte_free_tlb(struct mmu_gather *tlb, pte_t *pte, in __pte_free_tlb() argument 106 pgtable_free_tlb(tlb, pte, true); in __pte_free_tlb() 109 #define __pmd_free_tlb(tlb, pmd, addr) \ argument 110 pgtable_free_tlb(tlb, pmd, false) 112 #define __pud_free_tlb(tlb, pud, addr) \ argument 113 pgtable_free_tlb(tlb, pud, false)
|
/Linux-v5.4/arch/powerpc/include/asm/book3s/64/ |
D | pgalloc.h | 21 extern void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift); 122 static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, in __pud_free_tlb() argument 129 flush_tlb_pgtable(tlb, address); in __pud_free_tlb() 130 pgtable_free_tlb(tlb, pud, PUD_INDEX); in __pud_free_tlb() 143 static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, in __pmd_free_tlb() argument 150 flush_tlb_pgtable(tlb, address); in __pmd_free_tlb() 151 return pgtable_free_tlb(tlb, pmd, PMD_INDEX); in __pmd_free_tlb() 166 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table, in __pte_free_tlb() argument 173 flush_tlb_pgtable(tlb, address); in __pte_free_tlb() 174 pgtable_free_tlb(tlb, table, PTE_INDEX); in __pte_free_tlb()
|
/Linux-v5.4/arch/mips/kvm/ |
D | tlb.c | 91 struct kvm_mips_tlb tlb; in kvm_mips_dump_guest_tlbs() local 98 tlb = vcpu->arch.guest_tlb[i]; in kvm_mips_dump_guest_tlbs() 100 (tlb.tlb_lo[0] | tlb.tlb_lo[1]) & ENTRYLO_V in kvm_mips_dump_guest_tlbs() 102 i, tlb.tlb_hi); in kvm_mips_dump_guest_tlbs() 104 (u64) mips3_tlbpfn_to_paddr(tlb.tlb_lo[0]), in kvm_mips_dump_guest_tlbs() 105 (tlb.tlb_lo[0] & ENTRYLO_D) ? 'D' : ' ', in kvm_mips_dump_guest_tlbs() 106 (tlb.tlb_lo[0] & ENTRYLO_G) ? 'G' : ' ', in kvm_mips_dump_guest_tlbs() 107 (tlb.tlb_lo[0] & ENTRYLO_C) >> ENTRYLO_C_SHIFT); in kvm_mips_dump_guest_tlbs() 109 (u64) mips3_tlbpfn_to_paddr(tlb.tlb_lo[1]), in kvm_mips_dump_guest_tlbs() 110 (tlb.tlb_lo[1] & ENTRYLO_D) ? 'D' : ' ', in kvm_mips_dump_guest_tlbs() [all …]
|
/Linux-v5.4/sound/pci/trident/ |
D | trident_memory.c | 23 do { (trident)->tlb.entries[page] = cpu_to_le32((addr) & ~(SNDRV_TRIDENT_PAGE_SIZE-1)); \ 24 (trident)->tlb.shadow_entries[page] = (ptr); } while (0) 26 (void*)((trident)->tlb.shadow_entries[page]) 28 (dma_addr_t)le32_to_cpu((trident->tlb.entries[page]) & ~(SNDRV_TRIDENT_PAGE_SIZE - 1)) 37 …page) __set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.sile… 67 …__set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_pag… in set_silent_tlb() 68 …__set_tlb_bus(trident, page+1, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_p… in set_silent_tlb() 103 …__set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_pag… in set_silent_tlb() 186 hdr = trident->tlb.memhdr; in snd_trident_alloc_sg_pages() 235 hdr = trident->tlb.memhdr; in snd_trident_alloc_cont_pages() [all …]
|
/Linux-v5.4/arch/powerpc/mm/ |
D | hugetlbpage.c | 266 static void hugepd_free(struct mmu_gather *tlb, void *hugepte) in hugepd_free() argument 272 if (atomic_read(&tlb->mm->mm_users) < 2 || in hugepd_free() 273 mm_is_thread_local(tlb->mm)) { in hugepd_free() 292 static inline void hugepd_free(struct mmu_gather *tlb, void *hugepte) {} in hugepd_free() argument 295 static void free_hugepd_range(struct mmu_gather *tlb, hugepd_t *hpdp, int pdshift, in free_hugepd_range() argument 325 hugepd_free(tlb, hugepte); in free_hugepd_range() 327 pgtable_free_tlb(tlb, hugepte, in free_hugepd_range() 330 pgtable_free_tlb(tlb, hugepte, in free_hugepd_range() 334 static void hugetlb_free_pmd_range(struct mmu_gather *tlb, pud_t *pud, in hugetlb_free_pmd_range() argument 366 free_hugepd_range(tlb, (hugepd_t *)pmd, PMD_SHIFT, in hugetlb_free_pmd_range() [all …]
|
/Linux-v5.4/arch/powerpc/include/asm/book3s/32/ |
D | pgalloc.h | 25 #define __pmd_free_tlb(tlb,x,a) do { } while (0) argument 53 static inline void pgtable_free_tlb(struct mmu_gather *tlb, in pgtable_free_tlb() argument 59 tlb_remove_table(tlb, (void *)pgf); in pgtable_free_tlb() 70 static inline void pgtable_free_tlb(struct mmu_gather *tlb, in pgtable_free_tlb() argument 77 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table, in __pte_free_tlb() argument 80 pgtable_free_tlb(tlb, table, 0); in __pte_free_tlb()
|
/Linux-v5.4/arch/ia64/include/asm/ |
D | pgalloc.h | 53 #define __pud_free_tlb(tlb, pud, address) pud_free((tlb)->mm, pud) argument 72 #define __pmd_free_tlb(tlb, pmd, address) pmd_free((tlb)->mm, pmd) argument 87 #define __pte_free_tlb(tlb, pte, address) pte_free((tlb)->mm, pte) argument
|
/Linux-v5.4/arch/parisc/include/asm/ |
D | tlb.h | 7 #define __pmd_free_tlb(tlb, pmd, addr) pmd_free((tlb)->mm, pmd) argument 8 #define __pte_free_tlb(tlb, pte, addr) pte_free((tlb)->mm, pte) argument
|
/Linux-v5.4/arch/alpha/include/asm/ |
D | tlb.h | 7 #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-v5.4/arch/mips/include/asm/ |
D | pgalloc.h | 55 #define __pte_free_tlb(tlb,pte,address) \ argument 58 tlb_remove_page((tlb), pte); \ 78 #define __pmd_free_tlb(tlb, x, addr) pmd_free((tlb)->mm, x) argument 104 #define __pud_free_tlb(tlb, x, addr) pud_free((tlb)->mm, x) argument
|
/Linux-v5.4/arch/powerpc/include/asm/ |
D | tlb.h | 23 #define tlb_start_vma(tlb, vma) do { } while (0) argument 24 #define tlb_end_vma(tlb, vma) do { } while (0) argument 28 extern void tlb_flush(struct mmu_gather *tlb); 36 static inline void __tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, in __tlb_remove_tlb_entry() argument 41 flush_hash_entry(tlb->mm, ptep, address); in __tlb_remove_tlb_entry()
|