Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp114356imu; Thu, 6 Dec 2018 17:00:35 -0800 (PST) X-Google-Smtp-Source: AFSGD/WnMA+DEEixRvgIMsXq9dFV6difr2U6Gd1vZzWvEDKw6VAXXQ90Va9IPk/9ed1x8pchi1g/ X-Received: by 2002:a17:902:bc3:: with SMTP id 61mr161953plr.15.1544144435814; Thu, 06 Dec 2018 17:00:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544144435; cv=none; d=google.com; s=arc-20160816; b=xgBEixBu8IFK1cfv3XR2f6QX8xJlSBq48cQktUlbYa2EXV2TztqqMJxLPiOJzFW7go Q3vh9b4r2tR2QmOMUU6nUpPWytIuv4TVl8Fe56RtzVWyPBpTYmtYt9WLULdO6bg5mzku w0qgYAcJ8JYOP/sfO7ehQzUbIKkMdRQjNxn/YLuCuJlQNH9Cl/HTUgTfWn+S+N7gon8H DpS2HHOszsK5BmsSUku0CkUKmCpRNPq2F4ZvN/VIreAoZzv6xO26QPlGyGzl3fEdwCvg rfeqRGNHIILm9Rh6eGCOf9Dpiq+kxKX8D7KCrBRrYFnjQgYMhtpkiy83gQpV8h0qenyw V27Q== 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=FJvcfDOZhqnG4DvqiVwnixiJOjRvRA1KqkQyFAMg1Hk=; b=G3ebdjDpUcaCXHHxGNDk6Y2n3HZVWRm/n+osUqsoChWg/Yw8a+W8/lOVt0OwpLkCtA DVXtHeB3BLy6Fv1yYQLkR3z7h+5qaPEI8r7BY9P2CQcCv2WVLYgbblwEi5eVC4/l8RBh qMAP8DCGCyW4Xik8M1eBLoIaS5Ys/ru9gxrk3mgwqRJA8hPUIJrb2U83SsQxaj14b3Gz mAL1gZNh35GveykcaKtlPX9BpvAjVFi7BLzx3KY2ibBad1DC4EUIpfGuQNsgWeCbNWzb YNfy9nfTDb7TzuoZqR8edGp6VKsgZivkRj51vt2VUX/Zv0mFFEW4TwK5KCo2QYIqRtHV IPKQ== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j12si1392344pgq.26.2018.12.06.17.00.19; Thu, 06 Dec 2018 17:00:35 -0800 (PST) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725984AbeLGA7V (ORCPT + 99 others); Thu, 6 Dec 2018 19:59:21 -0500 Received: from mail.hallyn.com ([178.63.66.53]:56028 "EHLO mail.hallyn.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725939AbeLGA7V (ORCPT ); Thu, 6 Dec 2018 19:59:21 -0500 Received: by mail.hallyn.com (Postfix, from userid 1001) id 111C3D5; Thu, 6 Dec 2018 18:59:18 -0600 (CST) Date: Thu, 6 Dec 2018 18:59:17 -0600 From: "Serge E. Hallyn" To: Daniel Colascione Cc: "Serge E. Hallyn" , Christian Brauner , "Eric W. Biederman" , linux-kernel , Linux API , Andy Lutomirski , Arnd Bergmann , Jann Horn , Andrew Morton , Oleg Nesterov , Aleksa Sarai , Al Viro , Linux FS Devel , Tim Murray , linux-man , Kees Cook , Florian Weimer , tglx@linutronix.de, x86@kernel.org Subject: Re: [PATCH v4] signal: add taskfd_send_signal() syscall Message-ID: <20181207005917.GA11302@mail.hallyn.com> References: <875zw6bh2z.fsf@xmission.com> <20181206193017.wpxls5p3zgjd6rv2@brauner.io> <871s6u9z6u.fsf@xmission.com> <20181206213152.gvci7ijr3dokew7w@brauner.io> <87o99y72gi.fsf@xmission.com> <20181206223948.gyfdtkgbhtozmpsp@brauner.io> <20181206231742.xxi4ghn24z4h2qki@brauner.io> <20181207003124.GA11160@mail.hallyn.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Dec 06, 2018 at 04:34:54PM -0800, Daniel Colascione wrote: > On Thu, Dec 6, 2018 at 4:31 PM Serge E. Hallyn wrote: > > > > On Fri, Dec 07, 2018 at 12:17:45AM +0100, Christian Brauner wrote: > > > On Thu, Dec 06, 2018 at 11:39:48PM +0100, Christian Brauner wrote: > > > > On Thu, Dec 06, 2018 at 03:46:53PM -0600, Eric W. Biederman wrote: > > > > > Christian Brauner writes: > > > > > > > > > > >> Your intention is to add the thread case to support pthreads once the > > > > > >> process case is sorted out. So this is something that needs to be made > > > > > >> clear. Did I miss how you plan to handle threads? > > > > > > > > > > > > Yeah, maybe you missed it in the commit message [2] which is based on a > > > > > > discussion with Andy [3] and Arnd [4]: > > > > > > > > > > Looking at your references I haven't missed it. You are not deciding > > > > > anything as of yet to keep it simple. Except you are returning > > > > > EOPNOTSUPP. You are very much intending to do something. > > > > > > > > That was clear all along and was pointed at every occassion in the > > > > threads. I even went through the hazzle to give you all of the > > > > references when there's lore.kernel.org. > > > > > > > > > > > > > > Decide. Do you use the flags parameter or is the width of the > > > > > target depending on the flags. > > > > > > Ok, let's try to be constructive. I understand the general concern for > > > the future so let's put a contract into the commit message stating that > > > the width of the target aka *what is signaled* will be based on a flag > > > parameter if we ever extend it: > > > > > > taskfd_send_signal(fd, SIGSTOP, NULL, TASKFD_PGID); > > > taskfd_send_signal(fd, SIGSTOP, NULL, TASKFD_TID); > > > > > > with the current default being > > > > > > taskfd_send_signal(fd, SIGSTOP, NULL, TASKFD_PID); > > > > > > This seems to me the cleanest solution as we only use one type of file > > > descriptor. Can everyone be on board with this? If so I'm going to send > > > out a new version of the patch. > > > > > > Christian > > > > I'm on board with this, but I think you need to also clarify what exactly > > the fd stands for. I think that (a) userspace should not have to care > > about the struct pid implementation, and so (b) the procfd should stand > > for all the pids. So when taskfd_send_signal(fd, SIGSTOP, NULL, TASKFD_PGID) > > becomes implemented, then open(/proc/5) will pin all three pids, as will > > open(/proc/5/task/6). > > This change doesn't "pin" any PID, and it makes no sense to make a > process FD stand for all its threads. What does that even mean? Currently the patch relies on the procfd inode saving a copy to the PIDTYPE_PID pid. I'm not sure offhand, can it go to the PIDTYPE_PGID from that after the task has died, or not? I didn't think so. If it can then great. The point is (a) these are details which should not have to bother userspace, and (b) how to decide who we're sending the signal to (tid/pid/pgid) should be specified in precisely one way. So either a flag, or comign from the type of fd that was opened. -serge