Linux:memory: THP: [迷惑行为] 要看源代码的必要性
最近在总结之前THP引出的一个问题,发现了一个让人迷惑的问题,记录总结一下过程。
参考文档:
https://lwn.net/Articles/423584/ 这里记录了引入THP的原因历史。
源码:transhuge.rst
从文档里说:Should the allocation succeed, the huge page will be filled, any existing small pages in the new page’s address range will be released, and the huge page will be inserted into the VMA. If no huge pages are available, the kernel falls back to small pages and the application never knows the difference.
这里是说一开始就按照巨页分配,如果找不到合适的巨页才falls-back到之前的逻辑分配4KB小页。而且有相关的fall-back的计数。
但是当看具体的计数的时候,发现对不起来,自己写一个小程序申请不超过2M的内存,从计数上看:AnonHugePages这个没有值,也就是没有申请到巨页,但是thp_fault_fallback计数依然是0。所以说为什么没有fallback计数呢?
[root@10 15881]# cat smaps | grep -A 13 heap
013d8000-013f9000 rw-p 00:00 0 [heap]
Size: 132 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Rss: 4 kB
Pss: 4 kB
Private_Dirty: 4 kB
Referenc
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!