• Home
  • Raw
  • Download

Lines Matching +full:layer +full:- +full:base +full:- +full:offset

1 .. SPDX-License-Identifier: GPL-2.0
10 feature of all Unix-like systems as time went by. In 1985 the feature was
34 As you can see, with 4KB pages the page base address uses bits 12-31 of the
42 this single table were referred to as *PTE*:s - page table entries.
57 megabytes or even gigabytes in a single high-level page table entry, taking
63 +-----+
65 +-----+
67 | +-----+
68 +-->| P4D |
69 +-----+
71 | +-----+
72 +-->| PUD |
73 +-----+
75 | +-----+
76 +-->| PMD |
77 +-----+
79 | +-----+
80 +-->| PTE |
81 +-----+
87 - **pte**, `pte_t`, `pteval_t` = **Page Table Entry** - mentioned earlier.
92 A typical example is that the `pteval_t` is a 32- or 64-bit value with the
94 architecture-specific bits such as memory protection.
98 table, it was retrofitted to be an array of mapping elements when two-level
102 - **pmd**, `pmd_t`, `pmdval_t` = **Page Middle Directory**, the hierarchy right
105 - **pud**, `pud_t`, `pudval_t` = **Page Upper Directory** was introduced after
106 the other levels to handle 4-level page tables. It is potentially unused,
109 - **p4d**, `p4d_t`, `p4dval_t` = **Page Level 4 Directory** was introduced to
110 handle 5-level page tables after the *pud* was introduced. Now it was clear
116 - **pgd**, `pgd_t`, `pgdval_t` = **Page Global Directory** - the Linux kernel
127 pointers on each level is architecture-defined.::
130 --> +-----+ PTE
131 | ptr |-------> +-----+
132 | ptr |- | ptr |-------> PAGE
137 +-----+ +----> +-----+
138 | ptr |-------> PAGE
148 compile-time augmented to just skip a level when accessing the next lower
151 Page table handling code that wishes to be architecture-neutral, such as the
154 architecture-specific code, so as to be robust to future changes.
187 "Copy-on-Write". Page faults may also happen when frames have been swapped out
193 and "Copy-on-Write" because these subjects are out of scope as they belong to
203 with simple arithmetic on an offset. Accesses to logical addresses are fast
208 physical frames, the kernel invokes the out-of-memory (OOM) killer to make room
214 could use instructions to address (non-shared) memory which does not belong to
216 to a read-only location.
218 If the above-mentioned conditions happen in user-space, the kernel sends a
239 condition resolves to the kernel sending the above-mentioned SIGSEGV signal
246 The functions that look for the offset have names like `*_offset()`, where the
248 corresponding tables, layer by layer, are called `*_alloc`, using the
249 above-mentioned convention to name them after the corresponding types of tables
263 trade-offs, like wasted memory and allocation challenges.