Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752130AbbEFIU6 (ORCPT ); Wed, 6 May 2015 04:20:58 -0400 Received: from out114-136.biz.mail.alibaba.com ([205.204.114.136]:49160 "EHLO out21.biz.mail.alibaba.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751300AbbEFIUs (ORCPT ); Wed, 6 May 2015 04:20:48 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R671e4;FP=0|-1|-1|-1|0|-1|-1|-1;HT=r46d02005;MF=hillf.zj@alibaba-inc.com;PH=DS;RN=2;RT=2;SR=0; Reply-To: "Hillf Danton" From: "Hillf Danton" To: "'long.wanglong'" Cc: "linux-kernel" References: <0b8901d087d4$eafcd8c0$c0f68a40$@alibaba-inc.com> In-Reply-To: <0b8901d087d4$eafcd8c0$c0f68a40$@alibaba-inc.com> Subject: Re: [RFC] kernel random segmentation fault? Date: Wed, 06 May 2015 16:20:18 +0800 Message-ID: <0b8a01d087d5$7d3a9740$77afc5c0$@alibaba-inc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQKwIys+0x5PwfxKs/Kz6hiKgPT4npuvY4dg Content-Language: zh-cn Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1942 Lines: 71 > > Hi all: > > I meet a kernel problem about the random segmentation fault(x86_64). In my testcase, the size of local variables exceeds 20MB. > when run the testcase, it will cause segmentation fault(because the default stack size limit is 8192KB). > when I increase the stack size limit to 1024000KB(ulimit -s 1024000), the testcase will pass. > > But when I run the testcase 100 times, it will cause random segmentation fault. > > Maybe the commit fee7e49d45149fba60156f5b59014f764d3e3728 "mm: propagate error from stack expansion even for guard page" > cause this problems, when I revert it, the testcase will not cause random segmentation fault problem. > > Can anyone give some ideas about this problem? > > Best Regards > Wang Long > > ############ Test Environment ############# > > # uname -a > Linux ivybridge 4.1.0-rc2+ #3 SMP PREEMPT Wed May 6 10:46:57 CST 2015 x86_64 x86_64 x86_64 GNU/Linux > > > ############ The Testcase ################ > > #include > #include > #include > > #define KB *1024 > #define MB *(1024*1024) > #define GB *(1024*1024*1024) > > int main(int argc, char** argv) > { > int ret; > struct rlimit rlim; > > rlim.rlim_cur=20 MB; > rlim.rlim_max=20 MB; Can you please get rlimit before setting it? And try again without reverting fee7e49d45? > ret = setrlimit(RLIMIT_AS, &rlim); > if ( 0 > ret) > { > perror("setrlimit failed"); > exit(1); > } > > printf("setrlimit success\n"); > > char tmp[20 MB]; > int i = 0; > > for (i = 0; i < 20 MB; i++) > { > tmp[i]=1; > } > > printf("test success\n"); > exit(1); > } > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/