[Suzaku:01397] Re: Linuxのメモリエリアの拡大

mizo email@hidden
2009年 2月 24日 (火) 15:29:46 JST


溝渕です。

mizo wrote:
> 溝渕です。
> 
> 菊地 義和 wrote:
>>> ビルド時にはどのようなエラーメッセージが出力されましたか?
>> 次の内容です。
>> (前略)
>> drivers/built-in.o: In function `devone_open':
>> : undefined reference to `__you_cannot_kmalloc_that_much'
>> make[1]: *** [vmlinux] エラー 1
>> make[1]: ディレクトリ 
>> `/home/atmark/Desktop/source_and_patch/linux-2.6.18-at9' から出ます
>> make: *** [linux] エラー 1
>> (後略)
>>
>> ※devone_openは当方で作成したドライバです。
>>
>> 「devone_open」のなかで 「*kmalloc(size_t size, int flags)」しているので 
>> すが
>> そのサイズを小さくしていったところビルドが通りました。
>> 通ったサイズは64Kバイト程です。
> 
> このエラーメッセージは__you_cannot_kmalloc_that_muchの参照エラーのようで
> すが、kmalloc()の第1引数であるサイズを変更すると出力されなくなりますか?
すみません。kmalloc()で大きなメモリを取得しようとすると上記のエラーメッ
セージが出力されますね。

kmalloc()で割り当てることのできる最大サイズは128KBです。
これよりも大きなメモリを取得するには、ページ単位で取得する
(get_zeroed_page()を使用する)方法や、vmalloc()を使用する方法などがあります。



suzaku メーリングリストの案内