Linux Kernel Stack Overflow/Linux 内核栈溢出(续)
前面曾提到Linux 2.6.x内核在X86 32位架构上可以配置内核栈大小(在进行内核编译时,Kernel hacking下进行配置,默认8K,配置之后对应的宏为CONFIG_4KSTACKS),具体生效代码可以看:
http://lxr.linux.no/#linux+v2.6.36/arch/x86/include/asm/page_32_types.h
#ifdef CONFIG_4KSTACKS #define THREAD_ORDER 0 #else #define THREAD_ORDER 1 #endif #define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
通过CONFIG_4KSTACKS宏来定义THREAD_SIZE大小,但是在2.6.37后的内核代码里都已经找不到这个定义了:
http://lxr.linux.no/#linux+v2.6.37/arch/x86/include/asm/page_32_types.h
http://lxr.linux.no/#linux+v2.6.38/arch/x86/include/asm/page_32_types.h
http://lxr.linux.no/#linux+v3.1/arch/x86/include/asm/page_32_types.h
后来一查才知道CONFIG_4KSTACKS已经被移除了:https://lkml.org/lkml/2010/6/29/107,好吧,继续8K内核栈。
转载请保留地址:http://www.lenky.info/archives/2012/02/1035 或 http://lenky.info/?p=1035
备注:如无特殊说明,文章内容均出自Lenky个人的真实理解而并非存心妄自揣测来故意愚人耳目。由于个人水平有限,虽力求内容正确无误,但仍然难免出错,请勿见怪,如果可以则请留言告之,并欢迎来信讨论。另外值得说明的是,Lenky的部分文章以及部分内容参考借鉴了网络上各位网友的热心分享,特别是一些带有完全参考的文章,其后附带的链接内容也许更直接、更丰富,而我只是做了一下归纳&转述,在此也一并表示感谢。关于本站的所有技术文章,欢迎转载,但请遵从CC创作共享协议,而一些私人性质较强的心情随笔,建议不要转载。
法律:根据最新颁布的《信息网络传播权保护条例》,如果您认为本文章的任何内容侵犯了您的权利,请以Email或书面等方式告知,本站将及时删除相关内容或链接。