Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\hugetlb.c Create Date:2022-07-28 15:25:57
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:update_and_free_page

Proto:static void update_and_free_page(struct hstate *h, struct page *page)

Type:void

Parameter:

TypeParameterName
struct hstate *h
struct page *page
1060  If hstate_is_gigantic(h) && Not gigantic_page_runtime_supported() Then Return
1063  nr_huge_pages--
1064  nr_huge_pages_node[page_to_nid(page)]--
1065  When i < pages_per_huge_page(h) cycle
1066  Atomic flags, some possibly * updated asynchronously &= ~( 1 << PG_locked | 1 << PG_error | 1 << PG_referenced | 1 << PG_dirty | 1 << PG_active | 1 << PG_private | 1 << PG_writeback )
1071  VM_BUG_ON_PAGE(hugetlb_cgroup_from_page(page), page)
1072  set_compound_page_dtor(page, NULL_COMPOUND_DTOR)
1073  Turn a non-refcounted page (->_refcount == 0) into refcounted with* a count of one.
1074  If hstate_is_gigantic(h) Then
1075  destroy_compound_gigantic_page(page, huge_page_order(h))
1076  free_gigantic_page(page, huge_page_order(h))
1077  Else
1078  __free_pages(page, huge_page_order(h))
Caller
NameDescribe
__free_huge_page
free_pool_huge_pageFree huge page from pool from next node to free.* Attempt to keep persistent huge pages more or less* balanced over allowed nodes.* Called with hugetlb_lock locked.
dissolve_free_huge_pageDissolve a given free hugepage into free buddy pages. This function does* nothing for in-use hugepages and non-hugepages.* This function returns values like below:* -EBUSY: failed to dissolved free hugepages or the hugepage is in-use