上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 伙伴系统分配内存以2的整数幂次的页数为单位。提供的API主要分为分配类与释放类。 1.分配类 1.1unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order) 返回分配的内存的虚拟地址。 1.2unsigned long ge 阅读全文
posted @ 2018-08-26 21:35 bluebluebluesky 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 1.全局变量赋值 1.1high_memory 以上全局变量在bootmem_init中赋值 1.2mem_map 赋值调用过程如下 1.3物理页框数统计 赋值调用流程 1.4highest_memmap_pfn,最大页框号 赋值调用流程 1.5totalram_pages,伙伴系统初始化完成后可用 阅读全文
posted @ 2018-08-26 21:05 bluebluebluesky 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 原本由bootmem管理的内存在mem_init函数中交由伙伴系统管理。 1.free_unused_memmap_node 相邻的membank间可能存在空洞,但在bootmem阶段这些空洞页也分配了page结构体。该函数的作用是找到这些page结构体所占用的内存并且释放掉。 2.移交bootme 阅读全文
posted @ 2018-08-24 21:39 bluebluebluesky 阅读(1155) 评论(0) 推荐(0) 编辑
摘要: Linux管理内存分阶段抽象,用数据结构管理。先用节点集合管理内存,然后用zone的集合管理节点,再用页的集合管理zone. pglist_data结构描述节点 typedef struct pglist_data { struct zone node_zones[MAX_NR_ZONES]; st 阅读全文
posted @ 2018-08-18 22:21 bluebluebluesky 阅读(285) 评论(0) 推荐(0) 编辑
摘要: Linux异常处理体系结构 Linux异常体系之vector_stub宏解析 Linux异常体系之stubs_offset Linux中断体系结构 ARM系统调用 阅读全文
posted @ 2018-08-16 22:16 bluebluebluesky 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 1.全局变量 resource结构体定义如下,指针parent、sibling、child用于构建树状结构。 用到的全局变量 2.request_resource() 阅读全文
posted @ 2018-08-16 21:58 bluebluebluesky 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 1.从bootmem分配一页 2.找出zero_page对应的页框描述符page结构体 3.flush_dcache_page(empty_zero_page); 这个函数里面涉及一些cache即buffer的硬件操作,有时间可以详细分析,有助于加深多不同类型cache的理解。 这里汇编代码的作用是 阅读全文
posted @ 2018-08-15 20:45 bluebluebluesky 阅读(673) 评论(0) 推荐(0) 编辑
摘要: devicemaps_init的参数为machine_desc结构体。以s3c6410为例,在arch/arm/mach-s3c64xx/mach-smdk6410.c中使用上述宏声明machine_desc结构体 devicemaps_init的作用: 1.为中断向量分配内存,为中断向量虚拟地址映 阅读全文
posted @ 2018-08-15 20:41 bluebluebluesky 阅读(451) 评论(0) 推荐(0) 编辑
摘要: bootmem_init()函数执行完成后,linux启动初期的bootmem分配器就初始化完成了,可以调用bootmem提供的API分配内存。 这些API在include/linux/bootmem.h中定义 1.alloc_bootmem与alloc_bootmem_pages的不同之处在于分配 阅读全文
posted @ 2018-08-14 20:47 bluebluebluesky 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 该函数设置: 1.pgdata节点的成员 2.pgdata->zone的成员 3.初始化zone->free_area 4.初始化zone所包含的所有页对应的页框描述符page结构体 注意上面的SetPageReserved(page)在代码中搜索不到该函数,在include/linux/page_ 阅读全文
posted @ 2018-08-13 21:24 bluebluebluesky 阅读(243) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 10 下一页