[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20091107201810.GA26787@us.ibm.com>
Date: Sat, 7 Nov 2009 12:18:10 -0800
From: Sukadev Bhattiprolu <sukadev@...ux.vnet.ibm.com>
To: "Serge E. Hallyn" <serue@...ibm.com>
Cc: Sukadev Bhattiprolu <sukadev@...ibm.com>,
linux-kernel@...r.kernel.org, arnd@...db.de,
Containers <containers@...ts.linux-foundation.org>,
"Eric W. Biederman" <ebiederm@...ssion.com>, hpa@...or.com,
Alexey Dobriyan <adobriyan@...il.com>, roland@...hat.com,
Pavel Emelyanov <xemul@...nvz.org>
Subject: Re: [v11][PATCH 8/9] Define clone_with_pids() syscall
Serge E. Hallyn [serue@...ibm.com] wrote:
| Quoting Sukadev Bhattiprolu (sukadev@...ibm.com):
| > + stack_size = (unsigned long)kca.child_stack_size;
| > + child_stack = (unsigned long)kca.child_stack_base + stack_size;
| > +
| > + if (!child_stack)
| > + child_stack = regs->sp;
|
| I'm hooking up the s390 version right now. Do you think you should
| make this
|
| if (!kca.child_stack_base)
| child_stack = regs->sp;
|
| ?
|
| I suppose that in general if I pass in a NULL kca.child_stack_base
| I'll also pass in a 0 stacksize, but as a user I'd expect that if
| I pass in NULL, the size gets ignored. Instead, if I pass in NULL
| plus a size, then the kernel will take (void *)size as the stacktop.
Good point. Like copy_thread() on IA64, how about ignoring 'stack_size'
if base is NULL ?
child_stack = 0UL;
if (kca.child_stack_base)
child_stack = (unsigned long)kca.child_stack_base + stack_size;
if (!child_stack)
child_stack = regs->sp;
The other question is whether we should force all architectures to pass in
the stack *base* ? clone(2) man page says:
Stacks grow downwards on all processors that run Linux (except
the HP PA processors), so child_stack usually points to the topmost
address of the memory space set up for the child stack.
To be compatibile with clone() on most architectures, should we rename
'clone_args.child_stack_base' to 'clone_args.child_stack' and let
architectures use this field like they currently use the 'child_stack'
parameter to clone(2) ?
So x86 would pass in address of top-of-stack while HP-PA can pass in address
of base-of-stack.
Arnd, Roland, Peter please let me know if you have any inputs on this.
Sukadev
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists