Linux内核模块对内存使用是否有任何限制,即代码段大小或全局内存量或任何东西。
问问题
909 次
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_MAX_SIZE,它定义了一次调用 kmalloc() 可以分配的最大字节数。
于 2010-08-03T09:31:52.833 回答