From: Helge Deller <deller@gmx.de>
To: Michael Neuling <mikey@neuling.org>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Andrew Morton <akpm@linux-foundation.org>,
Americo Wang <xiyou.wangcong@gmail.com>,
Anton Blanchard <anton@samba.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Oleg Nesterov <oleg@redhat.com>, James Morris <jmorris@namei.org>,
Ingo Molnar <mingo@elte.hu>,
linux-fsdevel@vger.kernel.org, stable@kernel.org,
linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org,
Serge Hallyn <serue@us.ibm.com>,
Paul Mackerras <paulus@samba.org>,
benh@kernel.crashing.org, miltonm@bga.com, aeb@cwi.nl,
linux-parisc@vger.kernel.org
Subject: Re: [PATCH] Restrict initial stack space expansion to rlimit
Date: Thu, 11 Feb 2010 23:16:06 +0100 [thread overview]
Message-ID: <4B7481A6.7080300@gmx.de> (raw)
In-Reply-To: <17323.1265779867@neuling.org>
On 02/10/2010 06:31 AM, Michael Neuling wrote:
> In message<20100210141016.4D18.A69D9226@jp.fujitsu.com> you wrote:
>>> On 02/09/2010 10:51 PM, Michael Neuling wrote:
>>>>>> I'd still like someone with a CONFIG_STACK_GROWSUP arch to test/ACK it
>>>>>> as well.
>>>>>
>>>>> There's only one CONFIG_GROWSUP arch - parisc.
>>>>> Could someone please test it on parisc?
>>>
>>> I did.
>>>
>>>> How about doing:
>>>> 'ulimit -s 15; ls'
>>>> before and after the patch is applied. Before it's applied, 'ls' should
>>>> be killed. After the patch is applied, 'ls' should no longer be killed.
>>>>
>>>> I'm suggesting a stack limit of 15KB since it's small enough to trigger
>>>> 20*PAGE_SIZE. Also 15KB not a multiple of PAGE_SIZE, which is a trickier
>>>> case to handle correctly with this code.
>>>>
>>>> 4K pages on parisc should be fine to test with.
>>>
>>> Mikey, thanks for the suggested test plan.
>>>
>>> I'm not sure if your patch does it correct for parisc/stack-grows-up-case.
>>>
>>> I tested your patch on a 4k pages kernel:
>>> root@c3000:~# uname -a
>>> Linux c3000 2.6.33-rc7-32bit #221 Tue Feb 9 23:17:06 CET 2010 parisc GNU/Li
> nux
>>>
>>> Without your patch:
>>> root@c3000:~# ulimit -s 15; ls
>>> Killed
>>> -> correct.
>>>
>>> With your patch:
>>> root@c3000:~# ulimit -s 15; ls
>>> Killed
>>> _or_:
>>> root@c3000:~# ulimit -s 15; ls
>>> Segmentation fault
>>> -> ??
>>>
>>> Any idea?
>>
>> My x86_64 box also makes segmentation fault. I think "ulimit -s 15" is too sm
> all stack for ls.
>> "ulimit -s 27; ls " wroks perfectly fine.
>
> Arrh. I asked Helge offline earlier to check what use to work on parisc
> on 2.6.31.
>
> I guess PPC has a nice clean non-bloated ABI :-D
Hi Mikey,
I tested again, and it works for me with "ulimit -s 27" as well (on a 4k, 32bit kernel).
Still, I'm not 100% sure if your patch is correct.
Anyway, it seems to work.
But what makes me wonder is, why EXTRA_STACK_VM_PAGES is defined in pages at all.
You wrote in your patch description:
> This bug means that when limiting the stack to less the 20*PAGE_SIZE (eg.
> 80K on 4K pages or 'ulimit -s 79') all processes will be killed before
> they start. This is particularly bad with 64K pages, where a ulimit below
> 1280K will kill every process.
Wouldn't it make sense to define and use EXTRA_STACK_VM_SIZE instead (e.g. as 20*4096 = 80k)?
This extra stack reservation should IMHO be independend of the actual kernel page size.
Helge
WARNING: multiple messages have this Message-ID (diff)
From: Helge Deller <deller@gmx.de>
To: Michael Neuling <mikey@neuling.org>
Cc: linux-parisc@vger.kernel.org, stable@kernel.org, aeb@cwi.nl,
Oleg Nesterov <oleg@redhat.com>,
miltonm@bga.com, James Morris <jmorris@namei.org>,
linuxppc-dev@ozlabs.org, Paul Mackerras <paulus@samba.org>,
Anton Blanchard <anton@samba.org>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Serge Hallyn <serue@us.ibm.com>,
linux-fsdevel@vger.kernel.org,
Americo Wang <xiyou.wangcong@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org,
Alexander Viro <viro@zeniv.linux.org.uk>
Subject: Re: [PATCH] Restrict initial stack space expansion to rlimit
Date: Thu, 11 Feb 2010 23:16:06 +0100 [thread overview]
Message-ID: <4B7481A6.7080300@gmx.de> (raw)
In-Reply-To: <17323.1265779867@neuling.org>
On 02/10/2010 06:31 AM, Michael Neuling wrote:
> In message<20100210141016.4D18.A69D9226@jp.fujitsu.com> you wrote:
>>> On 02/09/2010 10:51 PM, Michael Neuling wrote:
>>>>>> I'd still like someone with a CONFIG_STACK_GROWSUP arch to test/ACK it
>>>>>> as well.
>>>>>
>>>>> There's only one CONFIG_GROWSUP arch - parisc.
>>>>> Could someone please test it on parisc?
>>>
>>> I did.
>>>
>>>> How about doing:
>>>> 'ulimit -s 15; ls'
>>>> before and after the patch is applied. Before it's applied, 'ls' should
>>>> be killed. After the patch is applied, 'ls' should no longer be killed.
>>>>
>>>> I'm suggesting a stack limit of 15KB since it's small enough to trigger
>>>> 20*PAGE_SIZE. Also 15KB not a multiple of PAGE_SIZE, which is a trickier
>>>> case to handle correctly with this code.
>>>>
>>>> 4K pages on parisc should be fine to test with.
>>>
>>> Mikey, thanks for the suggested test plan.
>>>
>>> I'm not sure if your patch does it correct for parisc/stack-grows-up-case.
>>>
>>> I tested your patch on a 4k pages kernel:
>>> root@c3000:~# uname -a
>>> Linux c3000 2.6.33-rc7-32bit #221 Tue Feb 9 23:17:06 CET 2010 parisc GNU/Li
> nux
>>>
>>> Without your patch:
>>> root@c3000:~# ulimit -s 15; ls
>>> Killed
>>> -> correct.
>>>
>>> With your patch:
>>> root@c3000:~# ulimit -s 15; ls
>>> Killed
>>> _or_:
>>> root@c3000:~# ulimit -s 15; ls
>>> Segmentation fault
>>> -> ??
>>>
>>> Any idea?
>>
>> My x86_64 box also makes segmentation fault. I think "ulimit -s 15" is too sm
> all stack for ls.
>> "ulimit -s 27; ls " wroks perfectly fine.
>
> Arrh. I asked Helge offline earlier to check what use to work on parisc
> on 2.6.31.
>
> I guess PPC has a nice clean non-bloated ABI :-D
Hi Mikey,
I tested again, and it works for me with "ulimit -s 27" as well (on a 4k, 32bit kernel).
Still, I'm not 100% sure if your patch is correct.
Anyway, it seems to work.
But what makes me wonder is, why EXTRA_STACK_VM_PAGES is defined in pages at all.
You wrote in your patch description:
> This bug means that when limiting the stack to less the 20*PAGE_SIZE (eg.
> 80K on 4K pages or 'ulimit -s 79') all processes will be killed before
> they start. This is particularly bad with 64K pages, where a ulimit below
> 1280K will kill every process.
Wouldn't it make sense to define and use EXTRA_STACK_VM_SIZE instead (e.g. as 20*4096 = 80k)?
This extra stack reservation should IMHO be independend of the actual kernel page size.
Helge
next prev parent reply other threads:[~2010-02-11 22:16 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-06 0:43 Stack size protection broken on ppc64 Michael Neuling
2010-02-06 4:20 ` Anton Blanchard
2010-02-06 4:20 ` Anton Blanchard
2010-02-06 10:22 ` Michael Neuling
2010-02-06 10:22 ` Michael Neuling
2010-02-08 0:04 ` Anton Blanchard
2010-02-08 0:04 ` Anton Blanchard
2010-02-08 0:07 ` [PATCH] Restrict stack space reservation to rlimit Michael Neuling
2010-02-08 0:07 ` Michael Neuling
2010-02-08 0:28 ` Michael Neuling
2010-02-08 0:28 ` Michael Neuling
2010-02-08 5:06 ` KOSAKI Motohiro
2010-02-08 5:06 ` KOSAKI Motohiro
2010-02-08 5:11 ` Anton Blanchard
2010-02-08 5:11 ` Anton Blanchard
2010-02-08 5:22 ` KOSAKI Motohiro
2010-02-08 5:22 ` KOSAKI Motohiro
2010-02-08 5:31 ` Anton Blanchard
2010-02-08 5:31 ` Anton Blanchard
2010-02-08 6:11 ` KOSAKI Motohiro
2010-02-08 6:11 ` KOSAKI Motohiro
2010-02-08 5:37 ` Michael Neuling
2010-02-08 5:37 ` Michael Neuling
2010-02-08 6:05 ` KOSAKI Motohiro
2010-02-08 6:05 ` KOSAKI Motohiro
2010-02-08 7:07 ` Américo Wang
2010-02-08 7:07 ` Américo Wang
2010-02-08 7:07 ` Américo Wang
2010-02-08 7:11 ` KOSAKI Motohiro
2010-02-08 7:11 ` KOSAKI Motohiro
2010-02-09 6:11 ` [PATCH] Restrict initial stack space expansion " Michael Neuling
2010-02-09 6:11 ` Michael Neuling
2010-02-09 6:46 ` KOSAKI Motohiro
2010-02-09 6:46 ` KOSAKI Motohiro
2010-02-09 8:59 ` Michael Neuling
2010-02-09 8:59 ` Michael Neuling
2010-02-09 21:25 ` Andrew Morton
2010-02-09 21:25 ` Andrew Morton
2010-02-09 21:51 ` Michael Neuling
2010-02-09 21:51 ` Michael Neuling
2010-02-09 22:27 ` Helge Deller
2010-02-09 22:27 ` Helge Deller
2010-02-10 5:12 ` KOSAKI Motohiro
2010-02-10 5:12 ` KOSAKI Motohiro
2010-02-10 5:30 ` Michael Neuling
2010-02-10 5:30 ` Michael Neuling
2010-02-10 5:31 ` Michael Neuling
2010-02-10 5:31 ` Michael Neuling
2010-02-11 22:16 ` Helge Deller [this message]
2010-02-11 22:16 ` Helge Deller
2010-02-11 22:22 ` Michael Neuling
2010-02-11 22:22 ` Michael Neuling
2010-02-12 5:44 ` [PATCH] Create initial stack independent of PAGE_SIZE Michael Neuling
2010-02-12 7:20 ` KOSAKI Motohiro
2010-02-12 9:02 ` Michael Neuling
2010-02-12 9:51 ` KOSAKI Motohiro
2010-02-08 10:45 ` [PATCH] Restrict stack space reservation to rlimit Michael Neuling
2010-02-08 10:45 ` Michael Neuling
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B7481A6.7080300@gmx.de \
--to=deller@gmx.de \
--cc=aeb@cwi.nl \
--cc=akpm@linux-foundation.org \
--cc=anton@samba.org \
--cc=benh@kernel.crashing.org \
--cc=jmorris@namei.org \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=mikey@neuling.org \
--cc=miltonm@bga.com \
--cc=mingo@elte.hu \
--cc=oleg@redhat.com \
--cc=paulus@samba.org \
--cc=serue@us.ibm.com \
--cc=stable@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=viro@zeniv.linux.org.uk \
--cc=xiyou.wangcong@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.