Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\vmscan.c Create Date:2022-07-28 14:20:07
Last Modify:2022-05-23 13:41:30 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:A zone is low on free memory or too fragmented for high-order memory

Proto:void wakeup_kswapd(struct zone *zone, gfp_t gfp_flags, int order, enum zone_type classzone_idx)

Type:void

Parameter:

TypeParameterName
struct zone *zone
gfp_tgfp_flags
intorder
enum zone_typeclasszone_idx
3973  If Not Returns true if a zone has pages managed by the buddy allocator.* All the reclaim decisions have to use this function rather than* populated_zone(). If the whole zone is reserved then we can easily* end up with populated_zone() && !managed_zone(). Then Return
3976  If Not cpuset_zone_allowed(zone, gfp_flags) Then Return
3978  pgdat = zone_pgdat
3980  If kswapd_classzone_idx == MAX_NR_ZONES Then kswapd_classzone_idx = classzone_idx
3982  Else kswapd_classzone_idx = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(kswapd_classzone_idx, classzone_idx)
3985  kswapd_order = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(kswapd_order, order)
3986  If Not waitqueue_active -- locklessly test for waiters on the queue*@wq_head: the waitqueue to test for waiters* returns true if the wait list is not empty* NOTE: this function is lockless and requires care, incorrect usage _will_ Then Return
3990  If Number of 'reclaimed == 0' runs >= Maximum number of reclaim retries without progress before the OOM* killer is consider the only way forward. || Returns true if there is an eligible zone balanced for the request order* and classzone_idx && Not pgdat_watermark_boosted(pgdat, classzone_idx) Then
4000  If Not (gfp_flags & Caller can reclaim ) Then wakeup_kcompactd(pgdat, order, classzone_idx)
4002  Return
4005  trace_mm_vmscan_wakeup_kswapd(node_id, classzone_idx, order, gfp_flags)
4007  wake_up_interruptible( & kswapd_wait)
Caller
NameDescribe
rmqueueAllocate a page from the given zone. Use pcplists for order-0 allocations.
wake_all_kswapds