Linux Kernel Architecture
Chapter3:MemoryManagement The meanings of the first three list heads are clear from the explanations in the above sections. free ...
Chapter3:MemoryManagement The fifth and last part (statistics fields that are of no further interest for our purposes) ofstruct ...
Chapter3:MemoryManagement The state ing_cpucache_upis then set toPARTIAL_AC, meaning thatarray_cacheinstances can be allocated i ...
Chapter3:MemoryManagement the alignment factor as long as this is possible for the given object size. As a result, 2, 4,...objec ...
Chapter3:MemoryManagement ralign = align; } /* 4) Store it. */ align = ralign; ... A new instance ofstruct kmem_cacheis allocate ...
Chapter3:MemoryManagement As discussed in Section 3.6.3, each slab head is followed by an array with as many entries as there ar ...
Chapter3:MemoryManagement if (cachep->colour_off < align) cachep->colour_off = align; cachep->colour = left_over/cac ...
Chapter3:MemoryManagement Now that we have dealt with the slab arrangement, there are still two more things to do when creating ...
Chapter3:MemoryManagement kmalloc kmem_cache_alloc __cache_alloc __ __cache_alloc cache_alloc_refill cache_grow Object in per-CP ...
Chapter3:MemoryManagement The kernel must now findarray_cache->batchcountunused objects to refill the per-CPU cache by first ...
Chapter3:MemoryManagement Recall from Figure 3-47 that the kernel uses an interesting system to keep track of free entries: The ...
Chapter3:MemoryManagement The kernel restarts counting at 0 when the maximum number of colors is reached; this automatically res ...
Chapter3:MemoryManagement Include object into cache Move remaining cache entries upward Yes No kmem_cache_free _ _cache_free cac ...
Chapter3:MemoryManagement struct kmem_list3 *l3; for (i = 0; i < nr_objects; i++) { void *objp = objpp[i]; struct slab *slabp ...
Chapter3:MemoryManagement Destroying Caches Thekmem_cache_destroyfunction must be invoked to destroy a complete cache in which t ...
Chapter3:MemoryManagement mm/slab.c static struct cache_sizes malloc_sizes[] = { #define CACHE(x) { .cs_size = (x) }, #if (PAGE_ ...
Chapter3:MemoryManagement cachep = __find_general_cachep(size, flags); if (unlikely(ZERO_OR_NULL_PTR(cachep))) return NULL; retu ...
Chapter3:MemoryManagement ❑ The meaning of thetranslation lookaside bufferis abstracted to refer to a mechanism that translates ...
Chapter3:MemoryManagement /* Manipulate page tables */ ... flush_tlb_mm(oldmm); The sequence of operations — cache flushing, mem ...
Chapter3:MemoryManagement The buddy system is centered around the idea of splitting and recombining larger continuous blocks of ...
«
11
12
13
14
15
16
17
18
19
20
»
Free download pdf