Function report |
Source Code:mm\hmm.c |
Create Date:2022-07-28 16:37:22 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:hmm_vma_walk_pmd
Proto:static int hmm_vma_walk_pmd(pmd_t *pmdp, unsigned long start, unsigned long end, struct mm_walk *walk)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| pmd_t * | pmdp | |
| unsigned long | start | |
| unsigned long | end | |
| struct mm_walk * | walk |
| 373 | hmm_vma_walk = private |
| 380 | again : |
| 385 | If thp_migration_supported() && is_pmd_migration_entry(pmd) Then |
| 390 | i = addr - start >> PAGE_SHIFT determines the page size |
| 391 | npages = end - addr >> PAGE_SHIFT determines the page size |
| 394 | hmm_range_need_fault(hmm_vma_walk, pfns, npages, 0, & fault, & write_fault) |
| 396 | If fault || write_fault Then |
| 401 | Return 0 |
| 402 | Else if Not pmd_present(pmd) Then Return hmm_pfns_fill(start, end, range, corresponding CPU page table entry points to poisoned memory) |
| 405 | If pmd_devmap(pmd) || pmd_trans_huge(pmd) Then |
| 415 | pmd = pmd_read_atomic(pmdp) |
| 417 | If Not pmd_devmap(pmd) && Not pmd_trans_huge(pmd) Then Go to again |
| 420 | i = addr - start >> PAGE_SHIFT determines the page size |
| 430 | If pmd_bad(pmd) Then Return hmm_pfns_fill(start, end, range, corresponding CPU page table entry points to poisoned memory) |
| 433 | ptep = pte_offset_map(pmdp, addr) |
| 434 | i = addr - start >> PAGE_SHIFT determines the page size |
| 439 | If r Then |
| 445 | If pgmap Then |
| 452 | put_dev_pagemap(pgmap) |
| 453 | pgmap = NULL |
| 458 | Return 0 |
| 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 |