函数逻辑报告 |
Source Code:mm\memory.c |
Create Date:2022-07-27 16:10:25 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:do_cow_fault
函数原型:static vm_fault_t do_cow_fault(struct vm_fault *vmf)
返回类型:vm_fault_t
参数:
类型 | 参数 | 名称 |
---|---|---|
struct vm_fault * | vmf |
3669 | vma等于Target VMA |
3672 | 如果此条件成立可能性小(为编译器优化)(anon_vma_prepare(vma))则返回:VM_FAULT_OOM |
3675 | Page handler may use for COW fault 等于alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, Faulting virtual address ) |
3676 | 如果非Page handler may use for COW fault 则返回:VM_FAULT_OOM |
3682 | 返回:VM_FAULT_OOM |
3685 | ret等于The mmap_sem must have been held on entry, and may have been* released depending on flags and vma->vm_ops->fault() return value.* See filemap_fault() and __lock_page_retry(). |
3686 | 如果此条件成立可能性小(为编译器优化)(ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE | VM_FAULT_RETRY))则转到:uncharge_out |
3688 | 如果ret按位与VM_FAULT_DONE_COW则返回:ret |
3696 | put_page(->fault handlers should return a* page here, unless VM_FAULT_NOPAGE* is set (which is also implied by* VM_FAULT_ERROR).) |
3697 | 如果此条件成立可能性小(为编译器优化)(ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE | VM_FAULT_RETRY))则转到:uncharge_out |
3699 | 返回:ret |
3700 | uncharge_out : |
3701 | mem_cgroup_cancel_charge(Page handler may use for COW fault , Cgroup cow_page belongs to , false) |
3703 | 返回:ret |
名称 | 描述 |
---|---|
do_fault | We enter with non-exclusive mmap_sem (to exclude vma changes,* but allow concurrent faults) |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |