Linux Kernel Architecture
Chapter3:MemoryManagement allocator (a means to subdivide complete pages into into smaller portions, see Section 3.6.1), then it ...
Chapter3:MemoryManagement unsigned int inuse; /* SLUB: Nr of objects */ }; union { struct { unsigned long private; /* Mapping-pr ...
Chapter3:MemoryManagement ❑ _mapcountindicates how many entries in the page table point to the page. ❑ lruis a list head used to ...
Chapter3:MemoryManagement naming scheme; for example, thePG_lockedconstant defines the bit position inflagsto specify whether a ...
Chapter3:MemoryManagement ❑ PG_writebackis set for pages whose contents are in the process of being written back to a block devi ...
Chapter3:MemoryManagement Recall that page tables are used to establish an association between the virtual address spaces of use ...
Chapter3:MemoryManagement Not only the length but also the way in which the address is split are different on the individual arc ...
Chapter3:MemoryManagement The size of the address area that can be addressed with pointers ofn-bit length is 2nbytes. The kernel ...
Chapter3:MemoryManagement Table 3-2: Functions for Analyzing Page Table Entries. Function Description pgd_val pud_val pmd_val pt ...
Chapter3:MemoryManagement PAGE_ALIGNis another standard macro that must be defined by each architecture (typically inpage.h). It ...
Chapter3:MemoryManagement ❑ _PAGE_ACCESSEDis set automatically by the CPU each time the page is accessed. The kernel reg- ularly ...
Chapter3:MemoryManagement ❑ pte_fileis employed for nonlinear mappings that provide a different view on file contents by manipul ...
Chapter3:MemoryManagement The functions often appear in groups of three to set, delete, and query a specific attribute, for inst ...
Chapter3:MemoryManagement initialized, a simple additional form of memory management is used during the boot process and is disc ...
Chapter3:MemoryManagement start_kernel setup_arch setup_per_cpu_areas build_all_zonelists mem_init setup_per_cpu_pageset Memory ...
Chapter3:MemoryManagement be using two different functions and select the proper one each time it is called with some pre-proces ...
Chapter3:MemoryManagement for_each_online_node(nid) { pg_data_t *pgdat = NODE_DATA(nid); build_zonelists(pgdat); ... } return 0; ...
Chapter3:MemoryManagement <mmzone.h> typedef struct pglist_data { ... struct zonelist node_zonelists[MAX_ZONELISTS]; ... } ...
Chapter3:MemoryManagement mm/page_alloc.c static int __init build_zonelists_node(pg_data_t *pgdat, struct zonelist *zonelist, in ...
Chapter3:MemoryManagement After the first step, the allocation targets in the list are highmem, followed by normal memory and fi ...
«
5
6
7
8
9
10
11
12
13
14
»
Free download pdf