Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:Do the hard work of removing an element from the buddy allocator.* Call me with the zone->lock already held.

Proto:static __always_inline struct page *__rmqueue(struct zone *zone, unsigned int order, int migratetype, unsigned int alloc_flags)

Type:struct page

Parameter:

TypeParameterName
struct zone *zone
unsigned intorder
intmigratetype
unsigned intalloc_flags
2714  retry :
2715  page = Go through the free lists for the given migratetype and remove* the smallest available page from the freelists
2716  If Value for the false possibility is greater at compile time(!page) Then
2717  If migratetype == MIGRATE_MOVABLE Then page = __rmqueue_cma_fallback(zone, order)
2720  If Not page && Try finding a free buddy page on the fallback list and put it on the free* list of requested migratetype, possibly along with other pages from the same* block, depending on fragmentation avoidance heuristics. Returns true if Then Go to retry
2725  trace_mm_page_alloc_zone_locked(page, order, migratetype)
2726  Return page
Caller
NameDescribe
rmqueue_bulkObtain a specified number of elements from the buddy allocator, all under* a single hold of the lock, for efficiency. Add them to the supplied list.* Returns the number of new pages which were placed at *list.
rmqueueAllocate a page from the given zone. Use pcplists for order-0 allocations.