函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |