我的 Linux 内核版本是 2.6.34.13
CPU 是 Powerpc。
我想在用户进程和内核模块中完全禁用 OOM-killer。
通过配置以下参数,我禁用了 oom 杀手。
vm.overcommit_memory = 2
vm.overcommit_ratio = 100
在这种情况下,malloc()
返回可用地址,直到分配了所有(物理内存 + 交换)区域。如果所有区域都已分配,它将返回 NULL 并且 OOM 杀手将不会执行。
但是,kmalloc()
使用 GFP_KERNEL 参数怎么样?如果 ZONE_NORMAL 区域被完全分配,kmalloc()
返回 NULL?和OOM杀手不执行?