Thread (10 messages) 10 messages, 4 authors, 2018-12-07

Re: [PATCH v4] signal: add taskfd_send_signal() syscall

From: Daniel Colascione <hidden>
Date: 2018-12-07 00:35:08
Also in: linux-fsdevel, linux-man, lkml

Possibly related (same subject, not in this thread)

On Thu, Dec 6, 2018 at 4:31 PM Serge E. Hallyn [off-list ref] wrote:
On Fri, Dec 07, 2018 at 12:17:45AM +0100, Christian Brauner wrote:
quoted
On Thu, Dec 06, 2018 at 11:39:48PM +0100, Christian Brauner wrote:
quoted
On Thu, Dec 06, 2018 at 03:46:53PM -0600, Eric W. Biederman wrote:
quoted
Christian Brauner [off-list ref] writes:
quoted
quoted
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.
quoted
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?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help