我發現,物理內存被分爲等級如下(內存交錯):如何在linux內核中使用連續內存?
rank0: [0-512KB] [2048KB-2560KB] [4096KB-4608KB] ...
rank1: [512KB-1024KB] [2560KB-3072KB] [4608KB-5120KB] ...
rank2: [1024KB-1536KB] [3072KB-3584KB] [5120KB-...
rank3: [1536KB-2048KB] [3584KB-4096KB] ...
Linux內核得到這些交叉存取內存。所以,linux內核看到的物理內存不是連續的。如果我對此有錯,請糾正我。
我一直在尋找的Linux內核源代碼,我的課程。
在創建sysfs(/ sys/devices/system/memory)時,linux內核會創建這些可用物理內存的特定大小(我的系統上爲128 MB)的部分(memory0,memory1,...)。在這些目錄中使用狀態文件可以使部分脫機/聯機。 (Memory Hotplug)
因此,通過這些部分來表示物理存儲器被散射。所以,如果我使任何部分脫機,將使分散的內存它指向不可用。
我要讓這些部分是指連續的內存。是這樣的:
memory0 : 0-128 MB
memory1 : 128-256 MB
....
所以,當我做一些部分下線,然後與該部分連續物理內存變得不可用。那麼,我可以讓linux內核將物理內存看成是連續的而不是交錯的嗎?
糾正我,如果我錯了,任何關於這一點。
謝謝。
任何人都可以幫助我嗎? –
你的處理器架構是什麼?你說記憶被分解成行列。實際上,這很大程度上取決於處理器內存管理硬件的工作方式。 – user2284570
對不起,已經很晚了。我忙於中期工作。我指的是一般架構,並非特定於我的機器。對困惑感到抱歉。但是對於這個討論,假設系統支持這種交錯,那麼有什麼辦法可以禁用它嗎? –