| Function report | 
| Source Code: mm\vmscan.c | Create Date:2022-07-28 14:19:16 | 
| Last Modify:2022-05-23 13:41:30 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:shrink_node
Proto:static bool shrink_node(pg_data_t *pgdat, struct scan_control *sc)
Type:bool
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| pg_data_t * | pgdat | |
| struct scan_control * | sc | 
| 2703 | reclaim_state = reclaim_state | 
| 2706 | bool reclaimable = false | 
| 2711 | again : | 
| 2721 | If Not force_deactivate Then | 
| 2739 | Else may_deactivate &= ~DEACTIVATE_FILE | 
| 2750 | If file >> Scan (total_size >> priority) pages at once && Not (may_deactivate & DEACTIVATE_FILE) Then There is easily reclaimable cold cache in the current node = 1 | 
| 2764 | If Not cgroup_reclaim(sc) Then | 
| 2765 | total_high_wmark = 0 | 
| 2769 | free = sum_zone_node_page_state(node_id, NR_FREE_PAGES) | 
| 2770 | file = node_page_state(pgdat, NR_ACTIVE_FILE) + node_page_state(pgdat, NR_INACTIVE_FILE) | 
| 2773 | When z < MAX_NR_ZONES cycle | 
| 2774 | zone = node_zones[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 | If reclaim_state Then | 
| 2798 | reclaimed_slab = 0 | 
| 2806 | If Number of pages freed so far during a call to shrink_zones() - nr_reclaimed Then reclaimable = true | 
| 2809 | If current_is_kswapd() Then | 
| 2827 | If writeback && writeback == taken Then Atomically set a bit in memory | 
| 2831 | If unqueued_dirty == file_taken Then Atomically set a bit in memory | 
| 2878 | If reclaimable Then Number of 'reclaimed == 0' runs = 0 | 
| 2881 | Return reclaimable | 
| Name | Describe | 
|---|---|
| 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. | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |