函数逻辑报告 |
Source Code:mm\memory.c |
Create Date:2022-07-27 16:10:39 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:do_numa_page
函数原型:static vm_fault_t do_numa_page(struct vm_fault *vmf)
返回类型:vm_fault_t
参数:
类型 | 参数 | 名称 |
---|---|---|
struct vm_fault * | vmf |
3816 | vma等于Target VMA |
3818 | page_nid等于NUMA_NO_NODE |
3821 | bool migrated = false |
3824 | flags等于0 |
3831 | Page table lock.* Protects pte page table if 'pte'* is not NULL, otherwise pmd.等于pte_lockptr(The address space we belong to. , Pointer to pmd entry matching* the 'address' ) |
3832 | 加自旋锁 |
3834 | pte_unmap_unlock(Pointer to pte entry matching* the 'address'. NULL if the page* table hasn't been allocated., Page table lock.* Protects pte page table if 'pte'* is not NULL, otherwise pmd.) |
3835 | 转到:out |
3842 | old_pte等于Start a pte protection read-modify-write transaction, which* protects against asynchronous hardware modifications to the pte |
3844 | pte等于pte_mkyoung(pte) |
3845 | 如果was_writable则pte等于pte_mkwrite(pte) |
3851 | 如果非page则 |
3852 | pte_unmap_unlock(Pointer to pte entry matching* the 'address'. NULL if the page* table hasn't been allocated., Page table lock.* Protects pte page table if 'pte'* is not NULL, otherwise pmd.) |
3853 | 返回:0 |
3857 | 如果PageCompound(page)则 |
3858 | pte_unmap_unlock(Pointer to pte entry matching* the 'address'. NULL if the page* table hasn't been allocated., Page table lock.* Protects pte page table if 'pte'* is not NULL, otherwise pmd.) |
3859 | 返回:0 |
3870 | 如果非pte_write(pte)则flags或等于TNF_NO_GROUP |
3877 | 如果page_mapcount(page)大于1且Flags, see mm.h. 按位与VM_SHARED则flags或等于TNF_SHARED |
3880 | last_cpupid等于page_cpupid_last(page) |
3881 | page_nid等于page_to_nid(page) |
3882 | target_nid等于numa_migrate_prep(page, vma, Faulting virtual address , page_nid, & flags) |
3884 | pte_unmap_unlock(Pointer to pte entry matching* the 'address'. NULL if the page* table hasn't been allocated., Page table lock.* Protects pte page table if 'pte'* is not NULL, otherwise pmd.) |
3885 | 如果target_nid恒等于NUMA_NO_NODE则 |
3891 | migrated等于migrate_misplaced_page(page, vma, target_nid) |
3892 | 如果migrated则 |
3893 | page_nid等于target_nid |
3894 | flags或等于TNF_MIGRATED |
3895 | 否则flags或等于TNF_MIGRATE_FAIL |
3898 | out : |
3899 | 如果page_nid不等于NUMA_NO_NODE则task_numa_fault(last_cpupid, page_nid, 1, flags) |
3901 | 返回:0 |
名称 | 描述 |
---|---|
handle_pte_fault | These routines also need to handle stuff like marking pages dirty* and/or accessed for architectures that don't do it in hardware (most* RISC architectures) |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |