Re: [PATCH 01/32] do_fork(): Rename 'stack_size' argument to reflect actual use

Alex Dowad
2015-03-14T16:19:29Z

On 14/03/15 01:04, josh@joshtriplett.org wrote:
> On Fri, Mar 13, 2015 at 08:04:16PM +0200, Alex Dowad wrote:
>> The 'stack_size' argument is never used to pass a stack size. It's only used when
>> forking a kernel thread, in which case it is an argument which should be passed
>> to the 'main' function which the kernel thread executes. Hence, rename it to
>> 'kthread_arg'.
> That's not the only use of stack_size. Take a look at the clone2 system
> call (very minimally documented in the clone manpage) and the
> implementation of copy_thread on ia64, which does use stack_size in the
> non-kthread path.
Thanks for pointing that out. I searched for all uses with cscope but
missed sys_clone2 (which is implemented in asm). Won't make that mistake
again...

I've just been searching for history on sys_clone2() but have come up
empty. "git blame" isn't helping, either... the current code dates back
before the start of the git history.

So out of curiosity, if you are willing to explain more: why does clone2
only exist on IA-64? Is there some characteristic of the architecture
that makes being able to specify the size of the user-mode stack
especially valuable, as compared to other archs? Is it used much (such
as being called from the C library)?

Thanks for your feedback,
Alex Dowad