Lines Matching +full:d +full:- +full:tlb +full:- +full:size

1 // SPDX-License-Identifier: GPL-2.0
12 * Flush entire TLB if number of entries to be flushed is greater
18 unsigned long size, in local_flush_tlb_range_threshold_asid() argument
22 unsigned long nr_ptes_in_range = DIV_ROUND_UP(size, stride); in local_flush_tlb_range_threshold_asid()
37 unsigned long size, unsigned long stride, unsigned long asid) in local_flush_tlb_range_asid() argument
39 if (size <= stride) in local_flush_tlb_range_asid()
41 else if (size == FLUSH_TLB_MAX_SIZE) in local_flush_tlb_range_asid()
44 local_flush_tlb_range_threshold_asid(start, size, stride, asid); in local_flush_tlb_range_asid()
50 local_flush_tlb_range_asid(start, end - start, PAGE_SIZE, FLUSH_TLB_NO_ASID); in local_flush_tlb_kernel_range()
71 unsigned long size; member
77 struct flush_tlb_range_data *d = info; in __ipi_flush_tlb_range_asid() local
79 local_flush_tlb_range_asid(d->start, d->size, d->stride, d->asid); in __ipi_flush_tlb_range_asid()
84 return mm ? cntx2asid(atomic_long_read(&mm->context.id)) : FLUSH_TLB_NO_ASID; in get_mm_asid()
89 unsigned long start, unsigned long size, in __flush_tlb_range() argument
100 /* Check if the TLB flush needs to be sent to other CPUs. */ in __flush_tlb_range()
102 local_flush_tlb_range_asid(start, size, stride, asid); in __flush_tlb_range()
104 sbi_remote_sfence_vma_asid(cmask, start, size, asid); in __flush_tlb_range()
110 ftd.size = size; in __flush_tlb_range()
118 mmu_notifier_arch_invalidate_secondary_tlbs(mm, start, start + size); in __flush_tlb_range()
130 __flush_tlb_range(mm, mm_cpumask(mm), start, end - start, page_size); in flush_tlb_mm_range()
135 __flush_tlb_range(vma->vm_mm, mm_cpumask(vma->vm_mm), in flush_tlb_page()
168 __flush_tlb_range(vma->vm_mm, mm_cpumask(vma->vm_mm), in flush_tlb_range()
169 start, end - start, stride_size); in flush_tlb_range()
175 start, end - start, PAGE_SIZE); in flush_tlb_kernel_range()
182 __flush_tlb_range(vma->vm_mm, mm_cpumask(vma->vm_mm), in flush_pmd_tlb_range()
183 start, end - start, PMD_SIZE); in flush_pmd_tlb_range()
195 cpumask_or(&batch->cpumask, &batch->cpumask, mm_cpumask(mm)); in arch_tlbbatch_add_pending()
206 __flush_tlb_range(NULL, &batch->cpumask, in arch_tlbbatch_flush()
208 cpumask_clear(&batch->cpumask); in arch_tlbbatch_flush()