Facebook的Roman Gushcin發送的這個patch把Gigantic巨頁(SIZE:1GB)與CMA進行了一個完美的結合:
https://lkml.org/lkml/2020/3/9/1135
CMA有利于在開機的時候就預留一大片內存,但是這片內存如果不被cma_alloc()申請走,則可被movable的頁面復用,并不會造成直接的浪費。
而Linux的Gigantic hugepage則要求能夠在運行時通過
echo 10 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
這樣的方法能申請一定數量的1GB Gigantic巨頁,由于運行時內存碎片化掉了,這種1GB的Gigantic巨頁很可能申請不到。通過CMA的方法,則可以讓這種申請在運行時成功。
所以整個故事是:
CMA比如預留4GB內存專門供給hugetlb,如果沒有人去進行Gigantic巨頁設置,則這個4GB就平時被applications的movable頁面使用掉了。
如果有人通過
echo 1 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
拿走1GB,則這1GB就被從CMA拿走,剩下的3GB仍然可以被movable page使用。
用戶可以在開機的時候通過hugetlb_cma bootargs來設置CMA的大小,如果是NUMA架構的(假設有4個NUMA NODE),設置hugetlb_cma=4GB大小,則每個NUMA節點會分配到1GB大小的CMA。
從代碼看起來,現在申請1GB的gigantic頁面的時候,如果有這種CMA區域,是先走CMA區域的:
釋放的時候則是也先看有無這種CMA:
如果這種CMA根本不存在,還是會走到老的代碼路徑:
alloc_contig_pages(nr_pages, gfp_mask, nid, nodemask);
和
free_contig_range(page_to_pfn(page), 1 << order);
-
內存
+關注
關注
8文章
3055瀏覽量
74331 -
CMA
+關注
關注
0文章
27瀏覽量
9828
原文標題:Gigantic巨頁與CMA的完全結合
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
國巨貼片電阻溫度范圍是多少?按什么標準執行的?
國巨厚膜電阻0402:高性能與廣泛應用的完美結合
![國<b class='flag-5'>巨</b>厚膜電阻0402:高性能與廣泛應用的完美<b class='flag-5'>結合</b>](https://file1.elecfans.com/web3/M00/01/DF/wKgZPGdZNCWAILGIAAEWYDTVols773.png)
直流充電樁CMA報告是什么?
![直流充電樁<b class='flag-5'>CMA</b>報告是什么?](https://file1.elecfans.com/web3/M00/01/75/wKgZPGdT_1OANTQtAAB-oMlcpI0369.png)
英國CMA有條件批準沃達豐與Three合并
國巨產品在筆記本電腦上的應用
英國CMA批準谷歌與Anthropic合作關系
國巨貼片電容的標簽如何表示?
昂洋科技談國巨貼片電阻的尺寸代碼和選購
![昂洋科技談國<b class='flag-5'>巨</b>貼片電阻的尺寸代碼和選購](https://file1.elecfans.com/web2/M00/C6/8A/wKgZomYKYgyAZlGaAABBRa6XRlc286.png)
低功耗輸出頻率32.768kHz的汽車用晶振SG-3031CMA
衢州季豐獲得CMA擴項資質認定證書
國巨陶瓷貼片電容應用的領域
![國<b class='flag-5'>巨</b>陶瓷貼片電容應用的領域](https://file1.elecfans.com/web2/M00/C3/F8/wKgZomXv8K6AKmYnAABfiHFTML0740.png)
真正國巨電容如何識別?
![真正國<b class='flag-5'>巨</b>電容如何識別?](https://file1.elecfans.com/web2/M00/EC/AB/wKgZomZn_lmAbajtAAByBgw7ZO8148.png)
國巨貼片電容和普通貼片電容有什么不同?
國巨電容的特性和國巨電容命名規則
![國<b class='flag-5'>巨</b>電容的特性和國<b class='flag-5'>巨</b>電容命名規則](https://file1.elecfans.com/web2/M00/D9/6F/wKgZomYqBDKAO09QAAILf6byG18730.png)
國巨電容應該怎么挑選?
![國<b class='flag-5'>巨</b>電容應該怎么挑選?](https://file1.elecfans.com/web2/M00/C7/69/wKgaomYKVaOAS-GPAABZor2JQXc379.png)
評論