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

菊地 義和 email@hidden
2009年 2月 24日 (火) 16:12:28 JST


溝渕様

菊地です。回答ありがとうございます。

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

了解しました。
実現の方法を検討しなおします。

また、今後のために教えていただきたいのですが
ビルド(リンク)時にLinux割り当てられるメモリの最大サイズは
決まっているのでしょうか。
其れから、これを変更することはできるのでしょうか。

よろしくお願いいたします。
以上



----- Original Message ----- 
From: "mizo" <email@hidden>
To: "SUZAKU general discussion list" <email@hidden>
Cc: "菊地 義和" <email@hidden>
Sent: Tuesday, February 24, 2009 3:29 PM
Subject: Re: [Suzaku:01395] Re: Linuxのメモリエリアの拡大


> 溝渕です。
>
> 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 メーリングリストの案内