Skip to content

Commit

Permalink
fork: Add kernel_clone_args flag to ignore signals
Browse files Browse the repository at this point in the history
Since:

commit 10ab825 ("change kernel threads to ignore signals instead of
blocking them")

kthreads have been ignoring signals by default, and the vhost layer has
never had a need to change that. This patch adds an option flag,
USER_WORKER_SIG_IGN, handled in copy_process() after copy_sighand()
and copy_signals() so vhost_tasks added in the next patches can continue
to ignore singals.

Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
  • Loading branch information
Mike Christie authored and Christian Brauner (Microsoft) committed Mar 12, 2023
1 parent 11f3f50 commit 0947175
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 0 deletions.
1 change: 1 addition & 0 deletions include/linux/sched/task.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ struct kernel_clone_args {
u32 io_thread:1;
u32 user_worker:1;
u32 no_files:1;
u32 ignore_signals:1;
unsigned long stack;
unsigned long stack_size;
unsigned long tls;
Expand Down
3 changes: 3 additions & 0 deletions kernel/fork.c
Original file line number Diff line number Diff line change
Expand Up @@ -2290,6 +2290,9 @@ static __latent_entropy struct task_struct *copy_process(
if (retval)
goto bad_fork_cleanup_io;

if (args->ignore_signals)
ignore_signals(p);

stackleak_task_init(p);

if (pid != &init_struct_pid) {
Expand Down

0 comments on commit 0947175

Please sign in to comment.