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 |