Lines Matching +full:memory +full:- +full:mapped

4 High Memory Handling
11 What Is High Memory?
14 High memory (highmem) is used when the size of physical memory approaches or
15 exceeds the maximum size of virtual memory. At that point it becomes
16 impossible for the kernel to keep all of the available physical memory mapped
18 the pieces of physical memory that it wants to access.
20 The part of (physical) memory not covered by a permanent mapping is what we
26 kernel entry/exit. This means the available virtual memory space (4GiB on
32 +--------+ 0xffffffff
34 +--------+ 0xc0000000
38 +--------+ 0x00000000
40 This means that the kernel can at most map 1GiB of physical memory at any one
41 time, but because we need virtual address space for other things - including
42 temporary maps to access the rest of the physical memory - the actual direct
62 These mappings are thread-local and CPU-local, meaning that the mapping
66 CPU-hotplug until the mapping is disposed.
79 On CONFIG_HIGHMEM=n kernels and for low memory pages this returns the
81 temporarily mapped. Therefore, users may call a plain page_address()
90 thread which mapped it.
112 Each call of kmap_atomic() in the kernel creates a non-preemptible section
122 the page was mapped to must be released with kunmap().
130 long time but the bulk of high-memory mappings in the kernel are
131 short-lived and only used in one place. This means that the cost of
137 On 64-bit systems, calls to kmap_local_page(), kmap_atomic() and kmap() have
138 no real work to do because a 64-bit address space is more than sufficient to
139 address all the physical memory whose pages are permanently mapped.
165 of RAM into your 32-bit machine. This has a number of consequences:
167 * Linux needs a page-frame structure for each page in the system and the
170 * you can have 896M/sizeof(struct page) page-frames at most; with struct
171 page being 32-bytes that would end up being something in the order of 112G
173 page-frames in that memory...
175 * PAE makes your page tables larger - which slows the system down as more
180 The general recommendation is that you don't use more than 8GiB on a 32-bit
181 machine - although more might work for you and your workload, you're pretty
182 much on your own - don't expect kernel developers to really care much if things
189 .. kernel-doc:: include/linux/highmem.h
190 .. kernel-doc:: include/linux/highmem-internal.h