Linux-内存
kswapd_init
kswapd_run
kswapd
kswapd_try_to_sleep
prepare_kswapd_sleep
pgdat_balanced
zone_watermark_ok_safe
balance_pgdat
kswapd_shrink_node
shrink_node
allow_direct_reclaim
//////////////////////////////////////////
alloc_page
alloc_pages
alloc_pages_node
__alloc_pages_nodemask
get_page_from_freelist
zone_watermark_fast
zone_watermark_ok
__alloc_pages_slowpath
wake_all_kswapds
__alloc_pages_direct_reclaim
__alloc_pages_may_oom
out_of_memory
/////////////////////////////////////////
out_of_memory
select_bad_process
oom_evaluate_task
oom_badness
oom_kill_process
/////////////////////////////////////////
drop_caches_sysctl_handler
drop_pagecache_sb
invalidate_mapping_pages
invalidate_inode_page
remove_mapping
/////////////////////////////////////////
__setup_per_zone_wmarks()
{
unsigned long pages_min = min_free_kbytes >> (PAGE_SHIFT - 10)
...
for_each_zone(zone)
{
u64 tmp;
tmp = (u64)pages_min * zone->managed_pages;
do_div(tmp, lowmem_pages);
zone->watermark[WMARK_MIN] = tmp;
tmp = max_t(u64, tmp >> 2,
mult_frac(zone->managed_pages,
watermark_scale_factor, 10000));
zone->watermark[WMARK_LOW] = min_wmark_pages(zone) + tmp;
zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + tmp * 2;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?