1

Linuxカーネルモジュールによるメモリ使用量、つまりコードセグメントのサイズやグローバルメモリの量などに制限はありますか?

4

1 に答える 1

5
  • 2.6.35 では、ロードするモジュールの長さが 64 MB を超えると、load_module() が無効になります: http://lxr.linux.no/#linux+v2.6.35/kernel/module.c#L2118
  • vmalloc() は、モジュールにスペースを割り当てるために使用されます -- これは、物理メモリで利用可能なよりも多くのページを割り当てようとすると失敗します (これはおそらく、RAM が少ない組み込みのものでのみ問題になるでしょう)
  • さらに、kzalloc() (および kmalloc()) が使用されます。使用するアロケーター (SLAB、SLOB、SLUB) によっては、制限がある場合もあります。SLAB は、kmalloc() への 1 回の呼び出しで割り当てることができる最大バイト数を定義する KMALLOC_MAX_SIZE を定義します。
于 2010-08-03T09:31:52.833 に答える