Re: [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic

josh
2015-05-13T00:53:49Z

On Tue, May 12, 2015 at 02:22:50PM -0700, Andrew Morton wrote:
> On Mon, 11 May 2015 12:29:19 -0700 Josh Triplett <josh@joshtriplett.org> wrote:
>
> > Introduce a new CONFIG_HAVE_COPY_THREAD_TLS for architectures to opt
> > into, and a new copy_thread_tls that accepts the tls parameter as an
> > additional unsigned long (syscall-argument-sized) argument.
> > Change sys_clone's tls argument to an unsigned long (which does
> > not change the ABI), and pass that down to copy_thread_tls.
> >
> > Architectures that don't opt into copy_thread_tls will continue to
> > ignore the C argument to sys_clone in favor of the pt_regs captured at
> > kernel entry, and thus will be unable to introduce new versions of the
> > clone syscall.
>
> What happens quite frequently is that we do something for x86 with the
> expectation that other architectures will follow along, but this
> doesn't happen. The arch maintainers simply didn't know about it or
> nobody nags them. Nothing happens and inconsistencies hang around for
> years. eg, http://lkml.iu.edu/hypermail/linux/kernel/1504.2/04993.html

In this case, there will be a very clear incentive to switch to
CONFIG_HAVE_COPY_THREAD_TLS: if you don't, you can't enable new
syscalls.

- Josh Triplett