2013年10月4日

内存管理 初始化(六)vmalloc_init 及 ioremap

摘要: 是不是我错了,本想这个函数会如网上所说将进行非连续内存管理的初始化,但是对于2.6.34的ARM架构而言,该函数实际完成的业务非常少。内存管理的初始化读到此处,我感觉原有的认识存在很大缺陷:(1)内核空间的下限是3G吗?永久映射的PKMAP_BASE已在3G下;(2)低端内存是896M吗?2.6.32的omap4430的VMLLOC_END是1G - 128M,VMALLOC_MIN是1G - 128M -128M;(3)还存在固定映射吗?FIXADDR_SIZE的空间已被FIX_KMAP_BEGIN ~ FIXK_KMAP_END完全占据;(4)I/O空间在初始化已固定映射至VMALLOC_ 阅读全文

posted @ 2013-10-04 22:40 阿加 阅读(2152) 评论(0) 推荐(0) 编辑

内存管理 初始化(五)kmem_cache_init 初始化slab分配器(上)

摘要: 看了下kmem_cache_init,涉及到不同MIGRATE间的buddy system的迁移,kmem_cache的构建,slab分配器头的构建、buddy system的伙伴拆分。对于SMP系统,每个kmem_cache还有各个CPU的arraycache_init,这样每个CPU可以从各自的arraycache_init中获取缓存,如果不足,则从slab分配器中获得;当让slab分配器的三条链表也有一定的缓存作用,如果三条链表都已空了,则需要从buddy system中申请页。在申请页的时候,由于每个zone中都有各个CPU的缓存页per_cpu_pages链表,因此在申请页时既可从p 阅读全文

posted @ 2013-10-04 17:13 阿加 阅读(5187) 评论(1) 推荐(0) 编辑

导航