使用grub的memmap的預留內存時系統死機問題的一個解決方案

今天在測試文件系統時,改了以下grub的啓動參數,從memmap=2G$1G改爲memmap=8G$1G,然後寫文件的時候,寫了幾個文件,系統就不響應了。剛開始還以爲是文件系統的問題,排除了死鎖、內存越界等情況後,忽然注意到,文件系統掛載時,系統發出的一個warning。


然後我想着會不會跟這個有關呢。然後用dmesg看看相關信息。注意到在dmesg的開頭有bios關於內存的信息


我預留的內存區域剛好跨過了兩個區域

ACPI:[0x00000000dfff0000-0x00000000dfffffff]
reserved:[0x00000000e0000000-0x000000023fffffff]

於是寫文件的時候,文件系統覆蓋了這個區域上面的數據,就可能會死機了。於是我把grub參數改爲memmap=6G$4G,正好對應於physical RAM map的最後一個usable區域,這樣再運行文件系統,就沒死機情況了。而這也解釋了原來的參數memmap=2G$1G可以正常運行的原因:這個區域剛好落在第二個usable區域。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章