Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp447925pxb; Wed, 22 Sep 2021 05:55:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzLRiF+qMtXkEO7ZJrCDkMve4IddlwBndd5TdoF3pW25Pcc2lV9e15cNMWa+7cUs79LEGwv X-Received: by 2002:aa7:c459:: with SMTP id n25mr40889728edr.29.1632315300942; Wed, 22 Sep 2021 05:55:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632315300; cv=none; d=google.com; s=arc-20160816; b=JC7JZkDCtQAkFJZBG3C6m29xkvQMC451AQfy66hOtRN8Fq0zfd/4TyVuzR/cU5lKwz Ffz+YXbtH3iCENA3zFfADP11bBIJ9JqX8mnk2Ew5mdmiusTTw1LYzQlm+KN89UY4FDbB PLl8rMmXERRAuychO5QAYHJoDgU0b1t2l/vWT13OseYDGc0lf12lw7tzZq/UidzazOAG HurgBVtbs4V2BArCFZuMXF8YZs7ZsJkI7QUz/eH5Ovqys3JuObSHCnOxJjtREfS2iqNW X+VCbMDK5oTGW+JLBXlWI8f0xgmnqC0iUNo7p2PA39JMmLJOxPOCiN5T38kSqDicWKD+ TB7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=qBGLSvDYH4dewq/qxgu4rJeNcRhoI4OpZkfQTzz3KRo=; b=FAt+CVRyYDZPtsEV+68BDho7rN2x5gtEJ1QuKGa1SNi0b7VcZFtv6ExOq+MsA64P9s osmdOxZOSKfuOY7UjV4D4b6RqyW8a9OgOgcDOqZmevbVcUrHE1XOHcDZERvypfh8rMV/ iqIym+6cd7lNSOwF1mhGq0RqA35g3P51tyN/owNl23a38mo7N2hwfPb6S9044bEgBGXq BV/AKSKtxXUsd88cHw3rL9SRPrl4WjgDVdxcRNVhkIZ8/NtlCbXhO81I+aioq+qmLK0m D1Ncm0iJQI+Jbc4SulBrdh7XQ4MJ8JUIPlSdIkSeCuWGj7prCWruxCHzb9iMQxUozF+1 6WAA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m1si2485401ejl.787.2021.09.22.05.54.36; Wed, 22 Sep 2021 05:55:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236240AbhIVMyO (ORCPT + 99 others); Wed, 22 Sep 2021 08:54:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:55190 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236189AbhIVMyK (ORCPT ); Wed, 22 Sep 2021 08:54:10 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1BA59610A0; Wed, 22 Sep 2021 12:52:37 +0000 (UTC) Date: Wed, 22 Sep 2021 14:52:36 +0200 From: Christian Brauner To: Mike Christie Cc: hdanton@sina.com, hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com, mst@redhat.com, sgarzare@redhat.com, virtualization@lists.linux-foundation.org, axboe@kernel.dk, linux-kernel@vger.kernel.org Subject: Re: [PATCH V2 7/9] fork: Add worker flag to ignore signals Message-ID: <20210922125236.7cb77rxbwkv7x4zj@wittgenstein> References: <20210921215218.89844-1-michael.christie@oracle.com> <20210921215218.89844-8-michael.christie@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20210921215218.89844-8-michael.christie@oracle.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 21, 2021 at 04:52:16PM -0500, Mike Christie wrote: > The kthread API creates threads that ignore all signals by default so > modules like vhost that will move from that API to kernel_worker will > not be expecting them. This patch adds a worker flag that tells > kernel_worker to setup the task to ignore signals. > > Signed-off-by: Mike Christie > --- Looks good, Acked-by: Christian Brauner > include/linux/sched/task.h | 1 + > kernel/fork.c | 11 ++++++++++- > 2 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h > index 781abbc1c288..aefa0d221b57 100644 > --- a/include/linux/sched/task.h > +++ b/include/linux/sched/task.h > @@ -21,6 +21,7 @@ struct css_set; > #define KERN_WORKER_IO BIT(0) > #define KERN_WORKER_USER BIT(1) > #define KERN_WORKER_NO_FILES BIT(2) > +#define KERN_WORKER_NO_SIGS BIT(3) > > struct kernel_clone_args { > u64 flags; > diff --git a/kernel/fork.c b/kernel/fork.c > index 3f3fcabffa5f..34d3dca70cfb 100644 > --- a/kernel/fork.c > +++ b/kernel/fork.c > @@ -2555,6 +2555,8 @@ struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node) > struct task_struct *kernel_worker(int (*fn)(void *), void *arg, int node, > unsigned long clone_flags, u32 worker_flags) > { > + struct task_struct *tsk; > + > struct kernel_clone_args args = { > .flags = ((lower_32_bits(clone_flags) | CLONE_VM | > CLONE_UNTRACED) & ~CSIGNAL), > @@ -2564,7 +2566,14 @@ struct task_struct *kernel_worker(int (*fn)(void *), void *arg, int node, > .worker_flags = KERN_WORKER_USER | worker_flags, > }; > > - return copy_process(NULL, 0, node, &args); > + tsk = copy_process(NULL, 0, node, &args); > + if (IS_ERR(tsk)) > + return tsk; > + > + if (worker_flags & KERN_WORKER_NO_SIGS) > + ignore_signals(tsk); > + > + return tsk; > } > EXPORT_SYMBOL_GPL(kernel_worker); > > -- > 2.25.1 >