函数逻辑报告 |
Source Code:mm\ksm.c |
Create Date:2022-07-27 17:15:26 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:ksm_might_need_to_copy
函数原型:struct page *ksm_might_need_to_copy(struct page *page, struct vm_area_struct *vma, unsigned long address)
返回类型:struct page
参数:
类型 | 参数 | 名称 |
---|---|---|
struct page * | page | |
struct vm_area_struct * | vma | |
unsigned long | address |
2563 | anon_vma等于page_anon_vma(page) |
2567 | 如果page_stable_node(page)且非ksm_run按位与KSM_RUN_UNMERGE的值则返回:page |
2570 | 否则如果非anon_vma则 |
2571 | 返回:page |
2572 | 否则如果Root of this anon_vma tree 恒等于root且 Our offset within mapping. 恒等于linear_page_index(vma, address)则 |
2574 | 返回:page |
2576 | 如果非PageUptodate(page)则返回:page |
2579 | new_page等于alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, address) |
2580 | 如果new_page则 |
2581 | copy_user_highpage(new_page, page, address, vma) |
2583 | SetPageDirty(new_page) |
2584 | __SetPageUptodate(new_page) |
2585 | __SetPageLocked(new_page) |
2588 | 返回:new_page |
名称 | 描述 |
---|---|
unuse_pte | No need to decide whether this PTE shares the swap entry with others,* just let do_wp_page work it out if a write is requested later - to* force COW, vm_page_prot omits write permission from any private vma. |
do_swap_page | We enter with non-exclusive mmap_sem (to exclude vma changes,* but allow concurrent faults), and pte mapped but not yet locked.* We return with pte unmapped and unlocked.* We return with the mmap_sem locked or unlocked in the same cases |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |