私はMarvel PXA986ボードを作業していますが、ボードファイルを見るとほとんど使用されていないことがわかりますmemblock_reserve
。しかし、すぐ後ろに電話がかかっているのがわかりmemblock_reserve
ます。記憶を保存した直後に削除することはどういう意味ですか?memblock_free
memblock_remove
誰でもmemblock APIを説明できますか?
答え1
質問を理解したかどうかはわかりませんが、おそらくこれは少なくとも正しい方向を指す指示です。 APIに関しては、ソースコードを読む以外は何もしないと思います。
これはソースが言った内容の散文版に過ぎません。私が確認したバージョンは3.11.7です。
mm/memblock.c
1) memblock_reserve() が特定の条件で memblock_double_array() を呼び出す memblock_add_region() を呼び出してから、特定の条件で memblock_free() を再び呼び出すと、関連するビットが素早く混在します。これは、カーネルが空き領域を見つけて配列がいっぱいになるのを防ぐために、実際のメモリ領域を指す配列を前の配列に移動する必要がある場合に発生します(267-278行を参照mm/memblock.c
)。
要約すると: memblock_reserve() の直後に memblock_free() と memblock_remove() が呼び出されるのを見ると、これは必ずしもエラー条件ではないと思います。