Function report | 
Source Code:mm\ksm.c | 
Create Date:2022-07-28 15:41:31 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:mp_and_merge_page - first see if page can be merged into the stable tree;* if not, compare checksum to previous and if it's the same, see if page can* be inserted into the unstable tree, or merged with a page already there and
Proto:static void cmp_and_merge_page(struct page *page, struct rmap_item *rmap_item)
Type:void
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct page * | page | |
| struct rmap_item * | rmap_item | 
| 2044 | bool max_page_sharing_bypass = false | 
| 2046 | stable_node = page_stable_node(page) | 
| 2047 | If stable_node Then | 
| 2055 | If when listed for migration != Recently migrated nodes of stable tree, pending proper placement && when listed from stable tree == stable_node Then Return | 
| 2062 | If Not is_page_sharing_candidate(stable_node) Then max_page_sharing_bypass = true | 
| 2068 | If kpage == page && when listed from stable tree == stable_node Then | 
| 2070 | Return | 
| 2075 | If kpage Then | 
| 2080 | If Not err Then | 
| 2091 | Return | 
| 2100 | checksum = calc_checksum(page) | 
| 2101 | If when unstable != checksum Then | 
| 2102 | when unstable = checksum | 
| 2103 | Return | 
| 2113 | lock for reading | 
| 2117 | lease a read lock | 
| 2122 | If Not err Then Return | 
| 2127 | If tree_rmap_item Then | 
| 2130 | kpage = ry_to_merge_two_pages - take two identical pages and prepare them* to be merged into one page | 
| 2145 | If kpage Then | 
| 2151 | stable_node = stable_tree_insert - insert stable tree node pointing to new ksm page* into the stable tree.* This function returns the stable tree node just allocated on success,* NULL otherwise. | 
| 2152 | If stable_node Then | 
| 2166 | If Not stable_node Then | 
| 2167 | break_cow(tree_rmap_item) | 
| 2170 | Else if split Then | 
| 2180 | If Not Return true if the page was successfully locked Then Return | 
| 2182 | split_huge_page(page) | 
| Name | Describe | 
|---|---|
| ksm_do_scan | ksm_do_scan - the ksm scanner main worker function.*@scan_npages: number of pages we want to scan before we return. | 
| 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  |