函数逻辑报告 |
Source Code:mm\page_owner.c |
Create Date:2022-07-27 17:58:33 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:pagetypeinfo_showmixedcount_print
函数原型:void pagetypeinfo_showmixedcount_print(struct seq_file *m, pg_data_t *pgdat, struct zone *zone)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct seq_file * | m | |
pg_data_t * | pgdat | |
struct zone * | zone |
259 | pfn等于内存域第一个页帧的索引 |
261 | unsigned long count[MIGRATE_TYPES] = {0, } |
266 | pfn等于内存域第一个页帧的索引 |
275 | 如果非page则 |
276 | pfn等于@a is a power of 2 value (pfn + 1, MAX_ORDER_NR_PAGES) |
277 | 继续下一循环 |
280 | block_end_pfn等于@a is a power of 2 value (pfn + 1, pageblock_nr_pages) |
281 | block_end_pfn等于两数取小(block_end_pfn, end_pfn) |
285 | 以pfn小于block_end_pfn循环 |
286 | 如果非pfn_valid_within(pfn)则继续下一循环 |
290 | page等于pfn_to_page(pfn) |
298 | freepage_order等于Like page_order(), but for callers who cannot afford to hold the zone lock(page) |
299 | 如果freepage_order小于Free memory management - zoned buddy allocator. 则pfn加等于1UL左移freepage_order位的值减1 |
301 | 继续下一循环 |
304 | 如果PageReserved(page)则继续下一循环 |
307 | page_ext等于lookup_page_ext(page) |
308 | 如果此条件成立可能性小(为编译器优化)(!page_ext)则继续下一循环 |
311 | 如果非st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from则继续下一循环 |
314 | page_owner等于get_page_owner(page_ext) |
317 | 如果pageblock_mt不等于page_mt则 |
318 | 如果is_migrate_cma(pageblock_mt)则count[MIGRATE_MOVABLE]自加 |
320 | 否则count[pageblock_mt]自加 |
323 | pfn等于block_end_pfn |
324 | 退出 |
331 | seq_printf(m, "Node %d, zone %8s ", 全局结点ID, 内存域的惯用名称(NORMAL DMA HIGHMEM)) |
332 | 以i小于MIGRATE_TYPES循环seq_printf(m, "%12lu ", count[i]) |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |