函数逻辑报告 |
Source Code:mm\huge_memory.c |
Create Date:2022-07-27 17:36:51 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:__split_huge_pmd
函数原型:void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, unsigned long address, bool freeze, struct page *page)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct vm_area_struct * | vma | |
pmd_t * | pmd | |
unsigned long | address | |
bool | freeze | |
struct page * | page |
2306 | mmu_notifier_range_init( & range, MMU_NOTIFY_CLEAR, 0, vma, The address space we belong to. , address & HPAGE_PMD_MASK, (address & HPAGE_PMD_MASK) + HPAGE_PMD_SIZE) |
2309 | mmu_notifier_invalidate_range_start( & range) |
2310 | ptl等于pmd_lock(The address space we belong to. , pmd) |
2317 | 如果page且page不等于Currently stuck as a macro due to indirect forward reference to* linux/mmzone.h's __section_mem_map_addr() definition:( * pmd)则转到:out |
2320 | 如果pmd_trans_huge( * pmd)则 |
2324 | 否则如果非pmd_devmap( * pmd)或is_pmd_migration_entry( * pmd)的值则转到:out |
2326 | __split_huge_pmd_locked(vma, pmd, start, freeze) |
2327 | out : |
2328 | 自旋锁解锁 |
名称 | 描述 |
---|---|
wp_huge_pmd | `inline' is required to avoid gcc 4.1.2 build error |
change_pmd_range | |
queue_pages_pmd | queue_pages_pmd() has four possible return values:* 0 - pages are placed on the right node or queued successfully |
split_huge_pmd_address | |
zap_pmd_range |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |