Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp755183yba; Thu, 16 May 2019 08:25:41 -0700 (PDT) X-Google-Smtp-Source: APXvYqwxoRUfHhKzHfX0ykBx0Tap57hhpL+BRYQg2qbJRWyyu2FKmht8KnXzAtHAF4VXgMmrzSgx X-Received: by 2002:a63:9242:: with SMTP id s2mr34019212pgn.220.1558020341121; Thu, 16 May 2019 08:25:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558020341; cv=none; d=google.com; s=arc-20160816; b=X+PNaM7MpySw4NtWQzf9N9OcpJcS2z9kBnn6mhMXHiSQtZV1cO1JyOxikvhg1I+cJ7 OaqVBBbfLqxkOTs/qb2mReYPiLaJY19NV/FO51uOPwhMjSgehgnBEyMefMwUf7sCSKlv yHqMlvlYjogonOO5y5K1l8p7YZDb5XwJr6h7oOgVw8zDh5eoUc68GTek5GK/Bpfs5f+N 2+P3eoRDNC1c6kW3rF7HKvNdgGZnCTmMi1ZEMVOkK3FOt9MftC/C5csicC90TfzXXBQi tD4n3rNxH5SoZELgiAhqTRvo/UuO8JwDNEXFXrfXOkGbl8f6C/7r/M/hJ+VE61N0X2Wv 8kLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=QQny9iVisX2yLvoJtvatneqhwRUVzEiE+Sbv6Dl3X5s=; b=z2B8Rgr1y/oGJRdphyfzpbkDmRUUddtYfdUQCzhrd1r0R/Xh340TI/45qarrkXqa6n e0CZEZTxTqDdCZlzGAK4CeNLEZvc91oZEUjBZzQVWOQQKEtLUHTf7lHxKSF+di1oK/B2 HNLMu5DDcdwM658FcI0bfFiTN8f1xMiXZps8uQNja6v+MuV7iW0GJIrQiNTMF3rX08LA qJI+xkfTFYIx7zChwGegvvwcpwCC+E7yN/vIt37uu3/ZKvPCCwccUuDzErHeVUzTD4xP bliI5p0XcKGjNpQKbEBB5jRGbxGk7I4TzbInKrNz1x0Z29Rwt8soMWj27+T+4hWuZXjS 4RTw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q8si5108362pgf.3.2019.05.16.08.25.24; Thu, 16 May 2019 08:25:41 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727564AbfEPPXC (ORCPT + 99 others); Thu, 16 May 2019 11:23:02 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46970 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726801AbfEPPXB (ORCPT ); Thu, 16 May 2019 11:23:01 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A6D1B81F0D; Thu, 16 May 2019 15:23:00 +0000 (UTC) Received: from dhcp-27-174.brq.redhat.com (unknown [10.43.17.159]) by smtp.corp.redhat.com (Postfix) with SMTP id CF52210027B9; Thu, 16 May 2019 15:22:54 +0000 (UTC) Received: by dhcp-27-174.brq.redhat.com (nbSMTP-1.00) for uid 1000 oleg@redhat.com; Thu, 16 May 2019 17:22:59 +0200 (CEST) Date: Thu, 16 May 2019 17:22:53 +0200 From: Oleg Nesterov To: Aleksa Sarai Cc: Christian Brauner , jannh@google.com, viro@zeniv.linux.org.uk, torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, arnd@arndb.de, akpm@linux-foundation.org, dhowells@redhat.com, ebiederm@xmission.com, elena.reshetova@intel.com, keescook@chromium.org, luto@amacapital.net, luto@kernel.org, tglx@linutronix.de, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-xtensa@linux-xtensa.org, linux-api@vger.kernel.org, linux-arch@vger.kernel.org, linux-kselftest@vger.kernel.org, joel@joelfernandes.org, dancol@google.com, serge@hallyn.com, Geert Uytterhoeven Subject: Re: [PATCH v1 1/2] pid: add pidfd_open() Message-ID: <20190516152252.GD22564@redhat.com> References: <20190516135944.7205-1-christian@brauner.io> <20190516142659.GB22564@redhat.com> <20190516145607.j43xyj26k6l5vmbd@yavin> <20190516150611.GC22564@redhat.com> <20190516151202.hrawrx7hxllmz2di@yavin> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190516151202.hrawrx7hxllmz2di@yavin> User-Agent: Mutt/1.5.24 (2015-08-30) X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Thu, 16 May 2019 15:23:01 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/17, Aleksa Sarai wrote: > > On 2019-05-16, Oleg Nesterov wrote: > > On 05/17, Aleksa Sarai wrote: > > > On 2019-05-16, Oleg Nesterov wrote: > > > > On 05/16, Christian Brauner wrote: > > > > > With the introduction of pidfds through CLONE_PIDFD it is possible to > > > > > created pidfds at process creation time. > > > > > > > > Now I am wondering why do we need CLONE_PIDFD, you can just do > > > > > > > > pid = fork(); > > > > pidfd_open(pid); > > > > > > While the race window would be exceptionally short, there is the > > > possibility that the child will die > > > > Yes, > > > > > and their pid will be recycled > > > before you do pidfd_open(). > > > > No. > > > > Unless the caller's sub-thread does wait() before pidfd_open(), of course. > > Or unless you do signal(SIGCHILD, SIG_IGN). > > What about CLONE_PARENT? I should have mentioned CLONE_PARENT ;) Of course in this case the child can be reaped before pidfd_open(). But how often do you or other people use clone(CLONE_PARENT) ? not to mention you can trivially eliminate/detect this race if you really need this. Don't get me wrong, I am not trying to say that CLONE_PIDFD is a bad idea. But to me pidfd_open() is much more useful. Say, as a perl programmer I can easily use pidfd_open(), but not CLONE_PIDFD. Oleg.