Lines Matching defs:mmu_gather
34 * The mmu_gather data structure is used by the mm code to implement the
47 * The mmu_gather API consists of:
51 * start and finish a mmu_gather
104 * - mmu_gather::fullmm
115 * - mmu_gather::need_flush_all
123 * tlb_flush() may, in addition to the above mentioned mmu_gather fields, make
126 * - mmu_gather::start / mmu_gather::end
131 * - mmu_gather::freed_tables
148 * changes the size and provides mmu_gather::page_size to tlb_flush().
193 * If the option is set the mmu_gather will not track individual pages for
224 extern void tlb_remove_table(struct mmu_gather *tlb, void *table);
228 static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page);
233 static inline void tlb_remove_table(struct mmu_gather *tlb, void *table)
282 * Limit the maximum number of mmu_gather batches to reduce a risk of soft
289 extern bool __tlb_remove_page_size(struct mmu_gather *tlb, struct page *page,
291 bool __tlb_remove_folio_pages(struct mmu_gather *tlb, struct page *page,
297 * function, except we define it before the 'struct mmu_gather'.
300 extern void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma);
314 static inline void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma) { }
318 * struct mmu_gather is an opaque type used by the mm code for passing around
321 struct mmu_gather {
380 void tlb_flush_mmu(struct mmu_gather *tlb);
382 static inline void __tlb_adjust_range(struct mmu_gather *tlb,
390 static inline void __tlb_reset_range(struct mmu_gather *tlb)
404 * Do not reset mmu_gather::vma_* fields here, we do not
424 static inline void tlb_flush(struct mmu_gather *tlb)
438 static inline void tlb_flush(struct mmu_gather *tlb)
457 tlb_update_vma_flags(struct mmu_gather *tlb, struct vm_area_struct *vma)
480 static inline void tlb_flush_mmu_tlbonly(struct mmu_gather *tlb)
494 static inline void tlb_remove_page_size(struct mmu_gather *tlb,
501 static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
506 static inline void tlb_remove_ptdesc(struct mmu_gather *tlb, struct ptdesc *pt)
511 static inline void tlb_change_page_size(struct mmu_gather *tlb,
524 static inline unsigned long tlb_get_unmap_shift(struct mmu_gather *tlb)
538 static inline unsigned long tlb_get_unmap_size(struct mmu_gather *tlb)
548 static inline void tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
559 static inline void tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
567 * but also the mmu_gather::vma_* flags from tlb_start_vma() rely on
573 static inline void tlb_free_vmas(struct mmu_gather *tlb)
599 static inline void tlb_flush_pte_range(struct mmu_gather *tlb,
606 static inline void tlb_flush_pmd_range(struct mmu_gather *tlb,
613 static inline void tlb_flush_pud_range(struct mmu_gather *tlb,
620 static inline void tlb_flush_p4d_range(struct mmu_gather *tlb,
628 static inline void __tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, unsigned long address)
653 static inline void tlb_remove_tlb_entries(struct mmu_gather *tlb,