函数逻辑报告 |
Source Code:mm\vmscan.c |
Create Date:2022-07-27 15:43:12 |
Last Modify:2022-05-23 13:41:30 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:shrink_node
函数原型:static bool shrink_node(pg_data_t *pgdat, struct scan_control *sc)
返回类型:bool
参数:
类型 | 参数 | 名称 |
---|---|---|
pg_data_t * | pgdat | |
struct scan_control * | sc |
2703 | reclaim_state等于reclaim_state |
2706 | bool reclaimable = false |
2711 | again : |
2721 | 如果非force_deactivate则 |
2739 | 否则may_deactivate与等于DEACTIVATE_FILE的反 |
2750 | 如果file右移 Scan (total_size >> priority) pages at once 位且非may_deactivate按位与DEACTIVATE_FILE的值则 There is easily reclaimable cold cache in the current node 等于1 |
2764 | 如果非cgroup_reclaim(sc)则 |
2765 | total_high_wmark等于0 |
2773 | 以z小于MAX_NR_ZONES循环 |
2774 | zone等于包含了结点中各内存域的数据结构[z] |
2778 | total_high_wmark加等于high_wmark_pages(zone) |
2786 | anon等于node_page_state(pgdat, NR_INACTIVE_ANON) |
2794 | shrink_node_memcgs(pgdat, sc) |
2796 | 如果reclaim_state则 |
2798 | reclaimed_slab等于0 |
2806 | 如果 Number of pages freed so far during a call to shrink_zones() 减nr_reclaimed则reclaimable = true |
2809 | 如果current_is_kswapd()则 |
2831 | 如果unqueued_dirty恒等于file_taken则设置内存位 |
2878 | 如果reclaimable则 Number of 'reclaimed == 0' runs 等于0 |
2881 | 返回:reclaimable |
名称 | 描述 |
---|---|
shrink_zones | This is the direct reclaim path, for page-allocating processes. We only* try to reclaim pages from zones which will satisfy the caller's allocation* request.* If a zone is deemed to be full of pinned pages then just give it a light |
kswapd_shrink_node | kswapd shrinks a node of pages that are at or below the highest usable* zone that is currently unbalanced.* Returns true if kswapd scanned at least the requested number of pages to* reclaim or if the lack of progress was due to pages under writeback. |
__node_reclaim | Try to free up some pages from this node through reclaim. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |