Function report |
Source Code:mm\huge_memory.c |
Create Date:2022-07-28 16:02:42 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:__split_huge_pmd
Proto:void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, unsigned long address, bool freeze, struct page *page)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| 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 | If page && page != Currently stuck as a macro due to indirect forward reference to* linux/mmzone.h's __section_mem_map_addr() definition:( * pmd) Then Go to out |
| 2320 | If pmd_trans_huge( * pmd) Then |
| 2321 | page = Currently stuck as a macro due to indirect forward reference to* linux/mmzone.h's __section_mem_map_addr() definition:( * pmd) |
| 2322 | If PageMlocked(page) Then LRU accounting for clear_page_mlock() |
| 2324 | Else if Not (pmd_devmap( * pmd) || is_pmd_migration_entry( * pmd)) Then Go to out |
| 2326 | __split_huge_pmd_locked(vma, pmd, start, freeze) |
| 2327 | out : |
| 2328 | spin_unlock(ptl) |
| Name | Describe |
|---|---|
| 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 |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |