函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\ksm.c Create Date:2022-07-27 17:15:30
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:rmap_walk_ksm

函数原型:void rmap_walk_ksm(struct page *page, struct rmap_walk_control *rwc)

返回类型:void

参数:

类型参数名称
struct page *page
struct rmap_walk_control *rwc
2595  search_new_forks等于0
2597  VM_BUG_ON_PAGE(!A KSM page is one of those write-protected "shared pages" or "merged pages"* which KSM maps into multiple mms, wherever identical anonymous page content* is found in VM_MERGEABLE vmas. It's a PageAnon page, pointing not to any, page)
2603  VM_BUG_ON_PAGE(!PageLocked(page), page)
2605  stable_node等于page_stable_node(page)
2606  如果非stable_node则返回
2608  again :
2610  anon_vma等于 when stable
2614  cond_resched()
2615  anon_vma_lock_read(anon_vma)
2620  cond_resched()
2621  vma等于vma
2624  addr等于 + low bits used for flags below 按位与KSM_FLAG_MASK的反
2626  如果addr小于Our start address within vm_mm. addr大于等于The first byte after our end addresswithin vm_mm. 则继续下一循环
2634  如果mm恒等于The address space we belong to. 恒等于search_new_forks则继续下一循环
2637  如果 for skipping uninterested vma for skipping uninterested vma(vma, passed to rmap_one() and invalid_vma())则继续下一循环
2640  如果非 executed on each vma where page is mapped(page, vma, addr, passed to rmap_one() and invalid_vma())则
2641  anon_vma_unlock_read(anon_vma)
2642  返回
2644  如果 for checking traversing termination condition for checking traversing termination condition(page)则
2645  anon_vma_unlock_read(anon_vma)
2646  返回
2649  anon_vma_unlock_read(anon_vma)
2651  如果非search_new_forks自加则转到:again
调用者
名称描述
rmap_walk