函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |