Home
last modified time | relevance | path

Searched full:tlb (Results 1 – 25 of 1050) sorted by relevance

12345678910>>...42

/kernel/linux/linux-5.10/include/asm-generic/
Dtlb.h2 /* include/asm-generic/tlb.h
4 * Generic TLB shootdown code
35 * correct and efficient ordering of freeing pages and TLB invalidations.
40 * 2) TLB invalidate page
51 * Finish in particular will issue a (final) TLB invalidate and free
86 * tlb_flush_mmu_tlbonly() - does the TLB invalidate (and resets
89 * tlb_flush_mmu() - in addition to the above TLB invalidate, also frees
106 * flush the entire TLB irrespective of the range. For instance
125 * returns the smallest TLB entry size unmapped in this range.
138 * This might be useful if your architecture has size specific TLB
[all …]
/kernel/linux/linux-5.10/mm/
Dmmu_gather.c12 #include <asm/tlb.h>
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()
[all …]
/kernel/linux/linux-5.10/arch/arm64/include/asm/
Dtlb.h3 * Based on arch/arm/include/asm/tlb.h
20 static void tlb_flush(struct mmu_gather *tlb);
22 #include <asm-generic/tlb.h>
29 static inline int tlb_get_level(struct mmu_gather *tlb) in tlb_get_level() argument
32 if (tlb->freed_tables) in tlb_get_level()
35 if (tlb->cleared_ptes && !(tlb->cleared_pmds || in tlb_get_level()
36 tlb->cleared_puds || in tlb_get_level()
37 tlb->cleared_p4ds)) in tlb_get_level()
40 if (tlb->cleared_pmds && !(tlb->cleared_ptes || in tlb_get_level()
41 tlb->cleared_puds || in tlb_get_level()
[all …]
/kernel/linux/linux-5.10/arch/s390/include/asm/
Dtlb.h6 * TLB flushing on s390 is complicated. The following requirement
14 * AND PURGE instruction that purges the TLB."
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
40 #include <asm-generic/tlb.h>
44 * tlb_ptep_clear_flush. In both flush modes the tlb for a page cache page
47 static inline bool __tlb_remove_page_size(struct mmu_gather *tlb, in __tlb_remove_page_size() argument
54 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument
[all …]
/kernel/linux/linux-5.10/tools/perf/pmu-events/arch/powerpc/power8/
Dtranslation.json5 "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 16G",
11 "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 16M",
17 "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 4K",
23 "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 64K",
29 …"BriefDescription": "A Page Table Entry was loaded into the TLB with Modified (M) data from anothe…
35 …"BriefDescription": "A Page Table Entry was loaded into the TLB with Shared (S) data from another …
41 …"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 due to a data…
47 …"BriefDescription": "A Page Table Entry was loaded into the TLB from a location other than the loc…
53 …"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 hit without d…
59 …"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 without confl…
[all …]
/kernel/linux/linux-5.10/arch/mips/kvm/
Dtlb.c6 * KVM/MIPS TLB handling, this file is part of the Linux host kernel so that
7 * TLB handlers run from KSEG0
26 #include <asm/tlb.h>
71 /* Structure defining an tlb entry data set. */
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()
99 kvm_info("TLB%c%3d Hi 0x%08lx ", 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()
[all …]
/kernel/linux/linux-5.10/arch/x86/include/asm/
Dtlb.h5 #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);
12 #include <asm-generic/tlb.h>
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()
[all …]
/kernel/linux/linux-5.10/tools/perf/pmu-events/arch/arm64/arm/cortex-a76-n1/
Dcache.json9 …ublicDescription": "L1 instruction TLB refill. This event counts any refill of the instruction L1
12 "BriefDescription": "L1 instruction TLB refill"
27 …"PublicDescription": "L1 data TLB refill. This event counts any refill of the data L1 TLB from the…
30 "BriefDescription": "L1 data TLB refill"
69 …blicDescription": "Level 1 data TLB access. This event counts any load or store operation which ac…
72 "BriefDescription": "Level 1 data TLB access."
75 …cription": "Level 1 instruction TLB access. This event counts any instruction fetch which accesses…
78 "BriefDescription": "Level 1 instruction TLB access"
99 …cDescription": "Attributable L2 data or unified TLB refill. This event counts on anyrefill of the …
102 "BriefDescription": "Attributable L2 data or unified TLB refill"
[all …]
/kernel/linux/linux-5.10/arch/arm/include/asm/
Dtlb.h3 * arch/arm/include/asm/tlb.h
8 * to use the "invalidate whole tlb" rather than "invalidate single
9 * tlb" for this.
23 #define tlb_flush(tlb) ((void) tlb) argument
25 #include <asm-generic/tlb.h>
37 #include <asm-generic/tlb.h>
40 __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, unsigned long addr) in __pte_free_tlb() argument
50 __tlb_adjust_range(tlb, addr - PAGE_SIZE, 2 * PAGE_SIZE); in __pte_free_tlb()
53 tlb_remove_table(tlb, pte); in __pte_free_tlb()
57 __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, unsigned long addr) in __pmd_free_tlb() argument
[all …]
/kernel/linux/linux-5.10/tools/perf/pmu-events/arch/arm64/ampere/emag/
Dcache.json48 "PublicDescription": "Level 1 instruction TLB refill",
51 "BriefDescription": "L1I TLB refill"
66 "PublicDescription": "Level 1 data TLB refill",
69 "BriefDescription": "L1D TLB refill"
96 …blicDescription": "Level 1 data TLB access. This event counts any load or store operation which ac…
99 "BriefDescription": "L1D TLB access"
102 …cription": "Level 1 instruction TLB access. This event counts any instruction fetch which accesses…
105 "BriefDescription": "L1I TLB access"
108 …"PublicDescription": "Level 2 access to data TLB that caused a page table walk. This event counts …
111 "BriefDescription": "L2D TLB access"
[all …]
/kernel/linux/linux-5.10/Documentation/x86/
Dtlb.rst4 The TLB
10 1. Flush the entire TLB with a two-instruction sequence. This is
11 a quick operation, but it causes collateral damage: TLB entries
17 damage to other TLB entries.
23 entire TLB than doing 2^48/PAGE_SIZE individual flushes.
24 2. The contents of the TLB. If the TLB is empty, then there will
28 3. The size of the TLB. The larger the TLB, the more collateral
29 damage we do with a full flush. So, the larger the TLB, the
32 4. The microarchitecture. The TLB has become a multi-level
37 especially the contents of the TLB during a given flush. The
[all …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/nios2/
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>;
/kernel/linux/linux-5.10/tools/perf/pmu-events/arch/x86/icelake/
Dvirtual-memory.json4 …ompleted due to demand data loads whose address translations missed in the TLB and were mapped to …
15 …ompleted due to demand data loads whose address translations missed in the TLB and were mapped to …
26 …ed page walk of any page size (4K/2M/4M/1G). This implies it missed in all TLB levels. The page wa…
33 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size…
60 …blicDescription": "Counts loads that miss the DTLB (Data TLB) and hit the STLB (Second level TLB).…
71 …mpleted due to demand data stores whose address translations missed in the TLB and were mapped to …
82 …mpleted due to demand data stores whose address translations missed in the TLB and were mapped to …
93 …ed page walk of any page size (4K/2M/4M/1G). This implies it missed in all TLB levels. The page wa…
100 …"BriefDescription": "Store misses in all TLB levels causes a page walk that completes. (All page s…
127 …ublicDescription": "Counts stores that miss the DTLB (Data TLB) and hit the STLB (2nd Level TLB).",
[all …]
/kernel/linux/linux-5.10/arch/sh/mm/
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)
Dtlb-urb.c2 * arch/sh/mm/tlb-urb.c
4 * TLB entry wiring helpers for URB-equipped parts.
14 #include <asm/tlb.h>
18 * Load the entry for 'addr' into the TLB and wire the entry.
32 * Make sure we're not trying to wire the last TLB entry slot. in tlb_wire_entry()
39 * Insert this entry into the highest non-wired TLB slot (via in tlb_wire_entry()
46 /* Load the entry into the TLB */ in tlb_wire_entry()
62 * Unwire the last wired TLB entry.
65 * TLB entries in an arbitrary order. If you wire TLB entry N, followed
81 * Make sure we're not trying to unwire a TLB entry when none in tlb_unwire_entry()
/kernel/linux/linux-5.10/arch/ia64/include/asm/
Dtlb.h5 * Based on <asm-generic/tlb.h>.
11 * Removing a translation from a page table (including TLB-shootdown) is a four-step
22 * The Linux kernel defines several platform-specific hooks for TLB-shootdown. When
26 * tlb <- tlb_gather_mmu(mm, start, end); // start unmap for address space MM
29 * tlb_start_vma(tlb, vma);
31 * tlb_remove_tlb_entry(tlb, pte, address);
33 * tlb_remove_page(tlb, page);
36 * tlb_end_vma(tlb, vma);
39 * tlb_finish_mmu(tlb, start, end); // finish unmap for address space MM
48 #include <asm-generic/tlb.h>
/kernel/linux/linux-5.10/sound/pci/trident/
Dtrident_memory.c7 * Trident 4DWave-NX memory page allocation (TLB area)
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))
34 /* fill TLB entrie(s) corresponding to page with ptr */
36 /* fill TLB entrie(s) corresponding to page with silence pointer */
37 …page) __set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.sile…
56 /* fill TLB entries -- we need to fill two entries */
67 …__set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_pag… in set_silent_tlb()
[all …]
/kernel/linux/linux-5.10/arch/arc/mm/
Dtlb.c3 * TLB Management (flush/create/diagnostics) for ARC700
33 * -In TLB Flush operations (Metal Fix MMU) there is a explicit command to
34 * flush Micro-TLBS. If TLB Index Reg is invalid prior to TLBIVUTLB cmd,
39 * -Reduced the duration of IRQ lockouts in TLB Flush routines
40 * -Multiple copies of TLB erase code separated into a "single" function
41 * -In TLB Flush routines, interrupt disabling moved UP to retrieve ASID
46 * flush is more than the size of TLB itself.
62 * ARC700 MMU-v1 had a Joint-TLB for Code and Data and is 2 way set-assoc.
67 * Although J-TLB is 2 way set assoc, ARC700 caches J-TLB into uTLBS which has
68 * much higher associativity. u-D-TLB is 8 ways, u-I-TLB is 4 ways.
[all …]
/kernel/linux/linux-5.10/arch/arm/mm/
Dtlb-v7.S3 * linux/arch/arm/mm/tlb-v7.S
8 * ARM architecture version 6 TLB handling functions.
9 * These assume a split I/D TLB.
22 * Invalidate a range of TLB entries in the specified address space.
47 ALT_SMP(mcr p15, 0, r0, c8, c3, 3) @ TLB invalidate U MVA all ASID (shareable)
49 ALT_SMP(mcr p15, 0, r0, c8, c3, 1) @ TLB invalidate U MVA (shareable)
51 ALT_UP(mcr p15, 0, r0, c8, c7, 1) @ TLB invalidate U MVA
63 * Invalidate a range of kernel TLB entries
76 ALT_SMP(mcr p15, 0, r0, c8, c3, 3) @ TLB invalidate U MVA all ASID (shareable)
78 ALT_SMP(mcr p15, 0, r0, c8, c3, 1) @ TLB invalidate U MVA (shareable)
[all …]
Dtlb-v6.S3 * linux/arch/arm/mm/tlb-v6.S
7 * ARM architecture version 6 TLB handling functions.
8 * These assume a split I/D TLB.
23 * Invalidate a range of TLB entries in the specified address space.
46 mcr p15, 0, r0, c8, c6, 1 @ TLB invalidate D MVA (was 1)
48 mcrne p15, 0, r0, c8, c5, 1 @ TLB invalidate I MVA (was 1)
50 mcr p15, 0, r0, c8, c7, 1 @ TLB invalidate MVA (was 1)
61 * Invalidate a range of kernel TLB entries
75 mcr p15, 0, r0, c8, c6, 1 @ TLB invalidate D MVA
76 mcr p15, 0, r0, c8, c5, 1 @ TLB invalidate I MVA
[all …]
/kernel/linux/linux-5.10/arch/powerpc/include/asm/nohash/32/
Dmmu-8xx.h11 * operations when written/read. A TLB entry is created when the Mx_RPN
15 #define SPRN_MI_CTR 784 /* Instruction TLB control register */
19 #define MI_RSV4I 0x08000000 /* Reserve 4 TLB entries */
21 #define MI_IDXMASK 0x00001f00 /* TLB index to be loaded */
50 * about the last instruction TLB miss. When MI_RPN is written, bits in
51 * this register are used to create the TLB entry.
60 * For the instruction TLB, it contains bits that get loaded into the
61 * TLB entry when the MI_RPN is written.
74 * causes a TLB entry to be created for the instruction TLB, using
87 #define SPRN_MD_CTR 792 /* Data TLB control register */
[all …]
/kernel/linux/linux-5.10/tools/perf/pmu-events/arch/x86/skylakex/
Dvirtual-memory.json17 … a page walk of any page size (4K/2M/4M/1G). This implies it missed in all TLB levels, but the wal…
27 …mpleted due to demand data stores whose address translations missed in the TLB and were mapped to …
42 "BriefDescription": "Code miss in all TLB levels causes a page walk that completes. (4K)",
47 … by a code fetch. This implies it missed in the ITLB and further levels of TLB. The page walk can …
52 … "BriefDescription": "Flushing of the Instruction TLB (ITLB) pages, includes 4k/2M/4M pages.",
57 …hes of the big or small ITLB pages. Counting include both TLB Flush (covering all sets) and TLB Se…
78 …blicDescription": "Counts loads that miss the DTLB (Data TLB) and hit the STLB (Second level TLB).…
129 … by a code fetch. This implies it missed in the ITLB and further levels of TLB, but the walk need …
139 … "PublicDescription": "Stores that miss the DTLB (Data TLB) and hit the STLB (2nd Level TLB).",
144 …"BriefDescription": "Store misses in all TLB levels causes a page walk that completes. (All page s…
[all …]
/kernel/linux/linux-5.10/tools/perf/pmu-events/arch/x86/cascadelakex/
Dvirtual-memory.json8 …mpleted due to demand data stores whose address translations missed in the TLB and were mapped to …
23 …"BriefDescription": "Code miss in all TLB levels causes a page walk that completes. (All page size…
28 … by a code fetch. This implies it missed in the ITLB and further levels of TLB. The page walk can …
38 … a page walk of any page size (4K/2M/4M/1G). This implies it missed in all TLB levels, but the wal…
69 …mpleted due to demand data stores whose address translations missed in the TLB and were mapped to …
79 … a page walk of any page size (4K/2M/4M/1G). This implies it missed in all TLB levels, but the wal…
84 … "BriefDescription": "Flushing of the Instruction TLB (ITLB) pages, includes 4k/2M/4M pages.",
89 …hes of the big or small ITLB pages. Counting include both TLB Flush (covering all sets) and TLB Se…
109 …ompleted due to demand data loads whose address translations missed in the TLB and were mapped to …
119 …ompleted due to demand data loads whose address translations missed in the TLB and were mapped to …
[all …]
/kernel/linux/linux-5.10/tools/perf/pmu-events/arch/x86/skylake/
Dvirtual-memory.json3 … a page walk of any page size (4K/2M/4M/1G). This implies it missed in all TLB levels, but the wal…
13 …ompleted due to demand data loads whose address translations missed in the TLB and were mapped to …
23 …ompleted due to demand data loads whose address translations missed in the TLB and were mapped to …
33 …ompleted due to demand data loads whose address translations missed in the TLB and were mapped to …
43 …ed page walk of any page size (4K/2M/4M/1G). This implies it missed in all TLB levels. The page wa…
49 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size…
74 …blicDescription": "Counts loads that miss the DTLB (Data TLB) and hit the STLB (Second level TLB).…
84 … a page walk of any page size (4K/2M/4M/1G). This implies it missed in all TLB levels, but the wal…
94 …mpleted due to demand data stores whose address translations missed in the TLB and were mapped to …
104 …mpleted due to demand data stores whose address translations missed in the TLB and were mapped to …
[all …]
/kernel/linux/linux-5.10/include/linux/
Dio-pgtable.h22 * struct iommu_flush_ops - IOMMU callbacks for TLB and page table management.
24 * @tlb_flush_all: Synchronously invalidate the entire TLB context.
25 * @tlb_flush_walk: Synchronously invalidate all intermediate TLB state
28 * @tlb_flush_leaf: Synchronously invalidate all leaf TLB state for a virtual
30 * @tlb_add_page: Optional callback to queue up leaf TLB invalidation for a
31 * single page. IOMMUs that cannot batch TLB invalidation
60 * @tlb: TLB management callbacks for this set of tables.
77 * TLB maintenance when mapping as well as when unmapping.
101 const struct iommu_flush_ops *tlb; member
173 * the callback routines in cfg->tlb.
[all …]

12345678910>>...42