• Home
  • Raw
  • Download

Lines Matching +full:long +full:- +full:ram +full:- +full:code

30 		+--------+ 0xffffffff
32 +--------+ 0xc0000000
36 +--------+ 0x00000000
39 time, but because we need virtual address space for other things - including
40 temporary maps to access the rest of the physical memory - the actual direct
54 * kmap_local_page(), kmap_local_folio() - These functions are used to create
64 These mappings are thread-local and CPU-local, meaning that the mapping
68 CPU-hotplug until the mapping is disposed.
94 Most code can be designed to use thread local mappings. User should
95 therefore try to design their code to avoid the use of kmap() by mapping
108 restrictions imposed on kmap_local_page(). Furthermore, the code between
125 Each call of kmap_atomic() in the kernel creates a non-preemptible section
152 long time but the bulk of high-memory mappings in the kernel are
153 short-lived and only used in one place. This means that the cost of
154 kmap() is mostly wasted in such cases. kmap() was not intended for long
156 strongly discouraged in newer code and the set of the preceding functions
159 On 64-bit systems, calls to kmap_local_page(), kmap_atomic() and kmap() have
160 no real work to do because a 64-bit address space is more than sufficient to
163 * vmap(). This can be used to make a long duration mapping of multiple
187 of RAM into your 32-bit machine. This has a number of consequences:
189 * Linux needs a page-frame structure for each page in the system and the
192 * you can have 896M/sizeof(struct page) page-frames at most; with struct
193 page being 32-bytes that would end up being something in the order of 112G
195 page-frames in that memory...
197 * PAE makes your page tables larger - which slows the system down as more
202 The general recommendation is that you don't use more than 8GiB on a 32-bit
203 machine - although more might work for you and your workload, you're pretty
204 much on your own - don't expect kernel developers to really care much if things
211 .. kernel-doc:: include/linux/highmem.h
212 .. kernel-doc:: mm/highmem.c
213 .. kernel-doc:: include/linux/highmem-internal.h