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