From nobody Fri May 8 02:20:08 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 741B6C433EF for ; Thu, 12 May 2022 21:47:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347149AbiELVry (ORCPT ); Thu, 12 May 2022 17:47:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51874 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1357198AbiELVre (ORCPT ); Thu, 12 May 2022 17:47:34 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E24B045056 for ; Thu, 12 May 2022 14:47:32 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24CJKpeR023549; Thu, 12 May 2022 21:47:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=a0EFwcujhGCU04jZhJ9tZTh4bv5MhcLOv3qTX1+CJJs=; b=tUzkge7JHCcCgIR/rbuVoA9lYnThiPSp6AcihSEVbKQyDL3Ud7QJ+7qTj8FgVIBcwcye nI3WHEA89TRIoWEklCBhLP6LQUfE57dECaPgoEAE/VsZrWFHr0y7BP8Wwow11UflF9J4 XqEZxRbCheovArZRBQM8GeKcCRflf09YY+z9bFdkihTh8CBXntQl3xvgEcyZCa9w6Amj UGdMn5V2IDdI9agsdXPSRVDwpVKA5ixhHXEW28IyTs0FhoqmUha7wraTcRpfI8lk837J 2mtJ+MtPKWGGHHsO47kSKQqRcnemHYc91zZ/JqZQSAa6eIodvqgqVafKmRju/8QeWNtu mw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fwgcsx4a9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:15 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24CLgIkK004728; Thu, 12 May 2022 21:47:14 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2101.outbound.protection.outlook.com [104.47.70.101]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fwf7c98s9-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XhKEMI5R7B+aHiKD4eo+CMarLQDdqV/99dqk3OtzKQ8++6QVHJRZ4DgtKBFBRwLHYrkW+c9cWbV3k13vssTT+7LIspqJw9nkdPWLxEconsCSK4sNLbQJED+J842GDatmq3alwJoXdVj03rBgLeg9ghtpsbrZWKV1odGhdpgYQAemfUwv4d2iYzlkchg53Lq37bp2vMt6MfBeWpY54c8xUJuglsx+I8ROyKCJV2fhXfyKq8VeFoM8A5MbGSj0yx/wcDNYNyDcQ6xbbQ69K44KfSE7HK1RrQNMBiPsiw/YEOrfZzPP28dybifCLaLx1dt62iKni4roCV5fens2JTFQUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=a0EFwcujhGCU04jZhJ9tZTh4bv5MhcLOv3qTX1+CJJs=; b=NBF7YeRdCC+gMSOGsMKLL9GNkKsawqgwuybM8Pu3FxqyMH7tCieitp/31pRPxYGBeQ/pGr8SVPA3PmvHJi/aL+o+3d5cvUPfSUUWqEESCMBqpWGwIZ6cs9phg8v1s28uT4TtNlXau8EsND8qnEcI+/Uc9hXO5UOaAe4BCHBiqw4i1LN9+CjpvNeq5yVLKC+wTS8eD7E87v4EEAWNPJO3Y1A2RKnuyxBMvURUcjgF5uOdBHgmW7YWy2/3S6SKt+aJbPe8v7hgQ2ePnLcPRaqlxvW8jPmh727bDDB4A4BWvUIPpDkvWz8dCoZiCIEJkTlSve9t8lnDc/35pjQLaE9Ogw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a0EFwcujhGCU04jZhJ9tZTh4bv5MhcLOv3qTX1+CJJs=; b=p5suluTm4KOKesENBVKAXExVX0r4zt3pRnmei+aCaPezSDA4x0zYARV9naC+4nLW66Ea+e+TPl5pjMckgSF4VzmMx6fY4igl4YS1pKnRFmZq4X+HmpZRreVUDP2lFH48c7Ljheot8FkH6oNCJtAxVha2H4H5tJve0BdewGCv1YM= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by MN2PR10MB3311.namprd10.prod.outlook.com (2603:10b6:208:121::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Thu, 12 May 2022 21:47:12 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b%3]) with mapi id 15.20.5227.023; Thu, 12 May 2022 21:47:12 +0000 From: Mike Christie To: hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com, mst@redhat.com, sgarzare@redhat.com, virtualization@lists.linux-foundation.org, brauner@kernel.org, ebiederm@xmission.com, linux-kernel@vger.kernel.org Cc: Mike Christie , Christoph Hellwig Subject: [PATCH V9 1/8] fork: Make IO worker options flag based Date: Thu, 12 May 2022 16:46:57 -0500 Message-Id: <20220512214704.104472-2-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220512214704.104472-1-michael.christie@oracle.com> References: <20220512214704.104472-1-michael.christie@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: DM5PR07CA0089.namprd07.prod.outlook.com (2603:10b6:4:ae::18) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5cbd3e59-6761-4003-9f14-08da3460f8d2 X-MS-TrafficTypeDiagnostic: MN2PR10MB3311:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eQ0HvO6X8rUH9gCVjz/ogAdjd9XgSvS4bGdPRDWsoQFD2VP6IBANlhjd4iBWd+WDunhPVoC1bF1qMpWmFds2/gZVuxD+d8LRfFlXl4pV3jjrZWO9p4jEKqYXzt8X9eKH+dkoXnnnVJzrFgMkfenbN/b4JR2RU1SMqRyYI8p2SPq8H07s0JffPAgmRqHpxgqr58L9Z3fnSma9Jg80u1+2X1AtQFWlt7mS+hQZ9dTZDL6mMDD3OKlyIKqglMvH/4rJoFyfTuEzGnKUXox6qIgDpfAxihjIONPhStbvLv9DG5sYDlrNVolk4OY11TSvbJdTqkSUFOfCDGp6HmiW0ZXIMmDftLzR7ytiqBrymyICoOCuQU8KJrScm0jA14kYh/0QEDxXdrqA4jKZJ8lPFPHp43iyE1t+tN6kt+hcz0XPk4++fYE8biLWZqaEsFBEpN2D33dVbSJTm9R6vr1FOW+CU3Ykp+4KXc7QEJFG4XMYYPRpEbr3U8IRytB7HgwBhXsFthW3L7IyUruZn8THmVEsA9zDSO+O5h2lALw5+k25VHT2UWyjlUm18fltLXoliq8BXuBbaPfSNYnJPCNVOdLfoWOMm1A5ALmMcC2yv6JjGNr2Ipz8YuMyf3alMavs/XYUWaIViVVdesk898OIBCyPkTvIuCrF78IZCUQazzwia3BpYSVJSyWxb37Oo1mZzCe7KpWouuIpg+AEsTWmita4rg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR10MB1466.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(5660300002)(7416002)(2906002)(66556008)(66476007)(316002)(66946007)(508600001)(36756003)(6486002)(26005)(6512007)(4326008)(8676002)(6666004)(6506007)(186003)(38350700002)(54906003)(38100700002)(83380400001)(8936002)(2616005)(1076003)(52116002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rnjESe9JvHanIITKI8ufoXJIkTlqLz3e0fKDGpjWDnU9EzvuSp02v5A5geYw?= =?us-ascii?Q?fnJKzKnKgcR5ozZ1FnqR68cJtMgM0VJQ0anzPjkPDJPZyf+s6vqwrgmgWVBf?= =?us-ascii?Q?xGgA2Ner8WHJEOMfsJUkJhOGFWYZxJFPIDsTL7ekV90iIGieD1cl9dzfoLUZ?= =?us-ascii?Q?AqoJ/1l3Mo6eecodxFhcvPpx4+QCm+UcKt6SNh/3eHk6rvCFJTaMZNpzZf08?= =?us-ascii?Q?1V2b2hz3xqsoOKDDpzb87TEZ2gRz6UeX1Sv+5lGVvUSrHKFsxkJ1f9Lvupmw?= =?us-ascii?Q?5SbWTGq+U9XZgXxxajxWEoXMEv6zoCazO2k+nJzAcUPbkMabDsE0g7U5UQpS?= =?us-ascii?Q?EjH2n+5uvw4fw1rNm7rzCEb4mJ1DyxDNZuFZYX0WbaYhkMoDxdcye27nIo6y?= =?us-ascii?Q?nV8cPE38837KXIWWUhADezPUaeM1RH4LIF9pWriSoPwwzciY5yAvAYIayfAr?= =?us-ascii?Q?0jaHYKt1AYBnmIx6EjGJ5O1FZLcFz4NvsGrBnK95yzlty5jdgVGS9kZTi4jG?= =?us-ascii?Q?4z3layEYujtc+UH8NcaITIxszrM8+RduClVHrOkrsoKOnJ0bccqUIorWmeB5?= =?us-ascii?Q?+NumPEyYZ1n3reL5rsn+BeshjnkVHWzIbG1mSbH1i67oXNiuewfgOVWu06EP?= =?us-ascii?Q?ntHpOEnkKVA+SbChEIieRLOsuY3/Bh8XmuPaaS1ZuBZrIDv42cf8Tettg7DJ?= =?us-ascii?Q?OwKnfrTXgrvcDU77jGwUurGiwIeJcqi7QHgqKAd42KJDgdy8q97Vmw1JX2e3?= =?us-ascii?Q?rMnZ+1eG/UVbzsLqxm7pWmTc8G3tRNu2Phs8utouhSRnIDs2c2zOFCMsMbnq?= =?us-ascii?Q?siAO5qSVMU5gx7N+qp78LeWFt9q1fw7aQNXg5anP2dVDvmrTcyP+EiMsatBh?= =?us-ascii?Q?/MZzdS5Cl7Q9lst8pAZt037Ex6p6gYwPfeo0NVka+P1nsVjExnfqs1MsO/1p?= =?us-ascii?Q?OZGpM3+YAsvMUCjWCwuX0ManzgIfvo4D5hfENgt+a3hAYPMha8JTxxXJi8+v?= =?us-ascii?Q?d6MZM7hp8wYF/z0kPvCKpaodaer3/ZEKuBxt9pY3JKb68dyPdf5piPQ/WqVE?= =?us-ascii?Q?ES7TclJdofeIX/4xwdw13fWjs+pyCkvTWg7ymLRmwsdyEdORsSWjziLK8T/Z?= =?us-ascii?Q?V1LwG1CLhQIcliR6ccCHbZXLTMbUm+y75h0HwjM1yetQNvD7AKvdtthRHTbu?= =?us-ascii?Q?fh1HCqG8reP8N57xuLC5dd/wP8giN5asbgn4kmC1vNNMNSPZG2ENuXrk1ZQ2?= =?us-ascii?Q?mfH8OwcuMoOBU9eBtqVbWhOaa12B2zFvJARVbLNLzP8EXmlkhHpkiAErAAj6?= =?us-ascii?Q?DmzfMNcoarqnKKU1sacSJj42mfCxcBmAhDl0NsO6OapsB84CT9gRvoDSLYWS?= =?us-ascii?Q?NwxZG47qg9dH6kXFZZxdm8oO4CF+jJb151aAzTUsBvkDNpfHQiFsMSyKCTLd?= =?us-ascii?Q?L0ueMgFrFgPL0X1JTEKU/1f5QUKEEKzyyNZ5wcTeUDd/ciRrCrQSed6d1noC?= =?us-ascii?Q?ctBoDXupGlZU9qjWZhb9r64LHGWUaZeFAJQGzoYSk1XWDdPsP57Z4mNHqIPs?= =?us-ascii?Q?O6GrbM8Tds/Nl7ZuUQ/LR++XhHt8z6zlPSMQu0weR6tgyUil6UYEMSJgsfAN?= =?us-ascii?Q?+4t5nIbRECsNYmxV4pYQHLo35So0GnaobeLZj8gZhwBDeZ8hYJCfvO7Lz2E9?= =?us-ascii?Q?efzewCy730MMwzUt2Lu1DjAwWLoYjMzbQ2rOb2drO3GDeHJoTNS8SerVRwuX?= =?us-ascii?Q?hVYVObGdtxCZl2N8k9dzhkG9EiL2uXY=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5cbd3e59-6761-4003-9f14-08da3460f8d2 X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2022 21:47:12.3966 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: a9ph7daGRX8c0hX7eKbx6p/RyIGfjpGeVJ1C5lrVAXlnd7qwzJhmiVir7yLu7CO4zEmbspO9XUefJbjatf8VnnVCkMpLALWRiHOaHAD8NYo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3311 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-12_13:2022-05-12,2022-05-12 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=694 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205120091 X-Proofpoint-GUID: qy8JzMb1rkoe2dCUtBKNFVHWzyiHjnZ6 X-Proofpoint-ORIG-GUID: qy8JzMb1rkoe2dCUtBKNFVHWzyiHjnZ6 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This patchset adds a couple new options to kernel_clone_args for the vhost layer which is going to work like PF_IO_WORKER but will differ enough that we will need to add several fields to kernel_clone_args. This patch moves us to a flags based approach for these types of users. Signed-off-by: Mike Christie Suggested-by: Christian Brauner Acked-by: Christian Brauner Reviewed-by: Christoph Hellwig Acked-by: Michael S. Tsirkin --- include/linux/sched/task.h | 4 +++- kernel/fork.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h index 505aaf9fe477..b0a9d6c75bcc 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -18,8 +18,11 @@ struct css_set; /* All the bits taken by the old clone syscall. */ #define CLONE_LEGACY_FLAGS 0xffffffffULL =20 +#define USER_WORKER_IO BIT(0) + struct kernel_clone_args { u64 flags; + u32 worker_flags; int __user *pidfd; int __user *child_tid; int __user *parent_tid; @@ -31,7 +34,6 @@ struct kernel_clone_args { /* Number of elements in *set_tid */ size_t set_tid_size; int cgroup; - int io_thread; int kthread; int idle; int (*fn)(void *); diff --git a/kernel/fork.c b/kernel/fork.c index 35aa89ed6cf4..f4f2c88d9a2a 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2071,7 +2071,7 @@ static __latent_entropy struct task_struct *copy_proc= ess( p->flags &=3D ~PF_KTHREAD; if (args->kthread) p->flags |=3D PF_KTHREAD; - if (args->io_thread) { + if (args->worker_flags & USER_WORKER_IO) { /* * Mark us an IO worker, and block any signal that isn't * fatal or STOP @@ -2594,7 +2594,7 @@ struct task_struct *create_io_thread(int (*fn)(void *= ), void *arg, int node) .exit_signal =3D (lower_32_bits(flags) & CSIGNAL), .fn =3D fn, .fn_arg =3D arg, - .io_thread =3D 1, + .worker_flags =3D USER_WORKER_IO, }; =20 return copy_process(NULL, 0, node, &args); --=20 2.25.1 From nobody Fri May 8 02:20:08 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B2E2BC43219 for ; Thu, 12 May 2022 21:47:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351853AbiELVrb (ORCPT ); Thu, 12 May 2022 17:47:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231411AbiELVr3 (ORCPT ); Thu, 12 May 2022 17:47:29 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D07C11C136 for ; Thu, 12 May 2022 14:47:28 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24CLVQPf003190; Thu, 12 May 2022 21:47:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=v1XyjQOsZUXbXlg2Cs3rOKGBHG1FQKGTZzOGb8GakCs=; b=GcZIRTA8YVoBmDADjI8FfpzedtoYLb5HeR0WWFZmijdvGbbepCaZAZHWHDNBSYKSNnn1 tUvu6bI40uYqMIeUx7LwTkWrDaTkDhqAOAGtvc5GitNqlqMNMKcwwF5X3EmDCSVgcuHe SKReftx9/phnJLomZxMlXBi1OsBbq1XercGrgFMewUhFf0yFGBkoZxjfughHE0pOXHCi 6BTyRXInMtX3Jgu9Ea009MNdrNZMH/yRXERmCnhE1hgRdCIkdEf9zTCpyPBb7oPDNT4b 7e1U3Ybq1kXuyApFeFKZDHgSc4J7Qdo9TSO7bd8Uc8bwKoyvzWRKHhMPHG7e02BiLdoO Kg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g0a04n2hr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:15 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24CLgIkL004728; Thu, 12 May 2022 21:47:15 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2101.outbound.protection.outlook.com [104.47.70.101]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fwf7c98s9-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L3JX0lrSzha7nY19yUgpZYXMHLp3NzNh6QAm8aqvrbFilmc0B7FyWCudkrR93UYcqDXLyd2xXRsNKz1YKGUeizWaiZZknyjquovaYmasKnIYc+bKo0Okh5zATf5/Q8QbWh27q/vkvlwP+lrhEjlziVTLZv3KIY/d4dyt/t46A0QhyNr0v6aOSgeIwyNybAPnD8KWvFzqnMg6RRHB8q+qM9NpkEUeJ/58s9yY5UpLyGm3/GdIy/9iGk3zWIymwBS5EQI5possRI3rAWVrShzYUZUVd8kxV46jyCHBVtgVWrvmjUMkvBHQVBlWDN3ElQVfH/6BUN/sYFWORu/5cSAuvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=v1XyjQOsZUXbXlg2Cs3rOKGBHG1FQKGTZzOGb8GakCs=; b=DYtvaXwOb7SJApNmjd1YFWmkAu9gey2VtP/XAxYqs6MaShIBKyaKiM31MrAnZ3sD8hxJRBIrmly50J61+tMHmZ+LWMSiB9RXuM/7w75O0ugWaLCrFIy3du0JGc/QvbFY8Jok+QaavYqds8SQ57wiG9ZWKlolNGjKD7/JvCTJ3M9UqZXJzUNpvRf3IKLzhYzmLe9+1Rd8RoEfQSzzsE9f7UJRSvgoaOF+aJr0+arySvtTDD56cUbrNd/9fov67gTW7EQF0PjpQOAZDA4JBsP6n1Qu1brAVUmVatj6ROV/Wp0IGjfVD/B3K/K3+9EuQmsoaZtYyzuEKG90q88WuYrAeA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v1XyjQOsZUXbXlg2Cs3rOKGBHG1FQKGTZzOGb8GakCs=; b=P1h//5oirVoM9cyzABxjkWZ+hn+8zX7uvpXgReSng4Z7YcBkFz51qzJ9rXygXxqDkXL3Gh42/VK3LRFfDb/ZK6G1oiVczfbxAzSIShvExwjFH3Hya8OxEfp4PT1YWE/Rq/9GR9yyXmCsP/rSp92ABwxUd1QyfcLFhgrzpJo7qy4= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by MN2PR10MB3311.namprd10.prod.outlook.com (2603:10b6:208:121::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Thu, 12 May 2022 21:47:13 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b%3]) with mapi id 15.20.5227.023; Thu, 12 May 2022 21:47:13 +0000 From: Mike Christie To: hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com, mst@redhat.com, sgarzare@redhat.com, virtualization@lists.linux-foundation.org, brauner@kernel.org, ebiederm@xmission.com, linux-kernel@vger.kernel.org Cc: Mike Christie Subject: [PATCH V9 2/8] fork/vm: Move common PF_IO_WORKER behavior to new flag Date: Thu, 12 May 2022 16:46:58 -0500 Message-Id: <20220512214704.104472-3-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220512214704.104472-1-michael.christie@oracle.com> References: <20220512214704.104472-1-michael.christie@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: DM5PR07CA0089.namprd07.prod.outlook.com (2603:10b6:4:ae::18) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b716eb5a-2b77-4ae6-ea60-08da3460f91e X-MS-TrafficTypeDiagnostic: MN2PR10MB3311:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sVyXVV9qWojAzYQa9CzLr5o1KttBmGkIj5K3R37Tq2d+EtCmtOE41IkM1Ax4P/0yi97z9WM6oMp+SajR6t3DWNDo+pWjxwDT2d6g0i5qvlHxxHSxy2GwP00nMU71yYrV0hR6uQcXcDATImBxKHL/tXI6aN8D9mXDS1Mbguma9uUiqgBUTerHRXu8aYoUVjhPO79D+fpXN73igVi+t2tLQYDaxeQrdait+87sZ4tWt0AjHi50cBKxx45tFFLetSF1oMkZON+fAViylFDONQbt1jniyMwX+nvwlHWicO8/g+6vdPdaEDKKgCyN+ia+Y/BurecEBy9KAM+Pzo3+jqc+1mN/rc25lpMK7Bb7OB57fNfeRcUS4H/Ez0gevzU3L5Qf/35G8h47EWoukzPm0EOYinZlykgde9qeEznDltC/vnwWCfSZTctUX6eNagoHxzbPKp3o7apTfHUUml447EIktp6wB7OEFrmSL1WT1RxzJgaQUBhPQq1Ua6gnK9CKKedUKmXWzODiF5J29hbOFPwuVc6PCCjz8rbCnPohcPP6ElA7ik9uCA7L7REMyGKnfveJJLpOozc+x60lL7bSHEL2HYUYnZEQMwrk8Ix0iFsWGEsRo4mikPcEF10uhbjAOsSXsakh88TPPaJKnMihvQco6M+YzQ8bwr/J0w9nK0FYOwC4B6fyQP+5AXLakGVd11Vjm7gPtkJ+QEBorL9prMoqyA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR10MB1466.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(5660300002)(2906002)(66556008)(66476007)(316002)(66946007)(508600001)(36756003)(6486002)(26005)(6512007)(4326008)(8676002)(6666004)(6506007)(186003)(38350700002)(38100700002)(83380400001)(8936002)(2616005)(107886003)(1076003)(52116002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YVQtemFZVzFK5qIzKigYR1XfrtT8rujuWm7hpn0TkKzI81JCUYVKGa0aPs8I?= =?us-ascii?Q?YODz5Kg0SoUMCjwsqQ1dxMeXCcod7/E2nvbsN1IjHC2ifap390GC07dsIJa5?= =?us-ascii?Q?x8MMWhl8LZ1NG7Szo4cYx3g8UJNEgG+Plb2CJqSlu1DMuYS/o+Nj8FqvmIQB?= =?us-ascii?Q?hddSlHkT1/jIuprG+BHGtCmNmeDEBD0jx1QRhEVuM16Zre5oc1tQN/9vBJka?= =?us-ascii?Q?0P+JLjApNmVQ1OwVOq1y7CJcYbVtOnKtNNHTBRmyCSVHBXBGRd6MGx9h4Kgy?= =?us-ascii?Q?+KrKZ0c5WDBfqB3Eig/avQJbV1ecjoFoLg5d23DeBko/pFPDkXq3lj3B6LOV?= =?us-ascii?Q?5INSeK1vYZfnV9WDC6OSfk4Ng2mtlXuoafROoECiSpDWSjbkijZRBejk2Io/?= =?us-ascii?Q?9wGd59FOeYzX47kbm+GNmobN2U9I5s6A0I807Dc4zA84B436VVNEk4vFvRF3?= =?us-ascii?Q?wkud6GZqOVX3gMwFtxNYQhicEUz31xyI+9owxw784ladVdPYpt44JOY7mFMX?= =?us-ascii?Q?ZAKqqVct9e9GxsSqLJLDkl2oCrw5T+4VhxtUffhrPIwR2sUBo+U1GuBKb3Ua?= =?us-ascii?Q?HI5c36wzII2t9IMDYhl3DlQVd+27O7UzdxH68ICNZ7klqlVgPO8M7lEo3bar?= =?us-ascii?Q?xtLM1AUrcmNvkOZ1YlYCKZXRoQHdPDc0NNeSp0f6PCNkC5tAuA+VV+WJq06e?= =?us-ascii?Q?3/Uw8pOYKj4AhV0Fjar+86l8t+Hdan0O7s0RsPqRr+iBwRmBU2hWbP5UOPQU?= =?us-ascii?Q?L+ODdd+rcfY3mUIhzG9xheegynm3JC4+E1jL7gOdaM+jzGMI3qUTRwPLnpu5?= =?us-ascii?Q?dPNiWbE2ZB/aSVvfk4wdOY5GhicfpfD3ItHXfr1PECPze9uHPruKJSt5wcyu?= =?us-ascii?Q?93WUwx3nVe0WcVYmYfM0mQ6hUoZQZfSWC+O/w7DRbpYEonoTiz89aGo4lNJU?= =?us-ascii?Q?WG6+IeNOaF5ZklIhIq/dtTyEAJcKzixmBPS3luvw9LKtjz7RZgmdLNEXRaDu?= =?us-ascii?Q?XYaMRzwd9h3fr9cMd9DVmyOFINjJVGHzycSsAljLhHTx022FF8Rarsy34n1C?= =?us-ascii?Q?+WUX7TBAUXpHD5jNRXnEmYbKvZLwOtzh7VClLGzNxzPawOVb6yQPsH+bsBjh?= =?us-ascii?Q?nAWp8dbc9igFXSqslDui2hwH3y8P2rpw6R0w8YRyE8XQg/Z0E2Y+H7oUh5CM?= =?us-ascii?Q?bMQ1YQe2jQiVDG4AhdT/RzwF38JkvcYGNIP4+EJFe75P4k4oUDWsD1JEVDv+?= =?us-ascii?Q?eMJl/Th1z+tNUF+drGCmv6oIjiKwFhUnkc1PVlQsvmMzR5Cjw1zscA5UNlbU?= =?us-ascii?Q?U0IMWFOCFTUJ0c1ZkFSwIthpXTNimW3TqVrKVNQK0xyoT7YtzFLd/BubqLvO?= =?us-ascii?Q?AVSvhPNIYt0uDn0qZliRlQ5W/HJCnYk+BNowD4zYMyNoaQRmESsHAJIMyddf?= =?us-ascii?Q?nBSDMPGwLSOOpqoKIoWaFbGiFMigo/X8lpN59N+eeGd4VWiQJQuWSrrjCPNq?= =?us-ascii?Q?zBGVNRSrvdk++oXEJavlMyPrvwW32DrB2PyLq1Pl9IFluNI4sp7EG0cA6tFE?= =?us-ascii?Q?JjcJRbdkkrsW8q2nXY/IwhUjycMKTNEvOrHCxLpSQ/Umgh5FUUKCg2ogKQfJ?= =?us-ascii?Q?B3k7itLeBYp+JoAfKL6aC9rKkmULUWlRCL9PW9H6mXE/Q+tTPczcOsLhKRbL?= =?us-ascii?Q?iKidtyhLWBeI1D9iaOS4VC9hjAW0N8lgTQzjcIvDf4EaiCFIl7B3rd4YZtOZ?= =?us-ascii?Q?DN8ceKM8DYpYsO0/w9Cy88Hydr5BsvA=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b716eb5a-2b77-4ae6-ea60-08da3460f91e X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2022 21:47:12.8810 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8t/hGr99WsIXEWdZmVZuJeZ88iU5aWBnQPDGX7HGkFWtrIS1AtmT7k6+cU2UHZvpf+UCcfBkK0Zu4KE/0n9QMThEFFASEKhHP3TC927cd+U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3311 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-12_13:2022-05-12,2022-05-12 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205120091 X-Proofpoint-GUID: 5YFTjurr7syQmLBVMbnbXjXQUy64EBRM X-Proofpoint-ORIG-GUID: 5YFTjurr7syQmLBVMbnbXjXQUy64EBRM Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This adds a new flag, PF_USER_WORKER, that's used for behavior common to to both PF_IO_WORKER and users like vhost which will use a new helper instead of create_io_thread because they require different behavior for operations like signal handling. The common behavior PF_USER_WORKER covers is the vm reclaim handling. Signed-off-by: Mike Christie Acked-by: Michael S. Tsirkin --- include/linux/sched.h | 1 + include/linux/sched/task.h | 3 ++- kernel/fork.c | 4 ++++ mm/vmscan.c | 4 ++-- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index a8911b1f35aa..0fa66a098183 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1700,6 +1700,7 @@ extern struct pid *cad_pid; #define PF_MEMALLOC 0x00000800 /* Allocating memory */ #define PF_NPROC_EXCEEDED 0x00001000 /* set_user() noticed that RLIMIT_NPR= OC was exceeded */ #define PF_USED_MATH 0x00002000 /* If unset the fpu must be initialized b= efore use */ +#define PF_USER_WORKER 0x00004000 /* Kernel thread cloned from userspace = thread */ #define PF_NOFREEZE 0x00008000 /* This thread should not be frozen */ #define PF_FROZEN 0x00010000 /* Frozen for system suspend */ #define PF_KSWAPD 0x00020000 /* I am kswapd */ diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h index b0a9d6c75bcc..9e20fa18c41f 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -18,7 +18,8 @@ struct css_set; /* All the bits taken by the old clone syscall. */ #define CLONE_LEGACY_FLAGS 0xffffffffULL =20 -#define USER_WORKER_IO BIT(0) +#define USER_WORKER BIT(0) +#define USER_WORKER_IO BIT(1) =20 struct kernel_clone_args { u64 flags; diff --git a/kernel/fork.c b/kernel/fork.c index f4f2c88d9a2a..19293bcca001 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2071,6 +2071,10 @@ static __latent_entropy struct task_struct *copy_pro= cess( p->flags &=3D ~PF_KTHREAD; if (args->kthread) p->flags |=3D PF_KTHREAD; + + if (args->worker_flags & USER_WORKER) + p->flags |=3D PF_USER_WORKER; + if (args->worker_flags & USER_WORKER_IO) { /* * Mark us an IO worker, and block any signal that isn't diff --git a/mm/vmscan.c b/mm/vmscan.c index 1678802e03e7..0f58587862ef 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1051,12 +1051,12 @@ void reclaim_throttle(pg_data_t *pgdat, enum vmscan= _throttle_state reason) DEFINE_WAIT(wait); =20 /* - * Do not throttle IO workers, kthreads other than kswapd or + * Do not throttle user workers, kthreads other than kswapd or * workqueues. They may be required for reclaim to make * forward progress (e.g. journalling workqueues or kthreads). */ if (!current_is_kswapd() && - current->flags & (PF_IO_WORKER|PF_KTHREAD)) { + current->flags & (PF_USER_WORKER|PF_KTHREAD)) { cond_resched(); return; } --=20 2.25.1 From nobody Fri May 8 02:20:08 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C95F6C433F5 for ; Thu, 12 May 2022 21:48:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358888AbiELVsG (ORCPT ); Thu, 12 May 2022 17:48:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51866 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356379AbiELVre (ORCPT ); Thu, 12 May 2022 17:47:34 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0EDF43EF5 for ; Thu, 12 May 2022 14:47:32 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24CL80Es003186; Thu, 12 May 2022 21:47:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=5d1du2Mt2g4sDKGSe0wrpVELREIHQvJCuKw1yc89ONw=; b=zoKw9v6hCGSG3Kha8B1MZ5Mfd3t1TOfaNC00jqO19nWPD6AFSZ22BG+0NdEptNB4p6WR SPYAr/7iZLr1JjazepuUtEpQkj+mVw38uqhrH2xkTm9L0nyr4gZXRox1g1Nqitso2V+r BhEJJVsboR43jEu7xznCbxC/ElzMc4muXFxNmo8aitI/mTP9crXcmK/qUq6/xw4ZzHtL iAr0GNHBOOWbM6SlixT1nuc1ywhW3VeuZ3P/HUnAPJsQlvZ5HTFPUX0CTk52FdB9GP2W SwbOWc8R+9+fWU0SJdjz4AP9C8FROrerxb6de7YXxyG6urYNkQDVAi0/+aersS3+MdF5 oQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g0a04n2hs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:16 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24CLgIkM004728; Thu, 12 May 2022 21:47:15 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2101.outbound.protection.outlook.com [104.47.70.101]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fwf7c98s9-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DGFmGY1913uUTfoGc4t5OXkW7/+NxoKBzTHNyGrqxVmBAwDdd71sgO1WEmOvHAlNcocBXIh2TxTY5HiV8tZGvWxgfWkEn07hWsOxBArrPQZ/jKKwm1PYnRe3TV2bf5/zBPUX4wQb8mOakML3QsgkY1pXve/dC9qfBiwG0FRvd5PudGUmiqAWfzTn9jgcCO7CxeyNRKRGuFMdc9dRD7tTxzJeVsBEt5ykXKWngUnvDqj2WCtAnfe6T+x/koRleSGBsUHY1ZeDOjFbVvbI7TMxNg+f66x3BDsIRIdNjNNeDbygP6g3Mxd/WEAPUGottmC2xbLLoxN9YfqsoK2e9s0nKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5d1du2Mt2g4sDKGSe0wrpVELREIHQvJCuKw1yc89ONw=; b=MnQmJCICBzYznEN6941COEwrrA1+ismjZ+Bx1t9RhpUAGpRP8lL4EY4xquJuwUbqGYu972Hyecf8uPlVHcrV3Iq8BiwvjodUJVxDrnCfWUGzpUM+SmmjMu7Q+Tc0Xea4VQgWD5f26/6yjHN4/RJTVqyDcgCw5Mil7FWL9boStYg/rdW+JmBWf28ExVKLH3hG+TwjuyjUnoxmzsj0J2RNioEIKfy806/PbPVsP2buoylR+sPz+z01FpwzU36JEiFSm3hB7Uab9NsIba6+9aZV2baRC1F/BpsE95dRnlcM9JCGjC4757MChsUnAOehxBqudNZDb6Z7Bn/W2XpnX4L8Cg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5d1du2Mt2g4sDKGSe0wrpVELREIHQvJCuKw1yc89ONw=; b=upsMDBBFYQKVk5VAoN6dhLvmkgmLlj/i+l9pyFoYsi4N8c3dNfWukAJ5YQihJrL97y0ljUjQG64s+5qdwP0ZPkPCiR+rFZcxNEFqavcU49i7WJZ+9mbRpr9R3lHto5r01LOdldXwu4WWKOk4eHDPQsFmyAi8SoPa/VuQovdguFk= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by MN2PR10MB3311.namprd10.prod.outlook.com (2603:10b6:208:121::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Thu, 12 May 2022 21:47:13 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b%3]) with mapi id 15.20.5227.023; Thu, 12 May 2022 21:47:13 +0000 From: Mike Christie To: hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com, mst@redhat.com, sgarzare@redhat.com, virtualization@lists.linux-foundation.org, brauner@kernel.org, ebiederm@xmission.com, linux-kernel@vger.kernel.org Cc: Mike Christie , Christoph Hellwig Subject: [PATCH V9 3/8] fork: add USER_WORKER flag to not dup/clone files Date: Thu, 12 May 2022 16:46:59 -0500 Message-Id: <20220512214704.104472-4-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220512214704.104472-1-michael.christie@oracle.com> References: <20220512214704.104472-1-michael.christie@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: DM5PR07CA0089.namprd07.prod.outlook.com (2603:10b6:4:ae::18) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f56b880c-f742-497f-35ac-08da3460f96b X-MS-TrafficTypeDiagnostic: MN2PR10MB3311:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: e9jtMRQDTKLNQo1zubUn2MWgUraHRuzyZBnrYQ1AHO31xZNypuAC/c8b7G2Z83yz8ZOY/nLY2iTLhqZPb1H3zGzxozLxsFGQ9TI/noooVAJp0Eu2OY6YsAJ2GOxHgJyIiTTFd92W75Vm8IxyogMQ2espzMEmRTyA/IxFH0l6WUE/lFAteh1d3yBPtbApVZ91nQqB52zjbBgEfUZcryjq4HS5EAz09XreDoIdMWEi10F9vliUA+HPxK9otp8GAU0jm2488kGsgv6YZvFc+SQkFrFwz2xRMcI2tlr55pq7pQbbw9PIV8uq8/d6DXUuvzg2FtTms/KBCN6mbHHBV4Mt13U0cwRLf81mSHKnUyIrw2wTJX50z8cXLuPgx5IrzYZH3yzzTEzbV/6NH7wOrj2vZFqS5oYv8h/JK5q/kOMzoebJN4746/F4mRrsTEFcaUSa2hK45a9eZNeojsPGnid+YQHXmt/6Ls00KbwTnRTqCyRxoRgdI0f1g73i1/HVUzFhiFC/wn8GME0zQP9tzojK24WkF5hNj2H68hvWOpoMg6yr8SHJ39vxYB5Z6nsVKkXZKT+lTGNWSzsymEc7G7+byqXCeZm65ExcEGqnlF3WNfeTb+BtI+eXg0FHuOfuiv5UUpN5l11x5NvHv8O16hzz4hio2Zm+Gt2sKhedlbY7F8ERJyg5xyGV8QJjbjldxBomzEVoDqAyzNKdo/924EuszA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR10MB1466.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(5660300002)(7416002)(2906002)(66556008)(66476007)(316002)(66946007)(508600001)(36756003)(6486002)(26005)(6512007)(4326008)(8676002)(6666004)(6506007)(186003)(38350700002)(54906003)(38100700002)(83380400001)(8936002)(2616005)(1076003)(52116002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cTaMn9QG05gWvSyFwt4YIKR0XQwRzZg6zU9iU/fvL4iSc/MB3KxESH/PgW6q?= =?us-ascii?Q?qUWcDQzVvsQetoBScFsx7lssoQEapj7BybDeL6THWeKNw50GntLt/pHoDZFr?= =?us-ascii?Q?pUPOlDd9PQwDJ71Rr7+CO2wVZOaFTXdsx9lF2YOP6In+G2JxcGMQYmuG9qKQ?= =?us-ascii?Q?66sV38eSAnFSMJOxSbM/MaVn7P+GnidheTYSSV5fHulXSujPNkYs1BrP5W1M?= =?us-ascii?Q?XYdLR82/R4i4WnUmuBYs5NVb0wwHavr5fMd0iHCyhLIBPFZW4hmT3pRHKiNy?= =?us-ascii?Q?00JbK2D6L95RtExujI1Fc9dc3WPCHwdrqh6m2I2KjTD2DlL9D4CJYe2B+w1s?= =?us-ascii?Q?DDtzpSlfPqaxDxVS+qLOx1AkcdmS0pJkXNoCCIhcGiisbOoP1FD9MwOCx2sl?= =?us-ascii?Q?MC/5tDECLxh8KCZ1uIWCO0q/lTEzYBRpmAaAlCB3/XyNsu5Ykuq9dKPltYU5?= =?us-ascii?Q?wwFLdmruOMJJLI+LD/NAlt2r2IgkPaPE7efY7VqXCKrFSd+JlyU5S51YUlSB?= =?us-ascii?Q?NrFEnaHyw6EFpJ5vMwq8scE/B/p5zVaFw9jFjq57DDgJCO4rXs5otKtwuEZO?= =?us-ascii?Q?yw9z2gBA25JO/2GAJVBwWsxRvvauYmBQ3+NNxVUBRmQtKZ2rol0c3whHlUyo?= =?us-ascii?Q?nWXJfbJdr26j+U4EN/m7YsTXxKIDmqLYoBolQ2VEBA1PkIjKItnE3g3mKuk5?= =?us-ascii?Q?1ZdwRaGNes7qw0UNKiill2MQzrbkKQHf/6ZeuMawFPfEbqQqmbJdqn3dSPkk?= =?us-ascii?Q?wpnBSOL9DnVtsnknM+h3V4EAdI8yu6/pmzrEYWYgCWSlCJBcy4Q4vJq+Tdbw?= =?us-ascii?Q?zHEOL8yDCvKD+kOg3LuMzYo7i5ZXID0cKlMr/7+PrdOa43W5fQj1ROMZQmVz?= =?us-ascii?Q?xCws5FpSnjNH/DJhLixbn8A3XJO9uG+snu+HB/souy9hy4I0ArVQLs7y6WfE?= =?us-ascii?Q?YwGTt/j8iiKslEOUnkA6Yn+x4FRxDnHb8ZMwhb7vYzy/Krr/zjfvzYFFWIJw?= =?us-ascii?Q?586f3trZ+gQZy10TVYuaV7LXbxQFOhugJek9WDFELv5wqjhWNxtPuC8+X9OF?= =?us-ascii?Q?GOq7r7ZY5CUssZ1qM8KJCT2gXAgWsyMxR8mp9s7p/v+I91mg7nBRSjaZJfJr?= =?us-ascii?Q?vooResTPusBbjwl8AQtYtGAkESD8K4scVfbZwE71Pf8cgIal2e17CykdDfAO?= =?us-ascii?Q?vn170iFZKL0zTc40bQmhAARFA5jOCYx0CLXCEPA6gJYyuHxgpjqMvLrtYimo?= =?us-ascii?Q?K3Z3vCOg0mugnYrkXZRL6mQnAp30oy0p8hLVAGdFadPQm0mS64j+i/ed86qn?= =?us-ascii?Q?80KscX8/OiTxEmebfsUbHrLZb9/5ifb63aRSyJF3/GguEDErv+kGPNifT04G?= =?us-ascii?Q?fZlaTnpWelCLfekUnNB7kY23LD2uL6jTcH2IeCpCxL9X2j8LIqa/wYRAAYSM?= =?us-ascii?Q?m54rPtKVIxXUymjQ1jxmurpGAd+EZUshpjYjO3XA6DkpxTv8fU1B/9gWf+j7?= =?us-ascii?Q?JKOXrLLcevRrpGIvKiK0tDHRTN2flsdFL8LxxUSGNfk/ZHBbkCFejIg6tlmj?= =?us-ascii?Q?zEXIA4plLwwLlxAXeh2NDY4fefcRfE8piE8f0En2r5HcHwvsbd/raRM+Xr3G?= =?us-ascii?Q?4H2KcYG9NU7Trs4lo1zND9pWoTU/HS6WhyH6a6o9eSBgklw8BvXwmmAFzjE5?= =?us-ascii?Q?xrw5oEWQg+w7scs7yN17M6xAdd1UyXNWhztkXQTdSEcq8yACkbSzi7+XTLfR?= =?us-ascii?Q?/x5G+MAjF/lcSKfGitpVvFtb1vdHSDA=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f56b880c-f742-497f-35ac-08da3460f96b X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2022 21:47:13.3654 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dTqNItbnU/q6KuRpBCl8M52K9QZd59/bpUGpXkJ/1zuAKx7fdye5Jy+lu20SpFCCpBMPh7Qu/wBSKKHishNV+ciZHjdk3QLJ0jI1o+nS+X8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3311 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-12_13:2022-05-12,2022-05-12 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=789 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205120091 X-Proofpoint-GUID: llhbeMWt2WFpaeQ2eI50TEVfynfeVjGZ X-Proofpoint-ORIG-GUID: llhbeMWt2WFpaeQ2eI50TEVfynfeVjGZ Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Each vhost device gets a thread that is used to perform IO and management operations. Instead of a thread that is accessing a device, the thread is part of the device, so when it creates a thread using a helper based on copy_process we can't dup or clone the parent's files/FDS because it would do an extra increment on ourself. Later, when we do: Qemu process exits: do_exit -> exit_files -> put_files_struct -> close_files we would leak the device's resources because of that extra refcount on the fd or file_struct. This patch adds a no_files option so these worker threads can prevent taking an extra refcount on themselves. Signed-off-by: Mike Christie Acked-by: Christian Brauner Reviewed-by: Christoph Hellwig Acked-by: Michael S. Tsirkin --- include/linux/sched/task.h | 1 + kernel/fork.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h index 9e20fa18c41f..7f6364e5aa1a 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -20,6 +20,7 @@ struct css_set; =20 #define USER_WORKER BIT(0) #define USER_WORKER_IO BIT(1) +#define USER_WORKER_NO_FILES BIT(2) =20 struct kernel_clone_args { u64 flags; diff --git a/kernel/fork.c b/kernel/fork.c index 19293bcca001..43213bc926c6 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1600,7 +1600,8 @@ static int copy_fs(unsigned long clone_flags, struct = task_struct *tsk) return 0; } =20 -static int copy_files(unsigned long clone_flags, struct task_struct *tsk) +static int copy_files(unsigned long clone_flags, struct task_struct *tsk, + int no_files) { struct files_struct *oldf, *newf; int error =3D 0; @@ -1612,6 +1613,11 @@ static int copy_files(unsigned long clone_flags, str= uct task_struct *tsk) if (!oldf) goto out; =20 + if (no_files) { + tsk->files =3D NULL; + goto out; + } + if (clone_flags & CLONE_FILES) { atomic_inc(&oldf->count); goto out; @@ -2226,7 +2232,8 @@ static __latent_entropy struct task_struct *copy_proc= ess( retval =3D copy_semundo(clone_flags, p); if (retval) goto bad_fork_cleanup_security; - retval =3D copy_files(clone_flags, p); + retval =3D copy_files(clone_flags, p, + args->worker_flags & USER_WORKER_NO_FILES); if (retval) goto bad_fork_cleanup_semundo; retval =3D copy_fs(clone_flags, p); --=20 2.25.1 From nobody Fri May 8 02:20:08 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D8A37C433F5 for ; Thu, 12 May 2022 21:48:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358903AbiELVsR (ORCPT ); Thu, 12 May 2022 17:48:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52630 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358887AbiELVrn (ORCPT ); Thu, 12 May 2022 17:47:43 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E9E9C49F34 for ; Thu, 12 May 2022 14:47:40 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24CLIV1V024581; Thu, 12 May 2022 21:47:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=+tS2e9WqIUvSewiodMZ3iqCHlaaxfYp0IJgi/05g2hs=; b=LHF3IaympdsHhgdIIMzKh6BxrXLUfy2oiizwUsPMJIiibG7WCS1tqMbCvrgeiLo5uj3J HRVw24k2cMKe9IdkTlXpIXxCSatmKtWKw+yksmTPjveWSIQy7jFBnZ041SnztauVNsqZ ErK4QUWygC/66+igaVIUSfgOuaz2QlzgUAvB8mEl4PggyM8TAGhtu9YlGo7fxQXYCdFk +q0OspF07Xv1kI9kiQwNStXr431D6zyow8qaIyIhqXs2jv4J/406IEyZii/78I/lboe6 yKmg+5h0cezI94iuOYnoMTNSAa1bbzsSXspcSv6Junye3wcJhvcQp2C/Mf7QehaBkJsC jA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fwfc0x0da-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:17 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24CLgIkN004728; Thu, 12 May 2022 21:47:15 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2101.outbound.protection.outlook.com [104.47.70.101]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fwf7c98s9-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MVVnRxNR+961pxOxFiA7eYWomt7EFy8uLp4cjDyk95P4YZc9F1R3LKzOURhSgwicaGt6Bwe/2P3l5IMESDBdrYwnEM9WDAGLGeYkZ6jh50cu2inW/SernUODQ54V7AtucO+IORAwry+lGYNTQxxieeYsNiI1M03mhHAoES6R7NfGAnkJOYz9TBxyPxx5HiHVJgTpNzqJU2RK0mwXNfFloSnWRAeo2Ly8F/UZUzPj/nuYDzCB5l14261BxDHYDvjNW+8qRyTo0TA8Ku1GjwAJ/+lrx7dtrf7vPe8248dPQQw3Bi2ulZGWCpeJn3Kupm+HghfDhDmF7YOmv5uXz2OtKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+tS2e9WqIUvSewiodMZ3iqCHlaaxfYp0IJgi/05g2hs=; b=RsE5hmyHmOuOATylCgfUlqg75j43ifNh2UDDf1FnexRL0XuPsGUHDt2ggOEe6tZjBWGcrF9TLvGrRpIeA6h6jRCZXdqnwVleYuFoEDgwVytDrO5RSC+4mizNfua74W7XIvSbeGiqG6KPMgGxAuId4JJ3yoFNlnjLaR2BBvMXqDQ/U3aCoQf6gK+DA3kD72TPhOKwyGzM7dUD7R4jgCPY6gdVitLBatkg7kdJE+miRt40VdqhPpNAUKWfoMAyEcKWYGWrKulnT/NrS1kZX6GwfTr5hJt3DQaj7shPEiYm4MJ1QKbFnAVLCzImxyX9fTGOmURuTmyp8vEURWGi5HVBKQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+tS2e9WqIUvSewiodMZ3iqCHlaaxfYp0IJgi/05g2hs=; b=OeOHU493OmSULHrH+PZpJVFlJHa0ZxWbKSEGWZi1JJ4i0tR1cgUVYjWZIn7VRWemjw3ertgRj0mOYqCS6I5GdvfU2vslU2oNnsKygwA7l+PR1aWm8uGK0O8l8SREkES0xF3fy4g7ytf2JswK06zbmNOwuQCVD5kV2bZGFwINVAo= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by MN2PR10MB3311.namprd10.prod.outlook.com (2603:10b6:208:121::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Thu, 12 May 2022 21:47:14 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b%3]) with mapi id 15.20.5227.023; Thu, 12 May 2022 21:47:14 +0000 From: Mike Christie To: hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com, mst@redhat.com, sgarzare@redhat.com, virtualization@lists.linux-foundation.org, brauner@kernel.org, ebiederm@xmission.com, linux-kernel@vger.kernel.org Cc: Mike Christie , Christoph Hellwig Subject: [PATCH V9 4/8] fork: Add USER_WORKER flag to ignore signals Date: Thu, 12 May 2022 16:47:00 -0500 Message-Id: <20220512214704.104472-5-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220512214704.104472-1-michael.christie@oracle.com> References: <20220512214704.104472-1-michael.christie@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: DM5PR07CA0089.namprd07.prod.outlook.com (2603:10b6:4:ae::18) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1e8ce216-ca7e-4539-45ad-08da3460f9bc X-MS-TrafficTypeDiagnostic: MN2PR10MB3311:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YT3GQ4/ksPmjMPlIrgtpIubkhd7o4+hhroLUQ9D7nZLIRVQ16n664rl/0FzPCoUEEUQkCFocJAjzhVkZ4oRABu4pl45amkjkc25bfteaJB9ULjv04TQLJCi7SEStyA554J855PC99SA4SIsbQbPvDMQMgSxLLXs7Pe4xr6zssBrn5XuL/1rFMiKoljwLUIMiVe4v58Ne5qvsIYLMHRU6DccqAngIJVTn5Kjv9KE3Awizun2AzNjSqTPBYGDRcU4VjZ7JzF0MicKNvBP4Gw8BT8z5opJYTsatd2AbqJ6/lh/YFSgH3kgAzxBazgMoblWBQid6bGgq+RcC68qUZUOeaEeP4/zChH5vidBYZCjIau/IlJ9EP/M7IHtVNfrLAk3ViyeAXEL0y4zeGWVzZsYHQvtHE2Um/NS4yemyawMrFK8HxZJcby4BN8+2vAaGOCRpojvhm2fnO58+/5pNSy60rkBg21du67SH5pfcAAw5ZGNDkdNJx24CM4MXsiFyFKKRlng3W0zVXHvZMuzEVZjmEfxA8bNHcig1J7EbGLJR9Gpm1Qp3PLBUkWx7ModueSgKCw/81+IlZBTigCTFSH5llv3ZlrXcvGklkZzpxr4NsC5UAjYZpKArw8e9/+1sAsv8bGZuAyc5vUKk64G1priORjOeOzBydM54EeCmwrPrhFvimv2r394U53UGfIK6e8jXYSRW/53PiipytcIJ2Hmcew== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR10MB1466.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(5660300002)(7416002)(2906002)(66556008)(66476007)(316002)(66946007)(508600001)(36756003)(6486002)(26005)(6512007)(4326008)(8676002)(6666004)(6506007)(186003)(38350700002)(54906003)(38100700002)(83380400001)(8936002)(2616005)(1076003)(52116002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/uzbiaMbe7WXbhT2T7b5TEhljHapy1QV9U+ZEnef9njEaytGFgzqH++T4lk4?= =?us-ascii?Q?6IM+6AgjAs/Bga+bpBFUYozujH1yy8gs62FhyIsyvvtscLjR49GY2RpqeFea?= =?us-ascii?Q?x/KtyK9WX0XzMvMOIfODbgKwaiu9m5HEpqvBnmC5GjMPfZQ1Yl6Lf9GfYbdz?= =?us-ascii?Q?Kx6GANMLJ0byZICcglD//snta+C8NXRJUamZgmhiIrTibLYuI7olo0DwElFT?= =?us-ascii?Q?66xD1iURY1TzC5ps/9On+58EyD/jrPE1B5MopHRYg0VBMLBPFE2koh6/KF75?= =?us-ascii?Q?L8UAS3BD7BPIevcmzK8ytIdgIur3pMmKXJNEBjI8d2lWzbUKPg3ezLbA7usF?= =?us-ascii?Q?Y1AWnFM6rqXCCmIUxERLnWZxT4KrcuGXBDrs11L2vbFR37xvPWYYe4MpVK3b?= =?us-ascii?Q?Pjy2eyLiWaFKdVarpfxb9nax3AHG0HtXmxlepcs3CG8w8kZuAPu6higc4qLk?= =?us-ascii?Q?rTnA+cO4RoOb41WnzQsPUu3BJJl5yPZwFr9wSL6P6o6VpDzJImCBmXbeprhs?= =?us-ascii?Q?p9vpaOQOsmiqMNOCvyAKS+XjdaXJJRNYBJely721cLcG67QIhtg11NfiQuDk?= =?us-ascii?Q?owAtL6uMIV5fJp53WZhlpwlZ2hU0bGpQ3Fx03brtQddEI1SgLuN6ay36En5l?= =?us-ascii?Q?g37gsGb+1JhzYJB0sOZd64sgPGAE3zJoX+cQKsSuIr8ijA4n59hllzocCvJJ?= =?us-ascii?Q?LyKS2NhwR+QjdwvNDNdwmfQ94EMViMvAtfcCoCo0EB4xEQdEgKqI9WLx5OlD?= =?us-ascii?Q?mLnlh0P9OKhXkEgz6JQngEkfSZBdldSSShbm/c9NNVjiz2qLik5CZ/Ux5+b/?= =?us-ascii?Q?Le0CYUucJKNnlzrWkf+z9mwZNBbrnspAlcU2fpf1YTbN29J5wP/4v/Mr0/qR?= =?us-ascii?Q?c0zogy//iiPo1eCfrI9zmRPxoKwZOERCrDAmXDA/yRN5X25c9WpyTN9aTtBd?= =?us-ascii?Q?4WqxXlYO/SgxAgvebUuVhHRPcIFByS+OdFQc5XMRdr/CTsMJFAPptGN7FJFx?= =?us-ascii?Q?GIRBFsW+kkbdAPzhuIvAFuR/EoXjXKqShHQDg/iiuMecwT9hMxEhw2DrzaeR?= =?us-ascii?Q?VzWoPz17G3jfp78liW1x9ra/JVplv2S8veMwRZxodvTAP8051HwJJNhI1/LT?= =?us-ascii?Q?jmF3RCl+zilI9sFc5Gi2guYzLsnVQl4vVaSl9HECM2314VUTdCVOQh04Wvoc?= =?us-ascii?Q?U1yKNoftc8bjUYfBwiKh36PbWM91T8+/fu59+3yiXq8B2BeRTtfZPCMVklVD?= =?us-ascii?Q?/Z41/PhzCnhaH5VwMGkrFxlovZhF2wVwAx6aaJFjFxYc6C5CEESPgstFiXVe?= =?us-ascii?Q?olKyxsvAW6BOhx5BE58uvz/sCx6oK2W/oRWe8kWIVWR6whWAxTKDssjimWT5?= =?us-ascii?Q?LDT4HGaE/g1JnURwcLqYXDGsCc1eFFWv29lv7m78Q9VXuY+lRw9/FM+6AAkD?= =?us-ascii?Q?TuRHegYil6aXXLDIqGv/IoQF8piqC5qsUVRjzny+3n/GuS83lVuFmqAfv265?= =?us-ascii?Q?XUySqXhxNWXnFe1KtjJTz84h5cF4AR134L863b33Z/aTZfFFLaYBUJuFLr2o?= =?us-ascii?Q?lpwKP9aNG8gQBeDz86Tf9nF3vHer5wglCFnfJCq6SGInSW585plQM4MCLqF6?= =?us-ascii?Q?Wmy03KkhhqMerz5GEOMLOt+sRwyFlO2A4FFfE5zuSqVtyhX+E54T1pj/BECt?= =?us-ascii?Q?+9tQdeZRUWdL1MMw++czbo1+ibQBzfn2VyQxbLGoXgO1HNMo+wgMGxNM15/3?= =?us-ascii?Q?KafpLqGykoZGr2T8B3gPQGowPiJbBuU=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e8ce216-ca7e-4539-45ad-08da3460f9bc X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2022 21:47:13.9122 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: o6AcULeS/RHWFp6eQJj+lYXIU469NhzMuZswV/ivOL1lDZGQ4YC2f/9v/GYbLLH7TIi1jGdeRJpt4lxzcjXJZnB6GbNSD1i7WDiza293dMk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3311 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-12_13:2022-05-12,2022-05-12 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205120091 X-Proofpoint-ORIG-GUID: HwtyrMXhyJmy8mAqG9_7gsOGKnPEvjdA X-Proofpoint-GUID: HwtyrMXhyJmy8mAqG9_7gsOGKnPEvjdA Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Christian Brauner Since: commit 10ab825bdef8 ("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 Signed-off-by: Mike Christie Reviewed-by: Christoph Hellwig Acked-by: Michael S. Tsirkin --- include/linux/sched/task.h | 1 + kernel/fork.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h index 7f6364e5aa1a..9fbb489b2512 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -21,6 +21,7 @@ struct css_set; #define USER_WORKER BIT(0) #define USER_WORKER_IO BIT(1) #define USER_WORKER_NO_FILES BIT(2) +#define USER_WORKER_SIG_IGN BIT(3) =20 struct kernel_clone_args { u64 flags; diff --git a/kernel/fork.c b/kernel/fork.c index 43213bc926c6..84346fa6232e 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2258,6 +2258,9 @@ static __latent_entropy struct task_struct *copy_proc= ess( if (retval) goto bad_fork_cleanup_io; =20 + if (args->worker_flags & USER_WORKER_SIG_IGN) + ignore_signals(p); + stackleak_task_init(p); =20 if (pid !=3D &init_struct_pid) { --=20 2.25.1 From nobody Fri May 8 02:20:08 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4344C433EF for ; Thu, 12 May 2022 21:48:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358897AbiELVr6 (ORCPT ); Thu, 12 May 2022 17:47:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52066 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358804AbiELVrf (ORCPT ); Thu, 12 May 2022 17:47:35 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 64FB82DA84 for ; Thu, 12 May 2022 14:47:35 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24CIa0Vb013766; Thu, 12 May 2022 21:47:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=cgQYMnVyBrP6eyHdzTgLOco+ndaIzq1ErtcqwtQ9L7E=; b=Jj6/od2Y9d0WLTsbQccJ1F0lwJyAXomZ/5DInG6gLwbTwEQ3lofmbDnhidrE62KxknRL IhPD1pzeJv8h68CWZ/PAxeUHOf5XJJg2G1pwPK0NZfIwgItI/4LWnlLC4mPZDRR0lged 9ixCRwpeNUHxaUH2mS8+GpVXcmWkl+S79nxwg7sAhYYocLOYyLBR53/A7E62ZntHkPpv ZApwEXwxvbzMZFOjv2yEQ8PJsC0/K5fCK/WxAUT4MiFf3q99gqNz7soazzLMMH/nCb4K A09H13H554D56D5dLr+HE/HKkwzR07oNBUa5AaS4wPp0+IDD967QkvkY1r4+EGBJGC+J 4A== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fwgn9wg07-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:17 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24CLgIkO004728; Thu, 12 May 2022 21:47:16 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2101.outbound.protection.outlook.com [104.47.70.101]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fwf7c98s9-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gY4/UdLPHAbztDnbDaMryP/WamyrJeKcDe1jV2XRs5TmUqcSEsD3xBezRpHaTFcY1CYSNctTV7N2QUuukmJNN2NrQYWdwn53pVasK1GCY/Q4afRD0cmKDAD2UII5TFNiDaZnVmpsgv16c+1ijEh+5Q0i/KnuEY3wQc/YyKm/Up9oRERLyMCRFCWi+oaALp69D8iODYrPzZ9d3v+cZ7R6BtRiJ8lESmVULbmgsrrRKMgZhjTTXdXVovL3VsacKoulYsjt5Oh5NJ8W/bJQPGt2hh1schpqR4jPQrjz3J0w0rgltjxO8edbzO2vA5BX66kU6Hp7LDQiVSV9jrC0XO7+NQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=cgQYMnVyBrP6eyHdzTgLOco+ndaIzq1ErtcqwtQ9L7E=; b=Cu8sMdMVpGZYmjYYkIhf5eqVeIne3Rjv6+qp+1Zzl0bdhEU+l95TFlCZnPmA7Gbe3LUotnnK0l8P1MjsORPGInHybOpJjHik7cqCYag3k1MtZT+h1Q7HrSrm35a8upHl/iqAzl4JnaOdWA0+wPIBTyU2tKOtWtfWQDALCV2AzEddFtakV9/OBDxHsqJK4KMvpLzLScPXj+cjynIDFSfaKwpYeaHpOHKess1I1iK+6I6oNHkRWUWqQglLZTNjH9mMOsyJIrnizXdpJq5amZMaa2IkX2qjbh3+kjtQ8+wql9J/vpcwJmd/CQ3qayOzzkMCHtXEnSYcKKUKgzHZvAuXBQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cgQYMnVyBrP6eyHdzTgLOco+ndaIzq1ErtcqwtQ9L7E=; b=woev75G669rTP4tQAeOhPx0BO3kvIw8v7KRv98w+aZ5pQq6++ymNJQbk6gCIPkqkJHSpRKjT6CL/lNYcZJNbi9/B015m4vc3JhtulWvxtFmNXK39Vikr9F1XNS1YK/UKCMZx4IIZcnvj46wLKqLEM/qx5rHUjZVYlD7L7pi3yxA= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by MN2PR10MB3311.namprd10.prod.outlook.com (2603:10b6:208:121::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Thu, 12 May 2022 21:47:14 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b%3]) with mapi id 15.20.5227.023; Thu, 12 May 2022 21:47:14 +0000 From: Mike Christie To: hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com, mst@redhat.com, sgarzare@redhat.com, virtualization@lists.linux-foundation.org, brauner@kernel.org, ebiederm@xmission.com, linux-kernel@vger.kernel.org Cc: Mike Christie Subject: [PATCH V9 5/8] fork: allow kernel code to call copy_process Date: Thu, 12 May 2022 16:47:01 -0500 Message-Id: <20220512214704.104472-6-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220512214704.104472-1-michael.christie@oracle.com> References: <20220512214704.104472-1-michael.christie@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: DM5PR07CA0089.namprd07.prod.outlook.com (2603:10b6:4:ae::18) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: edabc01e-a35b-46d1-90fc-08da3460fa08 X-MS-TrafficTypeDiagnostic: MN2PR10MB3311:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: q53W5kzqWpQFS8+/zt5GlsZGo92yx5kuLCQ+RiadcHetaPimQAWxMOKgK+Vs69UHkU23TEBfyvnh7uUxwgGzdLcGVkAhmYw1kUQf/nXc7hsrXAQrE7PRGjQqG1SGClYZABHJhH8d6S6nRTGb61jiZ/QodEt6YWyD3p/Qwqy+v+1ylWVwmq5Iv84wtco3f6Bmttyr4w8CJ3w/L+yNloFQPOqYRMk0vrgyT3c9lt8vM+KJ7zbNQsHAZ7jPyxixd7F6zw65WpuXR7yBKOO8StdreEv4WOQbJovBlGyef0SPe79ogoGQlEOk8VqICUTXZCnfGfUUbcJCW1hBiqE9hK1qI/8rIzSHDegcdSxTi5jnJ8UL6LdIVGVUiwTd25/d/Yh1kAgKPpwkKWo25XEpp0CKR9ECTshTC9t/j0JjXq4xPRBmfXj0XlTO4iDL316ZkmSAaSnmeM3Ja2gaUmhLAfTWdMna19zzrWy0hUkbtUT9JO/fRETZ4Lb2IjEPuX3WmurfhcZVigEj6ld9s8pNrDDVTX3GVuGaQa9+pFY+4xyx3N9h3PYVgoRbMC+a3iFtXabYjF9FPH+GSNMnuXJ3Pw6D4SGQfIhRcrez0fUcAJOxr0Z4H1+3frNjzEiW7uLX/zHEdVUROD9D5fdSpRJZF2dxw9imFPCmEV4GOe6WLESTB8nt81HomfnPiaYi6EtV5gbpp3ZT3mxffT0HZ2e8Ha/3Zw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR10MB1466.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(5660300002)(2906002)(66556008)(66476007)(316002)(66946007)(508600001)(36756003)(6486002)(26005)(6512007)(4326008)(8676002)(6666004)(6506007)(186003)(38350700002)(38100700002)(83380400001)(8936002)(2616005)(107886003)(1076003)(52116002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iIzpMWP0XnsNCT5+r739fQOJy0PtfQYHR5DWN1TrUe3BxDVe0hpwqYT2uXKM?= =?us-ascii?Q?f5Y0x7Dy/3a9XEW6I9lApRB4CoAYEvvaBbxFsHoKkyVypjd5ZFwBuNg8W2FR?= =?us-ascii?Q?Hh5QKpB4xVRv1JxB1N+RtgjR75yvv66FCJ18nX5WccKjRpt3+mZl4OIf/DIi?= =?us-ascii?Q?ymw9NdzqGOOFXlaonNLhylya6mKdRoCvdxpGbQ8B9o3Ch+WNfjs1foLm9T3D?= =?us-ascii?Q?AjCndYwVQLkHeZB2xZADDebg4pIwRETZ03CKtskrn8q1kik0N38wUpqZDPRl?= =?us-ascii?Q?iFMhp0AzkNXs1Fo3mGlu1d6Ye1oiwCIT40yh8layWQDUS7WYm5lR+2y0K3EK?= =?us-ascii?Q?jyz9JyTmxSwSOj7YP+/YTvq1lWE/gjaPHXwjbX0T0ig/wExFRtpItlbFfiuc?= =?us-ascii?Q?pSi8+gyrqLAkEBbS2yUggPoOJtWHkm3QNRyQNM8mcs0eNjJkKnPWx4iavX8E?= =?us-ascii?Q?3Qwbf18IqZoIHLNE93dNCs5WjLDLqAiD6MrYxwgnjwRqUZyagORZfQSeCYmN?= =?us-ascii?Q?bEqM4I+tzPfTQT/IzkRHbJrfl/4f0wWSeXXa1yx/MU63X8jD8t03n7dHS7nc?= =?us-ascii?Q?kLUsE5mTkay8DZNalDQ5XvEcHN73JDid0k75s2CpENQAKNPnSPODXhjHcryt?= =?us-ascii?Q?2ovfEAk9XjKGkQQXVtscV+ubczkpdX5wmG6isQ5Y2XsSabpEBWZJjLU5+tza?= =?us-ascii?Q?XQBztRW9VzpAw91Mtpc2P4R8dzXh2LAx8iStUk3x8hV4/CO5+632qA/CwhjQ?= =?us-ascii?Q?f3YyGGrdvjGCrpdTE1I+RjDU/27X+C3RHW3PHt6HGcB+YqtJWjodEbUsVO2n?= =?us-ascii?Q?FIWiNKkf7bRzV2m9/yIXDZA0Ko7OBd0fhKDNTSCX6CZYN6KnDG7zX521vnnh?= =?us-ascii?Q?ZKDfCdkXkpR/xZ48LdL6FwTftQkEW/twHLUFIqr5ztgl7ZeWJXh8Fv29Hrgs?= =?us-ascii?Q?cQXR6mvlEgM7/GNz6GxSzUHeWgR+yjnrCX0x2jiunb7Q9/8qgNXEtXtJlCXr?= =?us-ascii?Q?ZdUSdJyBuoOeuyUs2B1t/TvNaboAWZ6/3H9dAxy2Mq1rnCKseQWynV8B6juv?= =?us-ascii?Q?6rdLv6XpQ3FRGGBcG4Jd9BdtsEXDgoAWJjDDfn7UkLYUeFhS5lzghIrmGepK?= =?us-ascii?Q?4alflX32N9EV32Xpw/Uz79YEV6uHFi7RxRazZArleh9swBAIyXtRjqi4viFn?= =?us-ascii?Q?x+4y+08aNKpRGLraqq0K7ZexN9ssIOpalFjpGNoFsPHpQTCDw6CdytRcwIdZ?= =?us-ascii?Q?j7sj93v0yvdodGg6hajrM3j7kFwMGokrEM70zIVG97LLKVc9GHPxWYCKdvpZ?= =?us-ascii?Q?QpELTCejraIjfJfg2rocHFLiWb2YBusfJX5YePU6Jbc/84rQTGI47LhsPJTW?= =?us-ascii?Q?8QRs/K99ejCYMc4pYOs0TGibyq4LS5jDBj7+DtukMy9phb36vJ10EcqMrj87?= =?us-ascii?Q?83tkGqmOA0agX6RcYalLP+Kf/hr5n/PrSNnHtDc44NhVISMPbZdzOBABowUh?= =?us-ascii?Q?BQTL1EJbx7rOu+v4j9ZwcB2Lw9IPzAcZPUThZ6K3yfbE32va+8kMrG4gZW1t?= =?us-ascii?Q?ABCTImcnQT+70pFX6vtStsZimJ8qDL+yjRsBBuAO31PbiyjBV7Oj9WOhHKiA?= =?us-ascii?Q?/m8eVO4LqCLQ/M9lqu+eoMI+SF3ZvPv7brwlmS0CsC7fDOytvc3AZznyEjUl?= =?us-ascii?Q?mNNrW8GDGDpMf6iYCfiJIq8w4JUrC/6l0F+dAw/aTVXZUGuJJHzx6HaDFfYa?= =?us-ascii?Q?NpTNpt8ygPop3+F/JUPQYiHRHIduOzo=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: edabc01e-a35b-46d1-90fc-08da3460fa08 X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2022 21:47:14.3966 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 572wjbn3KVcBvL6YgZw5FLyD8OrE8XsNsgwfpeqDHsxg4gc1Ft2pDuWkzvi8VT9eZ1wyCWdFakUQzrxHHJuAPwkdk6CzcHFZEyhkon7aKss= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3311 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-12_13:2022-05-12,2022-05-12 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205120091 X-Proofpoint-GUID: PzrZZ_d3ks3dmMOtg93aWBdAuCdAnl1v X-Proofpoint-ORIG-GUID: PzrZZ_d3ks3dmMOtg93aWBdAuCdAnl1v Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The next patch adds helpers like create_io_thread, but for use by the vhost layer. There are several functions, so they are in their own file instead of cluttering up fork.c. This patch allows that new file to call copy_process. Signed-off-by: Mike Christie Acked-by: Michael S. Tsirkin --- include/linux/sched/task.h | 2 ++ kernel/fork.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h index 9fbb489b2512..ec4a0097fe4c 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -93,6 +93,8 @@ extern void exit_files(struct task_struct *); extern void exit_itimers(struct signal_struct *); =20 extern pid_t kernel_clone(struct kernel_clone_args *kargs); +struct task_struct *copy_process(struct pid *pid, int trace, int node, + struct kernel_clone_args *args); struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int nod= e); struct task_struct *fork_idle(int); struct mm_struct *copy_init_mm(void); diff --git a/kernel/fork.c b/kernel/fork.c index 84346fa6232e..cdb385dd6c1e 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1975,7 +1975,7 @@ static void copy_oom_score_adj(u64 clone_flags, struc= t task_struct *tsk) * parts of the process environment (as per the clone * flags). The actual kick-off is left to the caller. */ -static __latent_entropy struct task_struct *copy_process( +__latent_entropy struct task_struct *copy_process( struct pid *pid, int trace, int node, --=20 2.25.1 From nobody Fri May 8 02:20:08 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1AFB3C433F5 for ; Thu, 12 May 2022 21:47:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358893AbiELVrr (ORCPT ); Thu, 12 May 2022 17:47:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51846 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1354943AbiELVrd (ORCPT ); Thu, 12 May 2022 17:47:33 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3A38543EC9 for ; Thu, 12 May 2022 14:47:32 -0700 (PDT) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24CJxkOS010429; Thu, 12 May 2022 21:47:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=wCzJ+fhQFHx8Vjbt3S2LgdprYaZhra/6gCOdfsGEKos=; b=f7Rbj/kYo84axy21hWojgBDDW2Z8QgiPUbKPj8vRX87WPPVDzyZ48JlISF3iggZHZgIs Q1Thmlzj0/mC1B1oN3fscmS30xrULrCrhtpepMuNwh6lFmhiCoMlz7d7n4RkPrhJf4Xy thgEDWxkUlpTTRkDFM0CP8BsU0Cpg1Ke64D3cTf95iRw26yfgHMhE+TrD1xOclyb7FBn cajpCGFPwRlQv7fKjEXwpJBF/UUTwwgh/a3pkdxlBvFWDWcU4BiJepNH0du6TDaJ6XdO eCmFt/CAGSk2bYO8ATtBemv6d4Z/jRQCgex+Drv2QwcoMeU2XOOEAL0Gc31E9W5e6Xd2 IQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fwf6cdn01-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:17 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24CLgIkP004728; Thu, 12 May 2022 21:47:16 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2101.outbound.protection.outlook.com [104.47.70.101]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fwf7c98s9-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OrEYnAYj8qXtYo+/Gp5IWIcJWKWU5JXTC3IGaeZ0lKCdviGw3sACjyqTeb5aVOP1jjNuMO45uz3ntolT+TIC/g67G7ZKXJdPp2VXe1tvmU3aeNPHb35HFC4vrCGaHvJbNnm0Os0zScXDKTWCcTNRSGDlNlEbsXEhVMQ7ig4ZZhZY/6U2HPmdAO/LeaAzlQ/2o+DTAoxXu2sX+gjwV1HxtcqBE/SftHAuKKWZDNqwaTy4oNxcW3pAXXBI51P8fIA3VkRs4gcUQHrWXOf5PwpYI5u00z/83eZwoUwkUlBugMby+7tS3Fh3uNS/zmlP9yD1hYnAf23ulh6iuC5Xlgm59Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wCzJ+fhQFHx8Vjbt3S2LgdprYaZhra/6gCOdfsGEKos=; b=Gt2uxpZkZGBc0PR1usi18pJlzQfIJcktoRlSBX1h8Osmnw5r0kwLxQE15pOLGYmdSxxVIVrxYm5btMP4wtz3c3scNy/5RqIm0WPNBiVvb9f4U9mCRoUlrUEzKcAabSNkw4B+ZY77TgjLGxR8WtMI97X9o+xcQHnFzglGJiSNeWvaS4d3OwdyZu0tTuPrYptDQ8w7aEyY47etCLRo1ZXkXVYa5DGsKRpCp08jPflcemdV+6B9smU7ZDoF5gBKiau2f+1qnz9Za5Pa4myB3LfpJd6PPj4mY8PizEib2Q/IfxsvlA98FrU8CESf62cD1PsWBGhhqt86y2GDrYTTyGcMNg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wCzJ+fhQFHx8Vjbt3S2LgdprYaZhra/6gCOdfsGEKos=; b=ob6L/bxfVzTUT/BZUUdbMmidkPAwhwoecIgvkY7yZAGpBijFQjU1YZvR9SpTIeXT5+43ozkydZjF7VCk2P/xl5To/Rv5j6BIAEo5DLtACcBHPnEja1tDYbeXhFRVe/NAK5xsOMjV1I+P6LyiPrv24/HmeZS5mbtQqm6C9280so8= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by MN2PR10MB3311.namprd10.prod.outlook.com (2603:10b6:208:121::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Thu, 12 May 2022 21:47:15 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b%3]) with mapi id 15.20.5227.023; Thu, 12 May 2022 21:47:15 +0000 From: Mike Christie To: hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com, mst@redhat.com, sgarzare@redhat.com, virtualization@lists.linux-foundation.org, brauner@kernel.org, ebiederm@xmission.com, linux-kernel@vger.kernel.org Cc: Mike Christie Subject: [PATCH V9 6/8] vhost_task: Allow vhost layer to use copy_process Date: Thu, 12 May 2022 16:47:02 -0500 Message-Id: <20220512214704.104472-7-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220512214704.104472-1-michael.christie@oracle.com> References: <20220512214704.104472-1-michael.christie@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: DM5PR07CA0089.namprd07.prod.outlook.com (2603:10b6:4:ae::18) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0d9f6409-7565-43f2-659e-08da3460fa5e X-MS-TrafficTypeDiagnostic: MN2PR10MB3311:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ThhHeaMuE1NbEyzq+vOiv1JRGbiegKWu15nOCNK20qAQ+GCMQe4SUP/By5JH4n/fXL3bNWVkgpxQsnCIfDuu7chm1zzX1tS/i4mjs2YuO56VIoPVs1txIdS74TLXbs2L45w1kAzTSqSPo9r5s1Ckfe1CFCCNXhdhxTMvkODJrAFt1ywjI80mLOe9ussyeogx5bLD0Y+grKru9lzQD/4XsQ55SCZuXGRlSNfI6VCyLYckZFkZSwuoNZD/r1qa7XJP0D2j13+N/YDzpkf3Bnma4Fnxpbs3r79Zi71Z/SI0hgqTX4NW5xsX/ZopBlrjoHv2P4sm01SpXrVXtU5yc9CfQMSzbVqXhNs6FFVbi13E0/n6k/v7RHR0Q+W8ROC2G8G2VUKwE97Uv8yK6uZvEKtYFwtFRdoZv9e9erY3upFqGghZXpp0tauIFPCQ7bD+7E9hmpLE5EL/SvtIYc362mRp1ONuK7zx3ZAym2j4bMFY9rQ4JYAfW8RMWIl+qTkLXJ2v7Thf06biEjtJKqWIGcJhPQUlbjU2+8eeBlqxczoYw4khoIeGd5lyT2KSabRCVprCvT30NdSvIuL2kIWe+C6WYqIrVNX6eKQBAppiv3MEWdX6ZDWQqI2m67icii9mmo+NQNIuSsJmRPqCr6bhCpgfAKjzlpgXD/TkEf5td4tkYspByI5S61m5qPQ/JjqV3ylfgXWngM9Z+V3dIAjUEMYNSg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR10MB1466.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(5660300002)(2906002)(66556008)(66476007)(316002)(66946007)(508600001)(36756003)(6486002)(26005)(6512007)(4326008)(8676002)(6666004)(6506007)(186003)(38350700002)(38100700002)(83380400001)(8936002)(2616005)(107886003)(1076003)(52116002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Mey+TXyrgdvoLpPMwWRRiRXnsdULMqp7O+UTdxwqkYfk/9rt0Ca9EwSm/r7V?= =?us-ascii?Q?IG+CX6M468PClfJN4O2x4moKkaqXwNggZP5sz4fLqvAXoLI90TCVuc2c3LYR?= =?us-ascii?Q?ZWeGbYz9Dxs9vGc5Wc004qySy3aEVdX/VTnUOk4N3UXF7PT2Pgb1k9uj9oxL?= =?us-ascii?Q?PAB807nyPP/M7KqYjnuneM7wHRS28/JMislDWH/q63nvLCTRGBZWf/gaVrY4?= =?us-ascii?Q?TMSU6vD4qzfuskzUotl/b+Rb+m2pJUvMuCMByhJ5AU7X2OuMPUUr7xzjvMM+?= =?us-ascii?Q?mR0j6h0gdF01Dg0dsx+Xxm57DmELL4V2SuKBlZV77tjjdMHBhPSAen5WZLt3?= =?us-ascii?Q?UZIj52nDixTpe4MAv2PNNmw39LWNe2p1Gra+6I342BQfe8BHHs89jYybUkJF?= =?us-ascii?Q?ZkR6fzpslrUnH2Xz/qHobeJNnYFZjabNowUN5IDDETJ5DhrFmqhqxCPORBjg?= =?us-ascii?Q?M6RZKMIIgSytMgkr0Q0J8aH4j2H7lxaTrTF9DWbFJr9jeTl4MO6cYh4Fgjxh?= =?us-ascii?Q?zNb6sx6ayMUXag7MrNiPLGmpIeTIVB6NA7eomRneyhQDGEI2NMu3DqSduiql?= =?us-ascii?Q?fyS9YMiALitnznCdbXisfq3K7Cq9k4gbZKt0mc0WAN8xcUOnOD5lf712BhCa?= =?us-ascii?Q?TxWJFsLjMWGOqvj8l5Q/x6sQZG0v6isUIjyibmV7w0QHBInIwgkqrMvvpML2?= =?us-ascii?Q?fg8Z/bH6KKy8Gv4HMvdQkbQj3TUfQ9MKjowQQIEtPwmusB88n4j17ibNgg+b?= =?us-ascii?Q?fpbV3EHTrKGFaSH3FYagWAyuVTh6PEAypDjiPjxRQxR0spjREFPO4hVirnbt?= =?us-ascii?Q?7hpnKDmyekm6TlHeSrMVWWkyXG0rIPO+QIE7bHzr0Sua94rUWwnc9qy+GXWN?= =?us-ascii?Q?lf4xmxnNP4uVEWpdzvWWXrdcMqoZPCoDupjXjqT3YkDlQPE/L+VYpgcjBsO/?= =?us-ascii?Q?9zEnr5vXInAl/0tya6FS/G4dLAq6C+M0bc0KU/Kw9zNkASHcDSWWSTXfpUJx?= =?us-ascii?Q?3y3m1+Ji1SKoq7VJCZbndR+rGCsitf9FKmHRfrCcYOxfspHei3Bli6++Dz5f?= =?us-ascii?Q?DpFJGEt6nqhpfdyxHp79e1iblU3LnU0E+dJk0y/oWY84oRgkfHgGbButMnPZ?= =?us-ascii?Q?EXcNIVVX17GZagl8X/TTQ8V+Dsf7nXZYCHW6xvtGSERo9T+wjX7AkXxYm+N5?= =?us-ascii?Q?+pt3iLE8+co6CSgo1rPLaNGkYbKXkRf6xEth+sGjGd69JitdNndl0zgvSotP?= =?us-ascii?Q?L0G0WEXPqslLUhuuducOZIbXJKjRLcIMPMl46n4F/wYYZ13E3GT2tb6qr6Ar?= =?us-ascii?Q?+EW5hzX0+ZDoyxl1dYgoqtpXDGI7LN98LsF85ZMSTbpatr+nqji2OVv8qbdS?= =?us-ascii?Q?nzi0s3Gv1pqBLYHXcfBwmx26vzKDuCitzm7MnVxc5/kWoD3rTPuwkMiOSgRT?= =?us-ascii?Q?la0/xLt9W2mqV7M9B29qVYrJf/9j+OQiryAnr48Y8l4Tx7BkedYekKpoI4ko?= =?us-ascii?Q?fjMNUVLLyEQh53IscLjWTro+T3oCBrGub0h9tglDw3krsHKdMIYS9zChIK9Z?= =?us-ascii?Q?MHvkwz0/eSENX7j7EKBEPuvW3IdJaVRKTviuy8p3E4mkrvI20jhUGNgDwD4Y?= =?us-ascii?Q?sF4f+q5eRm8vqHe9V+sXAtjhw3GKjhJUlecHehwfuapgeHdlATvBhy1tbHax?= =?us-ascii?Q?XC0FCjTVzbCJrK0wXF5j0oSGwfaDgSePsPeVoegtpICUUHZt9thCWfuY0vjC?= =?us-ascii?Q?qmcCsM/V+Cdi7KL5Mz9BhNHkYziiUSY=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d9f6409-7565-43f2-659e-08da3460fa5e X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2022 21:47:14.9591 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ISeGuq5oXdC0VYUFq9DHiJlOXM9FMAFUxBiQuTcp07DbvuAjMhYJyU9PoL+MToVDoTVHgX6t8p+POX+otwXrWQm3TXhXFL9pNjIagzjjiEU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3311 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-12_13:2022-05-12,2022-05-12 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205120091 X-Proofpoint-ORIG-GUID: aJP910P5OPdO0ewXR_FyDNI3XIVs4zwM X-Proofpoint-GUID: aJP910P5OPdO0ewXR_FyDNI3XIVs4zwM Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Qemu will create vhost devices in the kernel which perform network, SCSI, etc IO and management operations from worker threads created by the kthread API. Because the kthread API does a copy_process on the kthreadd thread, the vhost layer has to use kthread_use_mm to access the Qemu thread's memory and cgroup_attach_task_all to add itself to the Qemu thread's cgroups, and it bypasses the RLIMIT_NPROC limit which can result in VMs creating more threads than the admin expected. This patch adds a new struct vhost_task which can be used instead of kthreads. They allow the vhost layer to use copy_process and inherit the userspace process's mm and cgroups, the task is accounted for under the userspace's nproc count and can be seen in its process tree, and other features like namespaces work and are inherited by default. Signed-off-by: Mike Christie Acked-by: Michael S. Tsirkin --- MAINTAINERS | 2 + drivers/vhost/Kconfig | 5 ++ include/linux/sched/vhost_task.h | 23 ++++++ kernel/Makefile | 1 + kernel/vhost_task.c | 122 +++++++++++++++++++++++++++++++ 5 files changed, 153 insertions(+) create mode 100644 include/linux/sched/vhost_task.h create mode 100644 kernel/vhost_task.c diff --git a/MAINTAINERS b/MAINTAINERS index e8c52d0192a6..94c77f4a1ecb 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -20919,7 +20919,9 @@ L: virtualization@lists.linux-foundation.org L: netdev@vger.kernel.org S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git +F: kernel/vhost_task.c F: drivers/vhost/ +F: include/linux/sched/vhost_task.h F: include/linux/vhost_iotlb.h F: include/uapi/linux/vhost.h =20 diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig index 587fbae06182..b455d9ab6f3d 100644 --- a/drivers/vhost/Kconfig +++ b/drivers/vhost/Kconfig @@ -13,9 +13,14 @@ config VHOST_RING This option is selected by any driver which needs to access the host side of a virtio ring. =20 +config VHOST_TASK + bool + default n + config VHOST tristate select VHOST_IOTLB + select VHOST_TASK help This option is selected by any driver which needs to access the core of vhost. diff --git a/include/linux/sched/vhost_task.h b/include/linux/sched/vhost_t= ask.h new file mode 100644 index 000000000000..50d02a25d37b --- /dev/null +++ b/include/linux/sched/vhost_task.h @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _LINUX_VHOST_TASK_H +#define _LINUX_VHOST_TASK_H + +#include + +struct task_struct; + +struct vhost_task { + int (*fn)(void *data); + void *data; + struct completion exited; + unsigned long flags; + struct task_struct *task; +}; + +struct vhost_task *vhost_task_create(int (*fn)(void *), void *arg, int nod= e); +__printf(2, 3) +void vhost_task_start(struct vhost_task *vtsk, const char namefmt[], ...); +void vhost_task_stop(struct vhost_task *vtsk); +bool vhost_task_should_stop(struct vhost_task *vtsk); + +#endif diff --git a/kernel/Makefile b/kernel/Makefile index 847a82bfe0e3..7fbf3eb6a86b 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -15,6 +15,7 @@ obj-y =3D fork.o exec_domain.o panic.o \ obj-$(CONFIG_USERMODE_DRIVER) +=3D usermode_driver.o obj-$(CONFIG_MODULES) +=3D kmod.o obj-$(CONFIG_MULTIUSER) +=3D groups.o +obj-$(CONFIG_VHOST_TASK) +=3D vhost_task.o =20 ifdef CONFIG_FUNCTION_TRACER # Do not trace internal ftrace files diff --git a/kernel/vhost_task.c b/kernel/vhost_task.c new file mode 100644 index 000000000000..517dd166bb2b --- /dev/null +++ b/kernel/vhost_task.c @@ -0,0 +1,122 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (C) 2021 Oracle Corporation + */ +#include +#include +#include +#include +#include + +enum vhost_task_flags { + VHOST_TASK_FLAGS_STOP, +}; + +static int vhost_task_fn(void *data) +{ + struct vhost_task *vtsk =3D data; + int ret; + + ret =3D vtsk->fn(vtsk->data); + complete(&vtsk->exited); + do_exit(ret); +} + +/** + * vhost_task_stop - stop a vhost_task + * @vtsk: vhost_task to stop + * + * Callers must call vhost_task_should_stop and return from their worker + * function when it returns true; + */ +void vhost_task_stop(struct vhost_task *vtsk) +{ + pid_t pid =3D vtsk->task->pid; + + set_bit(VHOST_TASK_FLAGS_STOP, &vtsk->flags); + wake_up_process(vtsk->task); + /* + * Make sure vhost_task_fn is no longer accessing the vhost_task before + * freeing it below. If userspace crashed or exited without closing, + * then the vhost_task->task could already be marked dead so + * kernel_wait will return early. + */ + wait_for_completion(&vtsk->exited); + /* + * If we are just closing/removing a device and the parent process is + * not exiting then reap the task. + */ + kernel_wait4(pid, NULL, __WCLONE, NULL); + kfree(vtsk); +} +EXPORT_SYMBOL_GPL(vhost_task_stop); + +/** + * vhost_task_should_stop - should the vhost task return from the work fun= ction + */ +bool vhost_task_should_stop(struct vhost_task *vtsk) +{ + return test_bit(VHOST_TASK_FLAGS_STOP, &vtsk->flags); +} +EXPORT_SYMBOL_GPL(vhost_task_should_stop); + +/** + * vhost_task_create - create a copy of a process to be used by the kernel + * @fn: thread stack + * @arg: data to be passed to fn + * @node: numa node to allocate task from + * + * This returns a specialized task for use by the vhost layer or NULL on + * failure. The returned task is inactive, and the caller must fire it up + * through vhost_task_start(). + */ +struct vhost_task *vhost_task_create(int (*fn)(void *), void *arg, int nod= e) +{ + struct kernel_clone_args args =3D { + .flags =3D CLONE_FS | CLONE_UNTRACED | CLONE_VM, + .exit_signal =3D 0, + .worker_flags =3D USER_WORKER | USER_WORKER_NO_FILES | + USER_WORKER_SIG_IGN, + .fn =3D vhost_task_fn, + }; + struct vhost_task *vtsk; + struct task_struct *tsk; + + vtsk =3D kzalloc(sizeof(*vtsk), GFP_KERNEL); + if (!vtsk) + return ERR_PTR(-ENOMEM); + init_completion(&vtsk->exited); + vtsk->data =3D arg; + vtsk->fn =3D fn; + + args.fn_arg =3D vtsk; + + tsk =3D copy_process(NULL, 0, node, &args); + if (IS_ERR(tsk)) { + kfree(vtsk); + return NULL; + } + + vtsk->task =3D tsk; + return vtsk; +} +EXPORT_SYMBOL_GPL(vhost_task_create); + +/** + * vhost_task_start - start a vhost_task created with vhost_task_create + * @vtsk: vhost_task to wake up + * @namefmt: printf-style format string for the thread name + */ +void vhost_task_start(struct vhost_task *vtsk, const char namefmt[], ...) +{ + char name[TASK_COMM_LEN]; + va_list args; + + va_start(args, namefmt); + vsnprintf(name, sizeof(name), namefmt, args); + set_task_comm(vtsk->task, name); + va_end(args); + + wake_up_new_task(vtsk->task); +} +EXPORT_SYMBOL_GPL(vhost_task_start); --=20 2.25.1 From nobody Fri May 8 02:20:08 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3B8A2C433EF for ; Thu, 12 May 2022 21:48:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345942AbiELVsO (ORCPT ); Thu, 12 May 2022 17:48:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52024 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231411AbiELVrf (ORCPT ); Thu, 12 May 2022 17:47:35 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2971E46B15 for ; Thu, 12 May 2022 14:47:34 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24CKxvoM003160; Thu, 12 May 2022 21:47:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=QLs36Q1Qcx4n4mRFw5Fd2cWy19xda10jP4sdu0LvfXk=; b=OFAcpuTX4kJ2NCzEOlK/vOGghs8rxHCDZPjGV55kwc30czV0Y5jMWGo332v+XK0Prin9 sygerLvbo3myx7y60DkmUsvOXIkbMv1U7tG8fqOH0qoeVtiWJzhlpLM4sob5ZI6zLEVy a9/2W5grQBNPNhHyUzeFP2kQ2EsIKhqQ8OnM6QheBZHf6xzX5v4D8G6dtSRNDIJUtIY+ 9EEpMAusOunROgTZXZCOEApT76u/7SxU1MNZaegA9X68hlmA3Md9w6yglHDKomPmGvUW VeyDhNjlyciNHzHAAPSFDGFWD1uAHcq0n0VadXAQDj3rEyF36sJzDdpPEk86i1C+KCLz rw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g0a04n2ht-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:18 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24CLfXCD004665; Thu, 12 May 2022 21:47:18 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2108.outbound.protection.outlook.com [104.47.70.108]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3fwf75ab20-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Rr1nrSXdqVP+TgMgwyTeE7YsnNildKY5jYvuSTzJTJhissJH8G2P5+2CNKRXMkLbQ+AwAhFqfCPTR1YY4XbZN6f4vqrdmqsSU7r9MhyCfeTiGQhaEcVeC1hmGTxoqUjNrt9YSi1e7hPhxYh9sS6aggh3ujd/BT+OMIpowsUuRFvtxyVpxSbfHosWVvPc+j4gf8lpFHlCswL6KOdi1FjkV3kpRzZXKK5aAVe2eOsiElq5ghbe2r0Tcqjq3ayFWMN+B9r1bbevfI3tjVjOoPQdBZww72qaHw8pz5vbB68wYeXngqFTkGqVPEOK9wUUyIpvWgUjwnyleJIpye9BvDzAgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QLs36Q1Qcx4n4mRFw5Fd2cWy19xda10jP4sdu0LvfXk=; b=QVfsJciQncGUKEgVsk15g4I2x+RFSpTteu/bM7bRkbEQGfZNqLBNcddWKSFatQnfO2m+nQJf5iBFHfPs+QQmpi0THWe7/O1lN8AKRNKJ0AyaBsFa8qXiPlDNNmX0cN2dj2XX98VKaIZQcLBqIDzJR5NMxW9xlK2FWkiAOcMJUAdZb2xgr6i/iKk8GTi7TbVhOcHicahl1G0CS7onKBvfJVu0mjJmTztxOQLoK9RgOgdxG0qYhVxEnkHO4vxdQjCcnC9qNvPzoC57/j73PkIKaQkcheLw1XeAGibngADBa7vBsCHBigK6Lov9OdvZ7YdcL6goxNHGMfKQFkxp94I5IA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QLs36Q1Qcx4n4mRFw5Fd2cWy19xda10jP4sdu0LvfXk=; b=T2emFE+zeqFwsKf3WlgSw7qwTb/d5Q++em44wFzKyn+Ca8lGrILlPfH/3TBvjMS4YThoQhDbG0VZjfYI1zDfdMk3V1N7oZ5y4yMx74wEh3F89jH7JQ4V8s5kuSgwtORytV/U61NcLAgHKvsQd89Yhtpcayk6sjpghxjvKIlHsvs= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by MN2PR10MB3311.namprd10.prod.outlook.com (2603:10b6:208:121::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Thu, 12 May 2022 21:47:15 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b%3]) with mapi id 15.20.5227.023; Thu, 12 May 2022 21:47:15 +0000 From: Mike Christie To: hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com, mst@redhat.com, sgarzare@redhat.com, virtualization@lists.linux-foundation.org, brauner@kernel.org, ebiederm@xmission.com, linux-kernel@vger.kernel.org Cc: Mike Christie , Christoph Hellwig Subject: [PATCH V9 7/8] vhost: move worker thread fields to new struct Date: Thu, 12 May 2022 16:47:03 -0500 Message-Id: <20220512214704.104472-8-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220512214704.104472-1-michael.christie@oracle.com> References: <20220512214704.104472-1-michael.christie@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: DM5PR07CA0089.namprd07.prod.outlook.com (2603:10b6:4:ae::18) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d6d33631-9315-4555-75a1-08da3460faaf X-MS-TrafficTypeDiagnostic: MN2PR10MB3311:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: L46ssvgXgSRRdcQKAqDHyuXwKAQQOXg5uHpOsw/FhY52BiO8IQK6cECsU68yOHYhhQ2mA39+UXgE6JKQWxa6RHioIGAhfPds6R97XYJ4Wsf32Tvhfd39Dby2td1WBbQXUYo3rMOS5PpVHl7ro+/i9KSWi1EiPK0K0lITWzFkzUO07dY5heCBrCGwjpBISZK7p4JwQW3oTgnUe6Iu7zIzv1JPoZ0cqNNRXhQvd5QB/yg6JGJaZJtViv+zJclMKFAQkmKsqtKA1PF9e7RAjIrxAwxU4sKrB3Iux04d1FIuqT8FizYcva3OsfM0IzE0QFzbl/i6e3qAM2PyH2tCxM8KGJCtU64C5IUoiQMWlkcjyBEPOUucnVNiaDfiPrvbgyjrugsQjnFliXddKp7KOQU+2vx7XmBj1KBTHqn5nlZjXuEnO321pGCagNIAnVxv6IAaIRzOIUiGlv2T5BKqKqYOUwv5NAP9s76bwULplljZZrUdQ2HsJX+bk13cCOwA34HOS/hgvw1cPVW65mQyDUfOdso7YOG558mnJOA+doeY/naPqifES8RLMZiPnaf6CJ++Y/zSz0PXnkf+q7bzvlL7/nCp0W5eZEXZDQavIEAfi4Bn/xU/dOvJEi/HVl9bRkWKhGRM74Ctoblm9KbN4ts1jf73/FSb7/4Lc2LDr4eQUROnzbXVtWqZygQdoZuaWLmDCLEb4/gdtKeDRKlumRwD4g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR10MB1466.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(5660300002)(7416002)(2906002)(66556008)(66476007)(316002)(66946007)(508600001)(36756003)(6486002)(26005)(6512007)(4326008)(8676002)(6666004)(6506007)(186003)(38350700002)(54906003)(38100700002)(83380400001)(8936002)(2616005)(1076003)(52116002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DHIyi34Jldp3YFFnZTbyb4jlP7NHarh+gSsMePzBD5Xch5uAWqsHvYk/UI4w?= =?us-ascii?Q?tOq2fzkH/ihR8IjqghG/Eonfiw7fH9xR3tEXSdn2/mHUGwRP6SGadWLRTXul?= =?us-ascii?Q?ORGQwIlngJhtfwm6TTm8Rp2Ray4tB8ZZBWuoj4NYQYkAv+z0aI2MyUBER8VI?= =?us-ascii?Q?47JO9LNKyWs1kI+9nxvSdVSkYe7Wcv3rWAVD8VoXmk12OMVzRrBqYrAg41d1?= =?us-ascii?Q?PWSUpaBeJcviuAimh2YiOJ8keYaomieG1UsZ+UYxTLXbJzXH0HXl7xe+tiGl?= =?us-ascii?Q?qwg61QM+0Lz4Rp9cQ2zSVRlRkz3Khu4POgCY270HECj+zxn9y3WaSW46+9kg?= =?us-ascii?Q?WEERrMB3Biqc+uSZ5zzoBRfkH9vjiKYuDmEMRXpbGok2jlAkYuiVervkuSLo?= =?us-ascii?Q?PV9B4MqfXHzG8peCn0WZbrmGxO3rVRhx0wv8dyELFUbn18w0Y8jRNu4YgT4P?= =?us-ascii?Q?8xpKglT6qqzPzt4IbFHq6erQdI2BId1hc9U8b3P6FqXNvpGt509KlISt/6nz?= =?us-ascii?Q?MZgPbli4TEHcjkxlbN1rD8f+5+qbysFcbqXAZjexIzjDWkA8TFbNAjL/j4Uh?= =?us-ascii?Q?ciX2Rcqw3P0iGJZaSzTgVYd/OHpQt7uX1mqzThkom6XdwRcdMr2fXbE2HlaQ?= =?us-ascii?Q?3+hjG0GdPhr4bqNQJFF02ud9OZW2GoK5EYbC4uPaC3C01Gat2ak0ju1Q4tJu?= =?us-ascii?Q?mCDFxiW1V6+qiiXNLUCqtj53J1BXXm+dicfQsgUf5Ca+ysPAWSrAprdaeZpJ?= =?us-ascii?Q?vBVIFZM0qYEU2Sa9Dbp0jP0E11Xxpbe1FlD7fHJU9kRArBWw13YOgtgpFDlC?= =?us-ascii?Q?BR7sw+wy1RHyHqugWHPgYcH7IkMdtzr0pQOE2qJmxNQCj/f/03sAOvoZnJ7C?= =?us-ascii?Q?nXgVjAfZ3VQIwpQqO7+sqfRBGwJqb5Kv/fQrjTFmFSlbjVDAb9a9m7cGRJCe?= =?us-ascii?Q?vNs5/HwX+hUr7JNGNlXTKJhudD72r/4vWp/G+koqDg1cODhQt7+uKBr9xHL+?= =?us-ascii?Q?ZfWZJWk4DA9o/NedOHbe8xzZoqR58TF4MdBdGrsRARLqWc5eT4w3o4njkq53?= =?us-ascii?Q?I94prgVOlqscUf8zPhi1OzxOmfF6HIRRh63mYhbEp0LnicItIRoH/x6EWZ5I?= =?us-ascii?Q?zHyTWCL1JdkM6zkIUw0Sl8gWJQ7SqVcqUPUMu5ZG7I9HoQ3xUbVqmHRY4pAc?= =?us-ascii?Q?gNiAmxU0KI9gICCmudJCB8Pa+xnQZAy4EEO4dY5/aK+T55MOLuDSC/C7RbSq?= =?us-ascii?Q?85XQ2ZO+AX0E8WQWBYS1tiWwBRKHHZCHHvzOVQs+QW4XWq2zMLMdy/zBV0Oz?= =?us-ascii?Q?V5ms+vhBEzGKq5eYXrZQvPhkg0lispVyv6vUd28judkBNLjkMpQQ9ZgKplr8?= =?us-ascii?Q?BBGIhYPsrQ96yrReFx9/pN4VutrtMcLaoNw1oRYN13toInBw4CugdKyo6HYH?= =?us-ascii?Q?7bhx0cJNi+nB9BtTEEXlFpFUyWY44WsZtVRCuVEBRuFr9bmzfBgZNn1Fl6Do?= =?us-ascii?Q?HVGorWQlhEkRUchnHbvGleG/dYNy2joqL8KnHilL6ph5wEL2MGxgzxkTgj0Y?= =?us-ascii?Q?pV0sSRFdVInl/Gf9ZHwDcyr2MoU0p1nOK6fsev08fNJwiqkalzQuksz9PGT5?= =?us-ascii?Q?zxDkVyoLlGxr+Tc2iJoamaopzUAHWRsFEpmj0l3Y5kR0Qu0xs9Zwxx8v84eb?= =?us-ascii?Q?92UcVrIvq8Srt7c2pGFuZxLKO9ObRrZRGlsnUccuyaYXLvjOQAOrckKMBmPL?= =?us-ascii?Q?3MDal1+saRUoCqNvRu4UB1YGx3dOVCo=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d6d33631-9315-4555-75a1-08da3460faaf X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2022 21:47:15.5372 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3BpF+sP6d+jRHGzukQ5KQF6w7beKhmn5J25i9k9EFiy14zESX8zQjkYXnb/mDjKyv6kwMvazMRHGwZp2ynp3VqupNfRttWDmGtSyjWNpUAo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3311 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-12_13:2022-05-12,2022-05-12 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 adultscore=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205120091 X-Proofpoint-GUID: eTqxO3wu-gGRDD-ATF2w3EyCT4WlHly7 X-Proofpoint-ORIG-GUID: eTqxO3wu-gGRDD-ATF2w3EyCT4WlHly7 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This is just a prep patch. It moves the worker related fields to a new vhost_worker struct and moves the code around to create some helpers that will be used in the next patch. Signed-off-by: Mike Christie Reviewed-by: Stefan Hajnoczi Acked-by: Michael S. Tsirkin Reviewed-by: Christoph Hellwig --- drivers/vhost/vhost.c | 98 ++++++++++++++++++++++++++++--------------- drivers/vhost/vhost.h | 11 +++-- 2 files changed, 72 insertions(+), 37 deletions(-) diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index d02173fb290c..8fd8aff2201c 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -263,8 +263,8 @@ void vhost_work_queue(struct vhost_dev *dev, struct vho= st_work *work) * sure it was not in the list. * test_and_set_bit() implies a memory barrier. */ - llist_add(&work->node, &dev->work_list); - wake_up_process(dev->worker); + llist_add(&work->node, &dev->worker->work_list); + wake_up_process(dev->worker->task); } } EXPORT_SYMBOL_GPL(vhost_work_queue); @@ -272,7 +272,7 @@ EXPORT_SYMBOL_GPL(vhost_work_queue); /* A lockless hint for busy polling code to exit the loop */ bool vhost_has_work(struct vhost_dev *dev) { - return !llist_empty(&dev->work_list); + return dev->worker && !llist_empty(&dev->worker->work_list); } EXPORT_SYMBOL_GPL(vhost_has_work); =20 @@ -343,7 +343,8 @@ static void vhost_vq_reset(struct vhost_dev *dev, =20 static int vhost_worker(void *data) { - struct vhost_dev *dev =3D data; + struct vhost_worker *worker =3D data; + struct vhost_dev *dev =3D worker->dev; struct vhost_work *work, *work_next; struct llist_node *node; =20 @@ -358,7 +359,7 @@ static int vhost_worker(void *data) break; } =20 - node =3D llist_del_all(&dev->work_list); + node =3D llist_del_all(&worker->work_list); if (!node) schedule(); =20 @@ -368,7 +369,7 @@ static int vhost_worker(void *data) llist_for_each_entry_safe(work, work_next, node, node) { clear_bit(VHOST_WORK_QUEUED, &work->flags); __set_current_state(TASK_RUNNING); - kcov_remote_start_common(dev->kcov_handle); + kcov_remote_start_common(worker->kcov_handle); work->fn(work); kcov_remote_stop(); if (need_resched()) @@ -487,7 +488,6 @@ void vhost_dev_init(struct vhost_dev *dev, dev->byte_weight =3D byte_weight; dev->use_worker =3D use_worker; dev->msg_handler =3D msg_handler; - init_llist_head(&dev->work_list); init_waitqueue_head(&dev->wait); INIT_LIST_HEAD(&dev->read_list); INIT_LIST_HEAD(&dev->pending_list); @@ -579,10 +579,60 @@ static void vhost_detach_mm(struct vhost_dev *dev) dev->mm =3D NULL; } =20 +static void vhost_worker_free(struct vhost_dev *dev) +{ + struct vhost_worker *worker =3D dev->worker; + + if (!worker) + return; + + dev->worker =3D NULL; + WARN_ON(!llist_empty(&worker->work_list)); + kthread_stop(worker->task); + kfree(worker); +} + +static int vhost_worker_create(struct vhost_dev *dev) +{ + struct vhost_worker *worker; + struct task_struct *task; + int ret; + + worker =3D kzalloc(sizeof(*worker), GFP_KERNEL_ACCOUNT); + if (!worker) + return -ENOMEM; + + dev->worker =3D worker; + worker->dev =3D dev; + worker->kcov_handle =3D kcov_common_handle(); + init_llist_head(&worker->work_list); + + task =3D kthread_create(vhost_worker, worker, "vhost-%d", current->pid); + if (IS_ERR(task)) { + ret =3D PTR_ERR(task); + goto free_worker; + } + + worker->task =3D task; + wake_up_process(task); /* avoid contributing to loadavg */ + + ret =3D vhost_attach_cgroups(dev); + if (ret) + goto stop_worker; + + return 0; + +stop_worker: + kthread_stop(worker->task); +free_worker: + kfree(worker); + dev->worker =3D NULL; + return ret; +} + /* Caller should have device mutex */ long vhost_dev_set_owner(struct vhost_dev *dev) { - struct task_struct *worker; int err; =20 /* Is there an owner already? */ @@ -593,36 +643,21 @@ long vhost_dev_set_owner(struct vhost_dev *dev) =20 vhost_attach_mm(dev); =20 - dev->kcov_handle =3D kcov_common_handle(); if (dev->use_worker) { - worker =3D kthread_create(vhost_worker, dev, - "vhost-%d", current->pid); - if (IS_ERR(worker)) { - err =3D PTR_ERR(worker); - goto err_worker; - } - - dev->worker =3D worker; - wake_up_process(worker); /* avoid contributing to loadavg */ - - err =3D vhost_attach_cgroups(dev); + err =3D vhost_worker_create(dev); if (err) - goto err_cgroup; + goto err_worker; } =20 err =3D vhost_dev_alloc_iovecs(dev); if (err) - goto err_cgroup; + goto err_iovecs; =20 return 0; -err_cgroup: - if (dev->worker) { - kthread_stop(dev->worker); - dev->worker =3D NULL; - } +err_iovecs: + vhost_worker_free(dev); err_worker: vhost_detach_mm(dev); - dev->kcov_handle =3D 0; err_mm: return err; } @@ -712,12 +747,7 @@ void vhost_dev_cleanup(struct vhost_dev *dev) dev->iotlb =3D NULL; vhost_clear_msg(dev); wake_up_interruptible_poll(&dev->wait, EPOLLIN | EPOLLRDNORM); - WARN_ON(!llist_empty(&dev->work_list)); - if (dev->worker) { - kthread_stop(dev->worker); - dev->worker =3D NULL; - dev->kcov_handle =3D 0; - } + vhost_worker_free(dev); vhost_detach_mm(dev); } EXPORT_SYMBOL_GPL(vhost_dev_cleanup); diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index 638bb640d6b4..102ce25e4e13 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -25,6 +25,13 @@ struct vhost_work { unsigned long flags; }; =20 +struct vhost_worker { + struct task_struct *task; + struct llist_head work_list; + struct vhost_dev *dev; + u64 kcov_handle; +}; + /* Poll a file (eventfd or socket) */ /* Note: there's nothing vhost specific about this structure. */ struct vhost_poll { @@ -148,8 +155,7 @@ struct vhost_dev { struct vhost_virtqueue **vqs; int nvqs; struct eventfd_ctx *log_ctx; - struct llist_head work_list; - struct task_struct *worker; + struct vhost_worker *worker; struct vhost_iotlb *umem; struct vhost_iotlb *iotlb; spinlock_t iotlb_lock; @@ -159,7 +165,6 @@ struct vhost_dev { int iov_limit; int weight; int byte_weight; - u64 kcov_handle; bool use_worker; int (*msg_handler)(struct vhost_dev *dev, struct vhost_iotlb_msg *msg); --=20 2.25.1 From nobody Fri May 8 02:20:08 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DCC2FC433EF for ; Thu, 12 May 2022 21:47:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358872AbiELVrl (ORCPT ); Thu, 12 May 2022 17:47:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349163AbiELVrb (ORCPT ); Thu, 12 May 2022 17:47:31 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 38AC71C136 for ; Thu, 12 May 2022 14:47:30 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24CLVQPh003190; Thu, 12 May 2022 21:47:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=PhxBc1rJQiw9gN/G1oiVMh2AyYPgCWgGSR6RgsYJ+2U=; b=yRkdZjx5urL+WrT0arNywb289kVxqJdzO52GSp0UJVQTVkdeMp/Wgv9eXdG0c4LCY/rm ICdslv2oYOhkguYX250vQfj2mXkkwdb1W3GNQ22a7vAbE7wo6tSL5FNAT2ACG4n9e7eS vR1561WD3n+hZoSXSHNiJVjU6qsTLsGMHA4qm06c/0IfUZTK63mSZpgXUOsGWDJKJlZN I5jrQKyuyEgSV90VQY+Fd+e2wziKtle8mM/cUv/MgYF9zRk1UBeXOyiYqL6hlat72EIH vZ3wwSck7dqUKvq+vpa1g2Mbv/sE3UZYOyjEzH0mDUJD+5j7VCF8LnR8ZLnbP29coq+L vQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g0a04n2hv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:19 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24CLgHmV004478; Thu, 12 May 2022 21:47:19 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2104.outbound.protection.outlook.com [104.47.70.104]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fwf7c98tw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 May 2022 21:47:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E0Ys2Xb9cDEDFb3avEdWVNX3iUmeLByVoqYuxJB5Ph5JPyjTRmnWnfWZUYgPxAg+tlfheoYJftnuNHQwHnmI7v4hXOClARNcPsVHI1NAYV+rMbA40NmdPPfCso+J2DGOcbCJ9Sn96zBvMrIenJ8mpJ8LrfpVYsoX4/13iHkV8u39RI5h6B34ZUCZiAMHOjIb74W3kWtXp1e5am2uOtD1mAQ72XGbBN/dEIEroHn86QjfyiB7a2L5+upraCCJ5JZC16onTmy8lJ1M7NTp6Ce4OVKJniccqpQWDV63hVk2MyoreZVJ8jqZB1PQebwW4ftngYRuDqyypZaNrNiiipT/EQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PhxBc1rJQiw9gN/G1oiVMh2AyYPgCWgGSR6RgsYJ+2U=; b=bu+sxKdGDCoqtKp2ckKJ8Z9w0nNkJKwkKYfBO/EiSu0XX7JT1b6GxULNWwwg4JCFO2Sz9saOg+MqsEXvKTOmghSPDYwenIbvNQFOkgIuKZ/dS/XeZTUOauZJoJyCHom3d96kTvxUxvuxcR/BCWxJwZSanaZ/h1RtklgDCMVGFsJdRter841ilTMN6hcqzKK9RWmFPhn9telKOsMaTor1u9cF9xdAfBQUGwXPa5hd1xs6AkLnaKKovixw4P5ttzCrMFHim+OyqLF07Fhf/NaVbq+JCgi3p5BcoXJvD5QqRxrKe93qvPfaT0FrmNjse1uwc3bn6f62FidqpWFqFl0wqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PhxBc1rJQiw9gN/G1oiVMh2AyYPgCWgGSR6RgsYJ+2U=; b=cveaa33Bjpj25FWg6So5WQNlojf3hMznKZpVdpRrRGXgsn9h1V1gfn/T/MnRRPZDBnxOuzSQ7MNJqemIjnRdod2St5OSO5394SSXi9W1c3ourYbfGn6y7gm6vyowtSj16Xn97lPMatUfsoVJmySSwYBc9UL4sIsn2xpPOw0ubkU= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by MN2PR10MB3311.namprd10.prod.outlook.com (2603:10b6:208:121::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Thu, 12 May 2022 21:47:16 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::f81d:b8ef:c5a4:9c9b%3]) with mapi id 15.20.5227.023; Thu, 12 May 2022 21:47:16 +0000 From: Mike Christie To: hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com, mst@redhat.com, sgarzare@redhat.com, virtualization@lists.linux-foundation.org, brauner@kernel.org, ebiederm@xmission.com, linux-kernel@vger.kernel.org Cc: Mike Christie Subject: [PATCH V9 8/8] vhost: use vhost_tasks for worker threads Date: Thu, 12 May 2022 16:47:04 -0500 Message-Id: <20220512214704.104472-9-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220512214704.104472-1-michael.christie@oracle.com> References: <20220512214704.104472-1-michael.christie@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: DM5PR07CA0089.namprd07.prod.outlook.com (2603:10b6:4:ae::18) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b221d043-811b-4d26-4a47-08da3460fb05 X-MS-TrafficTypeDiagnostic: MN2PR10MB3311:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TZA3dMhKaaf7yb/VoHYsjma91i2gAm1Mjs7mUyM2rk2aMYJ/5eT7e1WWCzzEiYYJmj5gpzZVekHKNmQyml/KsQ+xKGYQ7ujPD4uREfmcd7bUzflv5xil/pEBUiAm1W1khDPborKx42/QIg3ra11AhSfye1AGzVPVkEKW9FX9UCdjbpxxOt4WZdno+AZ3NvF7T1x00pYu62z6ORa7qJE3jCgj9laFy+zUXDJ/DFYlr8p/NwGO5ggnH4kBYCsZ/3JWYOMk1ii31Ol/CF4c0MVyx+9zBF1m8vy0SZa+jtSEhVVnv9m3yKK+zIA9iCqsz5vNUwXBME31R7mq1TsChVevxyfCPk+ftRRC96pfnVrk4U4SCFx6Z+OlcTGOM8r7bzPyimlmtK2B2kuf3m6FKv0qPRm8ltbemD6KTOZXdDPaX7PSs+IvRZ8cMB3dAGc33lksnBZOHfxN25+vny/u6M3SaKfpOFSbUOT5dEGafXTEWi0SseeYLSQDg+QMFiwLHfdhiqVQyyNJQh0dxKcx1XOtWaG3Ulhp4iqzwaMxU/786CbesTXbUeJ9rHfjceZ2C1+XOSSk6NICwEvuN5LQzUdnTfLjawUo432W8BZdtfjlR9PunxFCrQzuCuZM2s9wAuTTuuScPD/dF/ubvNKMixCTI3Y3xFMmhUTsgrXgMudHiaNUhvZTB3MPi+Isw1z7LdMpVSxBJGjiUWplXeT8mtqMcA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR10MB1466.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(5660300002)(2906002)(66556008)(66476007)(316002)(66946007)(508600001)(36756003)(6486002)(26005)(6512007)(4326008)(8676002)(6666004)(6506007)(186003)(38350700002)(38100700002)(83380400001)(8936002)(2616005)(107886003)(1076003)(52116002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ZzgrNs4bTpGxMy5cTa82l8B8IQjl3bLWcYSaUtZg/E/DWxgpy8PzA8j46X2O?= =?us-ascii?Q?5yniLm0gcSpmpaFIQT1ntEfQU63sg+7JH1G1X2wEGKUjHwoIvUZNeMQ44kog?= =?us-ascii?Q?vzqvOOlEihE6WMLkzHEorcspIG4XLOm3NN883yKlSIKofJMhKyoU2ttPE8p3?= =?us-ascii?Q?t8MG8MEUl8gfzMi1SOOPYyAbd87iIDv9gg7/jG56WY2oxkPlR4oC7fvnocbW?= =?us-ascii?Q?4l37Y5PM4d5CbVCaIdpsyJKjTmJiiT/0ArhqaETZT+uK0etcV+7syb1rI/Hr?= =?us-ascii?Q?M/TcNA1lOVM4oXe5bxs0E6Kysm1saOn24EhM3VaBfMatj6BzyW7d3yclZIEj?= =?us-ascii?Q?os7k7TZOuEBMXSvOdh3+lz1xIzIX6LwGW4hKfyzNAOIXY+FrHcVWqXgALItf?= =?us-ascii?Q?E7dwpYx9iLKLTzneTZk5AEYJ08WPUUFa+VAaRS3MXnF0dg9crrW3ndtd2GXC?= =?us-ascii?Q?J7JcOHImfAIUqvWtNJx5JjPPAOl/00VRbRizDau1aj4OOOz3p9O1kWTwUuCp?= =?us-ascii?Q?zu2ATWiiniWMdberBwCAsZV9C7ZEdg7ylJIr2IHq7ciX+oBcp/TsSY3hBUon?= =?us-ascii?Q?HEwVSvgenpkICjgiHFBabIgvImjBS+B9zQfTdr1giWbJyIYXe4xK5RuO86H9?= =?us-ascii?Q?an4+lTRY8JKt+q5kLUZ+yCL+1kga9XLhGAFKjY7sOsMLIGga54eD+crAu+s7?= =?us-ascii?Q?EwROTYWfudLFLY0jUcQjFWQeRRFp5689uHQBEXdiMXA953zvoIfzpbFb2Y9/?= =?us-ascii?Q?pu0niQ42Tuw2mHjbryS6Flg3pL0lk2fB8QZ/na8b9YVnr5/wdgK7TW1vulc6?= =?us-ascii?Q?fMj0G+djCAxg7BCsh4ld3mNM3+KIMzyA3bt+S0fzhC5EBB8vPRysVLC2QuQY?= =?us-ascii?Q?H9pmhSwp76BpQf6Esog1iN+QBSBqtzs16VVj0U7l8JeaNIMIDji6ee+KZz9b?= =?us-ascii?Q?CepmB3RHEkTAafSudACxZAQKtmlV2/S3fS8UuSKrNNyGTXu33ZU3GJriIdt4?= =?us-ascii?Q?fU+PXMkkQexhsmYCaX45oVvKLJfu88Pzeoc5ULYjdn7idS0b90e00onNVnue?= =?us-ascii?Q?0DCC6gN78NO2TN62WVr+jDhJLz3gLmq9VE6oCvGRSo94inbdZZ5pxYgJYk5m?= =?us-ascii?Q?TZBPZEHTPGWq+qxX1NMUHjK1zelxAlaQgNPOlbdx6QuoK0Ag0ux4BPEcZy3Z?= =?us-ascii?Q?gq277YclI8rqpCk1ZtN7O32w2S1A3yBphtsEIgebTbEzp9DWJX514sQ6O07e?= =?us-ascii?Q?7eyCL9t22mtbhRXSQSPhAR//DKmZEukUS8ARU/wduYcrqOdtyClpstzDAWUo?= =?us-ascii?Q?JgZWGPrq39m1V08GZ1OZBKi+8od9fhIfyj7AQuRA9F6LPmG5JieQHPxNjIpV?= =?us-ascii?Q?27+mlnq4qysv++5QCTqK0eZCzt6OLNvStR4v9ODecbhVDY9TnXwkuhvcDUAq?= =?us-ascii?Q?Qkfe+1vSTY6sl4Yk5qda3OPVZw+QYU/RZ4/mZ60MNY7mba0UBLc01c9dcVM2?= =?us-ascii?Q?mQgn4yexJ/vwy2NOzpAIiYVSskouv/ACDCgrmTTtr6IAXC9SILb8/IpxzX2A?= =?us-ascii?Q?v0OWgw0wYI4xsaydZexMBGM5dymWBfVqrNvPuMTRhqWPj2Pnv3fBiwDrUzJ9?= =?us-ascii?Q?b5R2W+pclaRpQEiFMqi9piZZQZP9KdTAooeefPqo7dxesoa7NHzGSDhdaVSp?= =?us-ascii?Q?trHhFutx1rW3+5YB3awXcmthxLDeYUaWzYvr5GjK1U5ZMID4yFxTI6UXR0fR?= =?us-ascii?Q?S6hNeHOtwRtcBNXZoLJYaOLmQMnnMks=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b221d043-811b-4d26-4a47-08da3460fb05 X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2022 21:47:16.0841 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: REPuQQe+LrszgtWVk0OugwXP2BFHaBlP0ztd89g1F0XPYSl5QqBcldk3s36ANY44RsEGKwC7U9xDLsQnhl2LVPZvT3DUEsv46FNPvTdBLkU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3311 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-12_13:2022-05-12,2022-05-12 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205120091 X-Proofpoint-GUID: xpBpUX27dObnk1Rg162DUViyjC0jsJSN X-Proofpoint-ORIG-GUID: xpBpUX27dObnk1Rg162DUViyjC0jsJSN Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" For vhost workers we use the kthread API which inherit's its values from and checks against the kthreadd thread. This results in the wrong RLIMITs being checked, so while tools like libvirt try to control the number of threads based on the nproc rlimit setting we can end up creating more threads than the user wanted. This patch has us use the vhost_task helpers which will inherit its values/checks from the thread that owns the device similar to if we did a clone in userspace. The vhost threads will now be counted in the nproc rlimits. And we get features like cgroups and mm sharing automatically, so we can remove those calls. Signed-off-by: Mike Christie Acked-by: Michael S. Tsirkin --- drivers/vhost/vhost.c | 58 ++++++++----------------------------------- drivers/vhost/vhost.h | 4 +-- 2 files changed, 13 insertions(+), 49 deletions(-) diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index 8fd8aff2201c..91180c0e2b77 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -22,11 +22,11 @@ #include #include #include -#include #include #include #include #include +#include #include #include #include @@ -264,7 +264,7 @@ void vhost_work_queue(struct vhost_dev *dev, struct vho= st_work *work) * test_and_set_bit() implies a memory barrier. */ llist_add(&work->node, &dev->worker->work_list); - wake_up_process(dev->worker->task); + wake_up_process(dev->worker->vtsk->task); } } EXPORT_SYMBOL_GPL(vhost_work_queue); @@ -344,17 +344,14 @@ static void vhost_vq_reset(struct vhost_dev *dev, static int vhost_worker(void *data) { struct vhost_worker *worker =3D data; - struct vhost_dev *dev =3D worker->dev; struct vhost_work *work, *work_next; struct llist_node *node; =20 - kthread_use_mm(dev->mm); - for (;;) { /* mb paired w/ kthread_stop */ set_current_state(TASK_INTERRUPTIBLE); =20 - if (kthread_should_stop()) { + if (vhost_task_should_stop(worker->vtsk)) { __set_current_state(TASK_RUNNING); break; } @@ -376,7 +373,7 @@ static int vhost_worker(void *data) schedule(); } } - kthread_unuse_mm(dev->mm); + return 0; } =20 @@ -517,31 +514,6 @@ long vhost_dev_check_owner(struct vhost_dev *dev) } EXPORT_SYMBOL_GPL(vhost_dev_check_owner); =20 -struct vhost_attach_cgroups_struct { - struct vhost_work work; - struct task_struct *owner; - int ret; -}; - -static void vhost_attach_cgroups_work(struct vhost_work *work) -{ - struct vhost_attach_cgroups_struct *s; - - s =3D container_of(work, struct vhost_attach_cgroups_struct, work); - s->ret =3D cgroup_attach_task_all(s->owner, current); -} - -static int vhost_attach_cgroups(struct vhost_dev *dev) -{ - struct vhost_attach_cgroups_struct attach; - - attach.owner =3D current; - vhost_work_init(&attach.work, vhost_attach_cgroups_work); - vhost_work_queue(dev, &attach.work); - vhost_work_dev_flush(dev); - return attach.ret; -} - /* Caller should have device mutex */ bool vhost_dev_has_owner(struct vhost_dev *dev) { @@ -588,14 +560,14 @@ static void vhost_worker_free(struct vhost_dev *dev) =20 dev->worker =3D NULL; WARN_ON(!llist_empty(&worker->work_list)); - kthread_stop(worker->task); + vhost_task_stop(worker->vtsk); kfree(worker); } =20 static int vhost_worker_create(struct vhost_dev *dev) { struct vhost_worker *worker; - struct task_struct *task; + struct vhost_task *vtsk; int ret; =20 worker =3D kzalloc(sizeof(*worker), GFP_KERNEL_ACCOUNT); @@ -603,27 +575,19 @@ static int vhost_worker_create(struct vhost_dev *dev) return -ENOMEM; =20 dev->worker =3D worker; - worker->dev =3D dev; worker->kcov_handle =3D kcov_common_handle(); init_llist_head(&worker->work_list); =20 - task =3D kthread_create(vhost_worker, worker, "vhost-%d", current->pid); - if (IS_ERR(task)) { - ret =3D PTR_ERR(task); + vtsk =3D vhost_task_create(vhost_worker, worker, NUMA_NO_NODE); + if (!vtsk) { + ret =3D -ENOMEM; goto free_worker; } =20 - worker->task =3D task; - wake_up_process(task); /* avoid contributing to loadavg */ - - ret =3D vhost_attach_cgroups(dev); - if (ret) - goto stop_worker; - + worker->vtsk =3D vtsk; + vhost_task_start(vtsk, "vhost-%d", current->pid); return 0; =20 -stop_worker: - kthread_stop(worker->task); free_worker: kfree(worker); dev->worker =3D NULL; diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index 102ce25e4e13..c9f391326dd5 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -16,6 +16,7 @@ #include =20 struct vhost_work; +struct vhost_task; typedef void (*vhost_work_fn_t)(struct vhost_work *work); =20 #define VHOST_WORK_QUEUED 1 @@ -26,9 +27,8 @@ struct vhost_work { }; =20 struct vhost_worker { - struct task_struct *task; + struct vhost_task *vtsk; struct llist_head work_list; - struct vhost_dev *dev; u64 kcov_handle; }; =20 --=20 2.25.1