linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Matthew Wilcox <willy@infradead.org>
Cc: Christian Brauner <christian.brauner@ubuntu.com>,
	peterz@infradead.org, Christoph Hewllig <hch@infradead.org>,
	linux-kernel@vger.kernel.org,
	Linus Torvalds <torvalds@linux-foundation.org>,
	linux-arch@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Tony Luck <tony.luck@intel.com>,
	Fenghua Yu <fenghua.yu@intel.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Ley Foon Tan <ley.foon.tan@intel.com>,
	"David S. Miller" <davem@davemloft.net>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	x86@kernel.org, Arnd Bergmann <arnd@arndb.de>,
	Steven Rostedt <rostedt@goodmis.org>,
	Stafford Horne <shorne@gmail.com>,
	Kars de Jong <jongk@linux-m68k.org>,
	Kees Cook <keescook@chromium.org>,
	Greentime Hu <green.hu@gmail.com>,
	Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
	Alexandre Chartre <alexandre.chartre@oracle.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Tom Zanussi <zanussi@kernel.org>,
	Xiao Yang <yangx.jy@cn.fujitsu.com>,
	linux-doc@vger.kernel.org, uclinux-h8-devel@lists.sourceforge.jp,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	sparclinux@vger.kernel.org, kgdb-bugreport@lists.sourceforge.net,
	linux-kselftest@vger.kernel.org
Subject: Re: [PATCH 00/11] Introduce kernel_clone(), kill _do_fork()
Date: Wed, 19 Aug 2020 08:32:59 -0500	[thread overview]
Message-ID: <87a6yq222c.fsf@x220.int.ebiederm.org> (raw)
In-Reply-To: <20200819111851.GY17456@casper.infradead.org> (Matthew Wilcox's message of "Wed, 19 Aug 2020 12:18:51 +0100")

Matthew Wilcox <willy@infradead.org> writes:

> On Wed, Aug 19, 2020 at 10:45:56AM +0200, Christian Brauner wrote:
>> On Wed, Aug 19, 2020 at 09:43:40AM +0200, peterz@infradead.org wrote:
>> > On Tue, Aug 18, 2020 at 06:44:47PM +0100, Matthew Wilcox wrote:
>> > > On Tue, Aug 18, 2020 at 07:34:00PM +0200, Christian Brauner wrote:
>> > > > The only remaining function callable outside of kernel/fork.c is
>> > > > _do_fork(). It doesn't really follow the naming of kernel-internal
>> > > > syscall helpers as Christoph righly pointed out. Switch all callers and
>> > > > references to kernel_clone() and remove _do_fork() once and for all.
>> > > 
>> > > My only concern is around return type.  long, int, pid_t ... can we
>> > > choose one and stick to it?  pid_t is probably the right return type
>> > > within the kernel, despite the return type of clone3().  It'll save us
>> > > some work if we ever go through the hassle of growing pid_t beyond 31-bit.
>> > 
>> > We have at least the futex ABI restricting PID space to 30 bits.
>> 
>> Ok, looking into kernel/futex.c I see 
>> 
>> pid_t pid = uval & FUTEX_TID_MASK;
>> 
>> which is probably what this referes to and /proc/sys/kernel/threads-max
>> is restricted to FUTEX_TID_MASK.
>> 
>> Afaict, that doesn't block switching kernel_clone() to return pid_t. It
>> can't create anything > FUTEX_TID_MASK anyway without yelling EAGAIN at
>> userspace. But it means that _if_ we were to change the size of pid_t
>> we'd likely need a new futex API. 
>
> Yes, there would be a lot of work to do to increase the size of pid_t.
> I'd just like to not do anything to make that harder _now_.  Stick to
> using pid_t within the kernel.

Just so people are aware.  If you look in include/linux/threads.h you
can see that the maximum value of PID_MAX_LIMIT limits pids to 22 bits.

Further the design decisions of pids keeps us densly using pids.  So I
expect it will be a while before we even come close to using 30 bits of
pid space.

At the same time I do agree that it makes sense to use a consistent type
in the kernel to make it easier to read and update the code.

Eric

  reply	other threads:[~2020-08-19 13:37 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-18 17:34 [PATCH 00/11] Introduce kernel_clone(), kill _do_fork() Christian Brauner
2020-08-18 17:34 ` [PATCH 01/11] fork: introduce kernel_clone() Christian Brauner
2020-08-18 17:34 ` [PATCH 02/11] h8300: switch to kernel_clone() Christian Brauner
2020-08-18 17:34 ` [PATCH 03/11] ia64: " Christian Brauner
2020-08-18 17:34 ` [PATCH 04/11] m68k: " Christian Brauner
2020-08-19  8:45   ` Geert Uytterhoeven
2020-08-18 17:34 ` [PATCH 05/11] nios2: " Christian Brauner
2020-08-18 17:34 ` [PATCH 06/11] sparc: " Christian Brauner
2020-08-18 17:34 ` [PATCH 07/11] x86: " Christian Brauner
2020-08-18 17:34 ` [PATCH 08/11] kprobes: " Christian Brauner
2020-08-18 17:34 ` [PATCH 09/11] kgdbts: " Christian Brauner
2020-08-18 17:34 ` [PATCH 10/11] tracing: " Christian Brauner
2020-08-18 17:34 ` [PATCH 11/11] sched: remove _do_fork() Christian Brauner
2020-08-18 17:44 ` [PATCH 00/11] Introduce kernel_clone(), kill _do_fork() Matthew Wilcox
2020-08-18 17:57   ` Christian Brauner
2020-08-19  7:43   ` peterz
2020-08-19  8:45     ` Christian Brauner
2020-08-19 11:18       ` Matthew Wilcox
2020-08-19 13:32         ` Eric W. Biederman [this message]
2020-08-19 13:46           ` Christian Brauner
2020-08-19 15:01             ` Eric W. Biederman
2020-08-19 15:41               ` David Laight
2020-08-19 15:45                 ` Matthew Wilcox
2020-08-19 15:55                   ` David Laight
2020-08-19 16:24                     ` Matthew Wilcox

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=87a6yq222c.fsf@x220.int.ebiederm.org \
    --to=ebiederm@xmission.com \
    --cc=alexandre.chartre@oracle.com \
    --cc=arnd@arndb.de \
    --cc=bp@alien8.de \
    --cc=christian.brauner@ubuntu.com \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=fenghua.yu@intel.com \
    --cc=geert@linux-m68k.org \
    --cc=green.hu@gmail.com \
    --cc=hch@infradead.org \
    --cc=jongk@linux-m68k.org \
    --cc=keescook@chromium.org \
    --cc=kgdb-bugreport@lists.sourceforge.net \
    --cc=ley.foon.tan@intel.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=mchehab+huawei@kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=shorne@gmail.com \
    --cc=sparclinux@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=torvalds@linux-foundation.org \
    --cc=uclinux-h8-devel@lists.sourceforge.jp \
    --cc=willy@infradead.org \
    --cc=x86@kernel.org \
    --cc=yangx.jy@cn.fujitsu.com \
    --cc=ysato@users.sourceforge.jp \
    --cc=zanussi@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).