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 |