函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:copy_user_huge_page

函数原型:void copy_user_huge_page(struct page *dst, struct page *src, unsigned long addr_hint, struct vm_area_struct *vma, unsigned int pages_per_huge_page)

返回类型:void

参数:

类型参数名称
struct page *dst
struct page *src
unsigned longaddr_hint
struct vm_area_struct *vma
unsigned intpages_per_huge_page
4746  addr等于addr_hint按位与pages_per_huge_page左移PAGE_SHIFT determines the page size 位的值减1的差的反
4748  struct copy_subpage_arg arg = {dst = dst, src = src, vma = vma, }
4754  如果此条件成立可能性小(为编译器优化)(pages_per_huge_page > MAX_ORDER_NR_PAGES)则
4755  copy_user_gigantic_page(dst, src, addr, vma, pages_per_huge_page)
4757  返回
4760  Process all subpages of the specified huge page with the specified* operation. The target subpage will be processed last to keep its* cache lines hot.
调用者
名称描述
hugetlb_cowHugetlb_cow() should be called with page lock of the original hugepage held.* Called with hugetlb_instantiation_mutex held and pte_page locked so we* cannot race with other handlers or page migration.
do_huge_pmd_wp_page