函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:vunmap_page_range

函数原型:static void vunmap_page_range(unsigned long addr, unsigned long end)

返回类型:void

参数:

类型参数名称
unsigned longaddr
unsigned longend
127  BUG_ON(addr >= end)
128  pgd等于a shortcut which implies the use of the kernel's pgd, instead* of a process's(addr)
129  循环
130  next等于When walking page tables, get the address of the next boundary,* or the end address of the range if that comes earlier. Although no* vma end wraps to 0, rounded up __boundary may wrap to 0 throughout.(addr, end)
131  如果pgd_none_or_clear_bad(pgd)则继续下一循环
133  vunmap_p4d_range(pgd, addr, next)
134 pgd自加, addr等于next, addr不等于end循环
调用者
名称描述
unmap_vmap_areaClear the pagetable entries of a given vmap_area
vb_free
unmap_kernel_range_noflushmap_kernel_range_noflush - unmap kernel VM area*@addr: start of the VM area to unmap*@size: size of the VM area to unmap* Unmap PFN_UP(@size) pages at @addr. The VM area @addr and @size* specify should have been allocated using get_vm_area() and its
unmap_kernel_rangemap_kernel_range - unmap kernel VM area and flush cache and TLB*@addr: start of the VM area to unmap*@size: size of the VM area to unmap* Similar to unmap_kernel_range_noflush() but flushes vcache before* the unmapping and tlb after.