3. kernel note
kernel doc http://kernel.org/doc/html/v4.19/index.html
- 3.1. linux kernel map
- 3.2. linux kernel debug tools
- 3.3. DTS设备树详解
- 3.4. linux 通用双向循环链表
- 3.5. linux 内核函数
- 3.5.1. 内核函数汇总
- 3.5.1.1. add_static_vm_early
- 3.5.1.2. adjust_lowmem_bounds
- 3.5.1.3. alloc_init_pmd
- 3.5.1.4. alloc_init_pud
- 3.5.1.5. alloc_node_mem_map
- 3.5.1.6. ARRAY_SIZE
- 3.5.1.7. arch_get_next_mach
- 3.5.1.8. arch_local_irq_disable
- 3.5.1.9. arm_adjust_dma_zone
- 3.5.1.10. arm_initrd_init
- 3.5.1.11. arm_pte_alloc
- 3.5.1.12. arm_memblock_init
- 3.5.1.13. arm_mm_memblock_reserve
- 3.5.1.14. boot_cpu_init
- 3.5.1.15. build_mem_type_table
- 3.5.1.16. cacheid_init
- 3.5.1.17. cache_is_vipt
- 3.5.1.18. cache_is_vipt_aliasing
- 3.5.1.19. cache_is_vipt_nonaliasing
- 3.5.1.20. cache_is_vivt_asid_tagged
- 3.5.1.21. cahceid
- 3.5.1.22. cachepolicy
- 3.5.1.23. calc_memmap_size
- 3.5.1.24. calculatode_totalpage
- 3.5.1.25. check_block
- 3.5.1.26. check_off
- 3.5.1.27. choose_memblock_flags
- 3.5.1.28. clamp
- 3.5.1.29. cma_activate_area
- 3.5.1.30. cma_alloc
- 3.5.1.31. cma_bitmap_aligned_mask
- 3.5.1.32. cma_bitmap_cligned_offset
- 3.5.1.33. cma_bitmap_maxno
- 3.5.1.34. cma_bitmap_pages_to_bits
- 3.5.1.35. cma_clear_bitmap
- 3.5.1.36. cma_declare_contiguous
- 3.5.1.37. cma_early_percent_memory
- 3.5.1.38. cma_for_each_area
- 3.5.1.39. cma_get_base
- 3.5.1.40. cma_get_name
- 3.5.1.41. cma_get_size
- 3.5.1.42. cma_init_reserved_areas
- 3.5.1.43. cma_init_reserved_mem
- 3.5.1.44. cma_release
- 3.5.1.45. __cpu_active_mask
- 3.5.1.46. cpu_has_aliasing_icache
- 3.5.1.47. cpu_init
- 3.5.1.48. cpu_logical_map
- 3.5.1.49. cpu_max_bits_warn
- 3.5.1.50. cpu_proc_init
- 3.5.1.51. CPU_TO_FDT32
- 3.5.1.52. cpuid_init_hwcaps
- 3.5.1.53. create_mapping
- 3.5.1.54. __create_mapping
- 3.5.1.55. current_stack_pointer
- 3.5.1.56. current_thread_info
- 3.5.1.57. dev_get_cma_area
- 3.5.1.58. dev_set_cma_area
- 3.5.1.59. devicemaps_init
- 3.5.1.60. dma_alloc_from_contiguous
- 3.5.1.61. dma_contiguous_early_fixup
- 3.5.1.62. dma_contiguous_remap
- 3.5.1.63. dma_contiguous_reserve
- 3.5.1.64. dma_contiguous_set_default
- 3.5.1.65. dma_release_from_contiguous
- 3.5.1.66. do_early_param
- 3.5.1.67. dt_mem_next_cell
- 3.5.1.68. dump_stack_set_arch_desc
- 3.5.1.69. early_alloc
- 3.5.1.70. early_alloc_aligned
- 3.5.1.71. early_cma
- 3.5.1.72. early_fixmap_shutdown
- 3.5.1.73. early_ioremap_init
- 3.5.1.74. early_ioremap_setup
- 3.5.1.75. early_init_dt_add_memory_arch
- 3.5.1.76. early_init_dt_alloc_reserved_memory_arch
- 3.5.1.77. early_init_dt_check_for_initrd
- 3.5.1.78. __early_init_dt_declare_initrd
- 3.5.1.79. early_init_dt_reserve_memory_arch
- 3.5.1.80. early_init_dt_scan_chosen
- 3.5.1.81. early_init_dt_scan_memory
- 3.5.1.82. early_init_dt_sacn_nodes
- 3.5.1.83. early_init_dt_scan_root
- 3.5.1.84. early_init_dt_verify
- 3.5.1.85. early_init_fdt_reserve_self
- 3.5.1.86. early_init_fdt_scan_reserved_mem
- 3.5.1.87. early_mm_init
- 3.5.1.88. early_pte_alloc
- 3.5.1.89. early_trap_init
- 3.5.1.90. elf_hwcap_fixup
- 3.5.1.91. end_of_stack
- 3.5.1.92. FD_ALIGN
- 3.5.1.93. fdt_boot_cpuid_phys
- 3.5.1.94. fdt_check_header
- 3.5.1.95. fdt_check_node_offset
- 3.5.1.96. fdt_check_prop_offset
- 3.5.1.97. fdt_first_property_offset
- 3.5.1.98. fdt_get_property_by_offset
- 3.5.1.99. fdt_header_size_
- 3.5.1.100. fdt_header_size
- 3.5.1.101. fdt_init_reserved_mem
- 3.5.1.102. fdt_get_header
- 3.5.1.103. fdt_get_mem_rsv
- 3.5.1.104. fdt_get_name
- 3.5.1.105. fdt_get_property_namelen
- 3.5.1.106. fdt_get_string
- 3.5.1.107. fdt_getprop
- 3.5.1.108. fdt_getprop_namelen
- 3.5.1.109. fdt_last_comp_version
- 3.5.1.110. fdt_magic
- 3.5.1.111. fdt_mem_rsv
- 3.5.1.112. fdt_next_node
- 3.5.1.113. fdt_next_tag
- 3.5.1.114. fdt_off_dt_strings
- 3.5.1.115. fdt_offset_ptr
- 3.5.1.116. fdt_offset_ptr_
- 3.5.1.117. fdt_reserved_mem_save_node
- 3.5.1.118. FDT_RO_PROBE
- 3.5.1.119. fdt_ro_probe_
- 3.5.1.120. __fdt_scan_reserved_mem
- 3.5.1.121. fdt_size_dt_strings
- 3.5.1.122. fdt_size_dt_struct
- 3.5.1.123. fdt_string_eq
- 3.5.1.124. fdt_totalsize
- 3.5.1.125. fill_pmd_pags
- 3.5.1.126. find_limits
- 3.5.1.127. fix_to_virt
- 3.5.1.128. fixmap_pmd
- 3.5.1.129. flush_pmd_entry
- 3.5.1.130. get_cr
- 3.5.1.131. __get_cpu_architecture
- 3.5.1.132. icache_is_pipt
- 3.5.1.133. icache_is_vipt_aliasing
- 3.5.1.134. icache_is_vivt_asid_tagged
- 3.5.1.135. iotable_init
- 3.5.1.136. init_default_cache_policy
- 3.5.1.137. init_utsname
- 3.5.1.138. initial_pmd_value
- 3.5.1.139. isspace
- 3.5.1.140. is_highmem_idx
- 3.5.1.141. is_smp
- 3.5.1.142. KERNEL_END
- 3.5.1.143. KERNEL_START
- 3.5.1.144. kmap_init
- 3.5.1.145. kuser_init
- 3.5.1.146. list_add_tail
- 3.5.1.147. list_for_each_entry
- 3.5.1.148. local_irq_disable
- 3.5.1.149. lookup_processor
- 3.5.1.150. lookup_processor_type
- 3.5.1.151. __map_init_section
- 3.5.1.152. map_lowmem
- 3.5.1.153. memblock_add
- 3.5.1.154. memblock_add_range
- 3.5.1.155. memblock_addrs_overlap
- 3.5.1.156. memblock_alloc_base
- 3.5.1.157. memblock_alloc_base_nid
- 3.5.1.158. memblock_alloc_internal
- 3.5.1.159. memblock_alloc_node_nopanic
- 3.5.1.160. memblock_alloc_range
- 3.5.1.161. memblock_alloc_range_nid
- 3.5.1.162. memblock_allow_resize
- 3.5.1.163. memblock_bottom_up
- 3.5.1.164. memblock_cap_size
- 3.5.1.165. memblock_double_array
- 3.5.1.166. memblock_end_of_DRAM
- 3.5.1.167. memblock_find_in_range
- 3.5.1.168. memblock_find_in_range_node
- 3.5.1.169. __memblock_find_range_bottom_up
- 3.5.1.170. __memblock_find_range_top_down
- 3.5.1.171. memblock_free
- 3.5.1.172. memblock_insert_region
- 3.5.1.173. memblock_is_hotpluggable
- 3.5.1.174. memblock_is_mirror
- 3.5.1.175. memblock_is_nomap
- 3.5.1.176. memblock_is_region_memory
- 3.5.1.177. memblock_is_region_reserved
- 3.5.1.178. memblock_isolate_range
- 3.5.1.179. memblock_merge_regions
- 3.5.1.180. memblock_overlaps_region
- 3.5.1.181. memblock_phys_alloc
- 3.5.1.182. memblock_resion_memory_base_pfn
- 3.5.1.183. memblock_region_memory_end_pfn
- 3.5.1.184. memblock_remove_range
- 3.5.1.185. memblock_remove
- 3.5.1.186. memblock_remove_region
- 3.5.1.187. memblock_reserve
- 3.5.1.188. memblock_search
- 3.5.1.189. memblock_start_of_DRAM
- 3.5.1.190. movable_node_is_enabled
- 3.5.1.191. nextprop
- 3.5.1.192. next_arg
- 3.5.1.193. __next_mem_range
- 3.5.1.194. __next_mem_range_rev
- 3.5.1.195. nr_cpumask_bits
- 3.5.1.196. of_compat_cmp
- 3.5.1.197. _OF_DECLARE
- 3.5.1.198. of_fdt_device_is_available
- 3.5.1.199. of_fdt_is_compatible
- 3.5.1.200. of_flat_dt_is_compatible
- 3.5.1.201. of_flat_dt_match_machine
- 3.5.1.202. of_get_flat_dt_prop
- 3.5.1.203. of_get_flat_dt_root
- 3.5.1.204. of_scan_flat_dt
- 3.5.1.205. page_address_htable
- 3.5.1.206. page_address_init
- 3.5.1.207. PAGE_OFFSET
- 3.5.1.208. __page_to_pfn
- 3.5.1.209. parameq
- 3.5.1.210. parse_args
- 3.5.1.211. parse_early_options
- 3.5.1.212. parse_early_param
- 3.5.1.213. parse_one
- 3.5.1.214. __per_cpu_offset
- 3.5.1.215. per_cpu_offset
- 3.5.1.216. PFN_DOWN
- 3.5.1.217. PFN_PHYS
- 3.5.1.218. pfn_pte
- 3.5.1.219. PFN_UP
- 3.5.1.220. PHYS_OFFSET
- 3.5.1.221. PHYS_PFN
- 3.5.1.222. __phys_to_pfn
- 3.5.1.223. __phys_to_virt
- 3.5.1.224. phys_to_virt
- 3.5.1.225. pgd_addr_end
- 3.5.1.226. pgd_index
- 3.5.1.227. pgd_offset
- 3.5.1.228. pgd_offset_k
- 3.5.1.229. pgdat_end_pfn
- 3.5.1.230. __pgprot
- 3.5.1.231. pgrot_val
- 3.5.1.232. pmd_addr_end
- 3.5.1.233. pmd_bad
- 3.5.1.234. pmd_clear
- 3.5.1.235. pmd_empty_section_gap
- 3.5.1.236. pmd_none
- 3.5.1.237. pmd_off_k
- 3.5.1.238. pmd_offset
- 3.5.1.239. pmd_page_vaddr
- 3.5.1.240. __pmd_populate
- 3.5.1.241. pmd_populate_kernel
- 3.5.1.242. pmd_val
- 3.5.1.243. populate_zone
- 3.5.1.244. prepare_page_table
- 3.5.1.245. raw_local_irq_disable
- 3.5.1.246. raw_smp_processor_id
- 3.5.1.247. rmem_cma_device_init
- 3.5.1.248. rmem_cma_device_release
- 3.5.1.249. rmem_cma_setup
- 3.5.1.250. rmem_dma_setup
- 3.5.1.251. RESERVEDMEM_OF_DECLARE
- 3.5.1.252. __reserved_mem_alloc_size
- 3.5.1.253. __reserved_mem_check_root
- 3.5.1.254. __reserved_mem_init_node
- 3.5.1.255. __rmem_check_for_overlap
- 3.5.1.256. __round_mask
- 3.5.1.257. set_cpu_active
- 3.5.1.258. set_cpu_online
- 3.5.1.259. set_task_stack_end_magic
- 3.5.1.260. setup_dma_zone
- 3.5.1.261. setup_machine_fdt
- 3.5.1.262. setup_processor
- 3.5.1.263. skip_spaces
- 3.5.1.264. smp_setup_processor_id
- 3.5.1.265. start_kernel
- 3.5.1.266. TASKE_SIZE
- 3.5.1.267. task_thread_info
- 3.5.1.268. __va
- 3.5.1.269. vectors_base
- 3.5.1.270. vectors_high
- 3.5.1.271. vm_area_add_early
- 3.5.1.272. vm_reseve_area_early
- 3.5.1.273. vmalloc_min
- 3.5.1.274. zone_absent_pages_in_node
- 3.5.1.275. zone_init_internals
- 3.5.1.276. zone_movable_is_highmem
- 3.5.1.277. zone_pcp_init
- 3.5.1.278. zone_spanned_pages_in_node
- 3.5.2. Linux内核API之模块机制
- 3.5.3. Linux内核API之进程管理
- 3.5.4. Linux内核API之进程调度
- 3.5.5. Linux内核API之中断机制
- 3.5.6. Linux内核API之内存管理
- 3.5.7. Linux内核API之定时机制
- 3.5.8. Linux内核API之同步机制
- 3.5.9. Linux内核API之文件系统
- 3.5.10. Linux内核API之设备管理
- 3.5.1. 内核函数汇总
- 3.6. kernel queue note
- 3.7. 进程管理与调度
- 3.7.1. 进程描述
- 3.7.2. 进程创建
- 3.7.3. 进程运行
- 3.7.4. 进程调度
- 3.7.5. 调度普通进程-完全公平调度器CFS
- 3.7.5.1. CFS调度器概述
- 3.7.5.2. CFS调度器负荷权重load_weight
- 3.7.5.3. 虚拟时钟vruntime和调度延迟
- 3.7.5.4. CFS队列操作
- 3.7.5.5. pick_next_task_fair选择下一个被调度的进程
- 3.7.5.6. task_tick_fair周期性调度器
- 3.7.5.7. 唤醒抢占
- 3.7.5.8. WAKE_AFFINE机制
- 3.7.6. thread_info与内核栈stack的关系
- 3.8. linux系统调用
- 3.9. kernel 启动流程
- 3.10. linux 内存管理
- 3.11. linux并发控制机制