当前位置: 首页 > news >正文

memblock_free_all释放page到buddy,前后nr_free的情况

https://www.cnblogs.com/tolimit/p/5287801.html

在zone_sizes_init 之后,各个node,zone'的page总数已知。但是此时的每个order的空闲链表是空的,也就是无法通过alloc_page这种接口来分配。此时page还在memblock管控,需要memblock释放。释放的函数是free_low_memory_core_early:

mm_init   //init/main.cmem_init(void)   //arch/arm64/mm/init.cmemblock_free_all();void __init memblock_free_all(void)
{unsigned long pages;free_unused_memmap();reset_all_zones_managed_pages();pages = free_low_memory_core_early();totalram_pages_add(pages);
}free_low_memory_core_earlyfor_each_free_mem_range__free_memory_core(start, end);__free_pages_memory(start_pfn, end_pfn);memblock_free_pages(pfn_to_page(start), start, order);__free_pages_core__free_pages_ok__free_one_page
在memblock_free_all之前,各个NUMA的pglist_data的zone下面不同order的nr_free链表数为0:
[    0.000000] ===show_mem_info  after zone_sizes_init[    0.000000] ===show_pgdata_info nodeid 0 
[    0.000000] ===show_zone_info :name : DMAmanaged_pages:7a000spanned_pages:80000present_pages:7c000
[    0.000000]  MAX_ORDER 10 of order :0 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :1 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :2 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :3 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :4 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :5 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :6 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :7 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :8 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :9 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :10 has nr_free 0
[    0.000000] ===show_zone_info :name : DMA32managed_pages:0spanned_pages:0present_pages:0
[    0.000000]  MAX_ORDER 10 of order :0 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :1 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :2 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :3 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :4 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :5 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :6 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :7 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :8 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :9 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :10 has nr_free 0
[    0.000000] ===show_zone_info :name : Normalmanaged_pages:762000spanned_pages:2680000present_pages:780000
[    0.000000]  MAX_ORDER 10 of order :0 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :1 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :2 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :3 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :4 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :5 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :6 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :7 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :8 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :9 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :10 has nr_free 0
[    0.000000] ===show_zone_info :name : Movablemanaged_pages:0spanned_pages:0present_pages:0
[    0.000000]  MAX_ORDER 10 of order :0 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :1 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :2 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :3 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :4 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :5 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :6 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :7 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :8 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :9 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :10 has nr_free 0在memblock_free_all之后,才有,特别是order为10的情况最多,这是看空闲的组成大的buddy:
[    0.000000] ===free_low_mwmory_core_early return pages 7c4864
[    0.000000] ===show_mem_info  after memblock_free_all[    0.000000] ===show_pgdata_info nodeid 0
[    0.000000] ===show_zone_info :name : DMAmanaged_pages:6b9f1spanned_pages:80000present_pages:7c000
[    0.000000]  MAX_ORDER 10 of order :0 has nr_free 5
[    0.000000]  MAX_ORDER 10 of order :1 has nr_free 4
[    0.000000]  MAX_ORDER 10 of order :2 has nr_free 5
[    0.000000]  MAX_ORDER 10 of order :3 has nr_free 4
[    0.000000]  MAX_ORDER 10 of order :4 has nr_free b
[    0.000000]  MAX_ORDER 10 of order :5 has nr_free 4
[    0.000000]  MAX_ORDER 10 of order :6 has nr_free 6
[    0.000000]  MAX_ORDER 10 of order :7 has nr_free 6
[    0.000000]  MAX_ORDER 10 of order :8 has nr_free 6
[    0.000000]  MAX_ORDER 10 of order :9 has nr_free 5
[    0.000000]  MAX_ORDER 10 of order :10 has nr_free 1a9
[    0.000000] ===show_zone_info :name : DMA32managed_pages:0spanned_pages:0present_pages:0
[    0.000000]  MAX_ORDER 10 of order :0 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :1 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :2 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :3 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :4 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :5 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :6 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :7 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :8 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :9 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :10 has nr_free 0
[    0.000000] ===show_zone_info :name : Normalmanaged_pages:758e73spanned_pages:2680000present_pages:780000
[    0.000000]  MAX_ORDER 10 of order :0 has nr_free 1
[    0.000000]  MAX_ORDER 10 of order :1 has nr_free 1
[    0.000000]  MAX_ORDER 10 of order :2 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :3 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :4 has nr_free 1
[    0.000000]  MAX_ORDER 10 of order :5 has nr_free 1
[    0.000000]  MAX_ORDER 10 of order :6 has nr_free 1
[    0.000000]  MAX_ORDER 10 of order :7 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :8 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :9 has nr_free 1
[    0.000000]  MAX_ORDER 10 of order :10 has nr_free 1d63
[    0.000000] ===show_zone_info :name : Movablemanaged_pages:0spanned_pages:0present_pages:0
[    0.000000]  MAX_ORDER 10 of order :0 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :1 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :2 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :3 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :4 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :5 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :6 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :7 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :8 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :9 has nr_free 0
[    0.000000]  MAX_ORDER 10 of order :10 has nr_free 0

http://www.lryc.cn/news/356975.html

相关文章:

  • Django实现websocket
  • 先进制造aps专题九 中国aps行业分析
  • 力扣hot100:23. 合并 K 个升序链表
  • Lightweight Robust Size Aware Cache Management——论文泛读
  • 搜索自动补全-elasticsearch实现
  • 连接远程的kafka【linux】
  • 简单的 Cython 示例
  • Laravel时间处理类Carbon
  • 2024年5月软考架构题目回忆分享
  • 香橙派 AIpro开发板初上手
  • 如何使用DotNet-MetaData识别.NET恶意软件源码文件元数据
  • LeetCode---栈与队列
  • 【教程】利用API接口添加本站同款【每日新闻早早报】-每天自动更新,不占用文章数量
  • 僵尸进程,孤儿进程,守护进程
  • Nuxt3 中使用 ESLint
  • 【Jmeter】性能测试之压测脚本生成,也可以录制接口自动化测试场景
  • Go 编程技巧:零拷贝字符串与切片转换的高效秘籍
  • 音视频开发—FFmpeg 音频重采样详解
  • 统计本地端口占用情况
  • 【MySQL精通之路】SQL优化(1)-查询优化(9)-外部联接优化
  • Python应用开发——30天学习Streamlit Python包进行APP的构建(1)
  • 轻兔推荐 —— 一个好用的软件服务推荐平台
  • LeetCode hot100-57-G
  • 基于Vue uni-app的自定义列表表格信息展示组件
  • 计网(部分在session学习章)
  • TypeScript 枚举
  • (1) 初识QT5
  • 2024年认证杯二阶段数学建模赛题浅析
  • Redis教程(十八):Redis的Redisson的看门狗机制
  • docker-compose 映射端口失败! docker端口映射失败 ,docker映射只能使用老端口,映射无法使用