函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:__free_huge_page

函数原型:static void __free_huge_page(struct page *page)

返回类型:void

参数:

类型参数名称
struct page *page
1146  h等于page_hstate(page)
1147  nid等于page_to_nid(page)
1148  spool等于page_private(page)
1152  VM_BUG_ON_PAGE(page_count(page), page)
1153  VM_BUG_ON_PAGE(page_mapcount(page), page)
1155  set_page_private(page, 0)
1156  See page-flags.h for PAGE_MAPPING_FLAGS = NULL
1157  restore_reserve等于Private page markings that may be used by the filesystem that owns the page* for its own purposes.* - PG_private and PG_private_2 cause releasepage() and co to be invoked
1158  Private page markings that may be used by the filesystem that owns the page* for its own purposes.* - PG_private and PG_private_2 cause releasepage() and co to be invoked
1168  如果非restore_reserve
1175  如果Subpool accounting for freeing and unreserving pages.* Return the number of global page reservations that must be dropped.* The return value may only be different than the passed value (delta)* in the case where a subpool minimum size must be maintained.恒等于0则restore_reserve = true
1179  加自旋锁
1180  clear_page_huge_active(page)
1181  Should be called with hugetlb_lock held
1183  如果restore_reserveresv_huge_pages自加
1186  如果Internal hugetlb specific page flag. Do not use outside of the hugetlb* code
1187  删除链表项
1188  ClearPageHugeTemporary(page)
1189  update_and_free_page(h, page)
1190  否则如果surplus_huge_pages_node[nid]则
1192  删除链表项
1193  update_and_free_page(h, page)
1194  surplus_huge_pages自减
1195  surplus_huge_pages_node[nid]自减
1196  否则
1197  arch_clear_hugepage_flags(page)
1198  enqueue_huge_page(h, page)
1200  自旋锁解锁
调用者
名称描述
free_hpage_workfn
free_huge_page