比如high为4,而low为2 。那么第一遍历时,将大小为16(分配阶为4)的页框块一份为2 。通过list_add()将后面的8个连续页框块加入下级链表(分配阶为3),下级链表通过将area指针自减即可得到,后8个页框块的指针也通过page+size获得,而page仍然指向最初的页框块首页框 。此时还要对分配阶为3的链表更新nr_free,以及通过set_page_order()对后8个页框块设置一些标志 。
第二次遍历将前面8个页框块继续一分为二,将后4个页框块加入area所指向的下级链表(分配阶为2) 。第三次遍历时,循环条件已经不再满足,因此返回前4个页框块首页框的描述符地址page 。
static inline void expand(struct zone *zone, struct page *page,int low, int high, struct free_area *area,int migratetype){unsigned long size = 1 << high;while (high > low) {area--;high--;size >>= 1;VM_BUG_ON(bad_range(zone, &page[size]));list_add(&page[size].lru, &area->free_list[migratetype]);area->nr_free++;set_page_order(&page[size], high);}}static inline void set_page_order(struct page *page, int order){set_page_private(page, order);__SetPageBuddy(page);}

文章插图
- 人类体内有多少对染色体 人的染色体有多少对?
- 艺术类出国留学机构 艺术生留学条件
- 聚英考研网官网
- 拼多多每日整点神券怎么领?拼多多优惠券类型有哪些?
- 小学语文常见的病句类型 小学病句类型有哪些
- 工商管理类具体包括哪些专业 工商管理类包括什么
- 风水摆件铜钟 风水铜钟是什么意思
- 形煞的种类及化解方法 风水形煞图解大全
- 各地小吃的做法大全 各类小吃做法
- 挖掘机操作证
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
