标签:内核版本
总结:实际上2.6的代码和3.0的代码已经是今非昔比了,所有的代码都应该按照最新的版本进行解读,当然如果我们的操作环境是旧版本,我们也只好研读了。
两个函数调用了shrink_cache
try_to_free_pages
shrink_zone
文件:mm/page_alloc.c
_alloc_pages函数调用out_of_memory(gfp_mask)
如下是oom_killer的参数,实际上,我根本就不知道系统会
在out of memory的时候调用oom_killer函数,下面的设置
应该是怎样子的,我应该如何调试,这些参数,才能够知道
输出。
我尝试搜索了oom或者下面的管禁止panic_on_oom,可是
一无所知!!
vm.panic_on_oom=0 vm.oom_kill_allocating_task=0 vm.oom_dump_tasks=1 vm.would_have_oomkilled=0
按道理说:如果出现内存不足的情况,应该会调用oom_killer函数
进行进程的销毁,因为会调用如下的打印:
printk("oom-killer: gfp_mask=0x%x\n", gfp_mask);
static inline long PTR_ERR(const void *ptr) { return (long) ptr; } /* * fs/fs-writeback.c */ enum writeback_sync_modes { WB_SYNC_NONE, /* Don‘t wait on anything */ WB_SYNC_ALL, /* Wait on every mapping */ WB_SYNC_HOLD, /* Hold the inode on sb_dirty for sys_sync() */ };
标签:内核版本
原文地址:http://5228690.blog.51cto.com/5218690/1609303