函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\mprotect.c Create Date:2022-07-27 16:20:34
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:change_pmd_range

函数原型:static inline unsigned long change_pmd_range(struct vm_area_struct *vma, pud_t *pud, unsigned long addr, unsigned long end, pgprot_t newprot, int dirty_accountable, int prot_numa)

返回类型:unsigned long

参数:

类型参数名称
struct vm_area_struct *vma
pud_t *pud
unsigned longaddr
unsigned longend
pgprot_tnewprot
intdirty_accountable
intprot_numa
195  pages等于0
196  nr_huge_updates等于0
199  start等于0
201  pmd等于pmd_offset(pud, addr)
202  循环
205  next等于pmd_addr_end(addr, end)
215  如果非is_swap_pmd( * pmd)且非pmd_devmap( * pmd)且Used when setting automatic NUMA hinting protection where it is* critical that a numa hinting PMD is not confused with a bad PMD.则转到:next
220  如果非start
227  如果is_swap_pmd( * pmd)或pmd_trans_huge( * pmd)或pmd_devmap( * pmd)则
228  如果nextaddr不等于HPAGE_PMD_SIZE
230  否则
234  如果nr_ptes
235  如果nr_ptes恒等于HPAGE_PMD_NR
236  pages加等于HPAGE_PMD_NR
237  nr_huge_updates自加
241  转到:next
246  this_pages等于change_pte_range(vma, pmd, addr, next, newprot, dirty_accountable, prot_numa)
248  pages加等于this_pages
249  :
250  cond_resched()
251 pmd自加, addr等于next, addr不等于end循环
253  如果startmmu_notifier_invalidate_range_end( & range)
256  如果nr_huge_updatescount_vm_numa_events(NUMA_HUGE_PTE_UPDATES, nr_huge_updates)
258  返回:pages
调用者
名称描述
change_pud_range