uClinuxにおけるメモリ割り当て
現在uClinux上のソフト開発をしている者です。
開発中のソフトを長時間実行すると、
Allocation of length 69632 from process 7238 (cut) failed
などと言うカーネルメッセージ(dmesg)が出力され、最終的にOSごとクラッシュしてしまいます。
色々とハックした結果、どうやら新たなプロセスにメモリを割り付けようとしたが、利用可能な連続領域が足りなくなったことが原因のようだと推定しています。
そこで、ページ情報(struct page)を可視化するツールを作成し、中身を見たところ、flagsが0で、_countが非0(具体的には1)のページが多数見られました。
カーネルのメモリ管理上、このような状態はありうるのでしょうか?または、flagsが0の場合、_countのフィールドは無視されるのでしょうか?
カーネルのソースを追っていけばわかるのでしょうが、ご存知の方がいらっしゃればご教示いただきたく。
よろしくお願いします。