函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\page_alloc.c Create Date:2022-07-27 16:34:12
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Go through the free lists for the given migratetype and remove* the smallest available page from the freelists

函数原型:static __always_inline struct page *__rmqueue_smallest(struct zone *zone, unsigned int order, int migratetype)

返回类型:struct page

参数:

类型参数名称
struct zone *zone
unsigned intorder
intmigratetype
2190 current_order小于Free memory management - zoned buddy allocator. 循环
2191  area等于伙伴系统空闲内存页[current_order]的地址
2192  page等于get_page_from_free_area(area, migratetype)
2193  如果非page则继续下一循环
2195  del_page_from_free_area(page, area)
2196  The order of subdivision here is critical for the IO subsystem
2197  set_pcppage_migratetype(page, migratetype)
2198  返回:page
2201  返回:NULL
调用者
名称描述
__rmqueue_cma_fallback
__rmqueueDo the hard work of removing an element from the buddy allocator.* Call me with the zone->lock already held.
rmqueueAllocate a page from the given zone. Use pcplists for order-0 allocations.