From patchwork Thu Feb 2 23:25:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 52212 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp533213wrn; Thu, 2 Feb 2023 15:33:05 -0800 (PST) X-Google-Smtp-Source: AK7set9gqt4T1f+CC5ys6aCymLRUPIbWiijyJzJXDta0+4RRgbvL4ceOKpmA3V4lNkhd5Rqj9ogO X-Received: by 2002:a17:906:244d:b0:87b:d402:95ac with SMTP id a13-20020a170906244d00b0087bd40295acmr2920606ejb.27.1675380785554; Thu, 02 Feb 2023 15:33:05 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1675380785; cv=pass; d=google.com; s=arc-20160816; b=Z3IAAxzWDd4w0g+sFe5gh+GwEK0Me87dvr/qtHDIMwr4l+Orv/eUK3TkqTrYJhakS2 p+RjgwKwPo+fjBYFxHhpLxUYsjIrvpBLwA4fCU4+I0JSwLTTchhs5FbgBfLZzFRPGenU PJCVN/i3eG6BQyFJFPjtu+a3XVBhI5DchsFzRt1ptH8HJBrHZx+7elot+fzZHT/vVSFJ vu+9BPNTfMQsAqN/HeUNdjZeZGpJ2eZnlGDhuDWxmOpJiQ4cZCCP0q+KKgT9J2ZFiL97 xbgEek+yBVtV5jtMf6J2vFgwAAwbZmSZvcM8/NpspK55w6bfuM5GS8RUDgow0lKPpkx6 tSQQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=YyX5FcTVXPfGWxJkJKarYQzlIruAFxA0wxiAnVnrvZs=; b=Id4N8IZA6Rqyhb9Zhi8zfIXEOmpSySqKQq4+Maua3elhkq7iVlR/fUNI/r1lquynj1 GYvgbgFsPfcA8Ow2CMB/7Q1fc46EeZY9oiGPaHiNUOpbPLI2+6GYtaj8czeFvhqgH8Dc EJqTvM/fR+G/Bf8qnRFEIc7EsnqkylRU7c52TsBjyB+dVkhauyTEgcZyQ2ErZPxkZXnE 7FIjh0jeXbYlZYskIvcNujmX3Cz4NnpVxuwhLuXAv964bNmkWOzfrfxt/d9sC2dFpEif HHjyVqhrP0GciqdWhyi0tsFTTn8ap0Z5UtDABLeCXlITXFxE+kMxo3ImicAjx+wwabFe DzCA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=fJThlsKw; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=MIQsLMie; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id vs20-20020a170907139400b0088b553a6261si859821ejb.868.2023.02.02.15.32.41; Thu, 02 Feb 2023 15:33:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=fJThlsKw; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=MIQsLMie; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233161AbjBBX0D (ORCPT + 99 others); Thu, 2 Feb 2023 18:26:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44832 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233158AbjBBXZp (ORCPT ); Thu, 2 Feb 2023 18:25:45 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 546AD62793 for ; Thu, 2 Feb 2023 15:25:42 -0800 (PST) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 312IDmlo027106; Thu, 2 Feb 2023 23:25:25 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-2022-7-12; bh=YyX5FcTVXPfGWxJkJKarYQzlIruAFxA0wxiAnVnrvZs=; b=fJThlsKwsJDzFC+Dd1WBsIqmS7CN7IPF82fH/LFNfR5fMM+epyV1RJhBItoi1qJRWGXi TsoerqbZmceR0gpCBRhrDogKAr74be69kj76xTAXCZHEErPsGR/KgPwCcrO793dV1KCf ++dnJdZv7m8fAcVD45wDTktttjPHsN5LQJmOCOyoHMBmZrO4jOGdqqCxcq0BH/OSXqLc kZaTXc8pJMsP5dxlM1B3G3WRHfUJxy1m8zq3u7KVvqRa4z3WdTb/Gt2TDuANfWEUHwx5 DkNgZnAQlKm8h4c5H2pEQAhuFd4ihH//2qCy/GJEy+X6kUAKjczct9fUw1rYVD0Tdr+O fw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nfpywm6cs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:25 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 312MlwMg005929; Thu, 2 Feb 2023 23:25:24 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2176.outbound.protection.outlook.com [104.47.57.176]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3nct59rb4b-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QZcu7HhhMYzVZ5BJ+CiEGyAE7M4fhTqZ60BOsD3oZSB8f9zbB3wKFtQzPk/f0aFCJzpj1ZSrGSnd9TZVEgRuOjSClFhP6brwGOkfUIZSw4TOLZrN4XFObYkPMWIVSwTS7VOJ77iZyB0PtbiHC9CElnbgiN6AHovvB14nLUriKhGYTL1LwjJjP1mXn7p3HQA6BHP9wbKzfyzxrQs2ViTz/KA86OTMzY0ywmzre1Flvcmkp8Xt5+aCR5EXfriuGQwAX3TPuKnKkgs85r/6aHxmaevEQQVTUlzgn684r0UvIz66U9TKRoB27p8lmvRYdGHEfLC1FFaULpNJwWagSz09pw== 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=YyX5FcTVXPfGWxJkJKarYQzlIruAFxA0wxiAnVnrvZs=; b=YX5A0MITjDVUQq5lrgNAIaF4wMkZkJEseCmUsRqrSAMNtYBh+Cc7032Miw3sG5yGZZsv0iun2KdWfLJOEPquKYuHqMfEeoo34m4NmmXmPy1FecpacS0UB3QsgrIV5y0cGslVCTPrR2Dn+sUEXIT7bfZMJtGXjFNaBSd5wj0vRy5neGLkZjHuJ6OQT1woQHIhq/XbhmU8Ot1cTDF3fwK2itqraHnmDZcXy7iBcw/uOd15zyUBRp1ki3IJ4CLxeuTMAnm4STIBp1kgOeyvsgQU7np3X876wuB/uYYD20NCpml2sLf/RRMyglROKyt67uN7dIYyMHeLF0BMsdYcxI4kCA== 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=YyX5FcTVXPfGWxJkJKarYQzlIruAFxA0wxiAnVnrvZs=; b=MIQsLMieV7BWYdX5bPs+HVxKTP99HXTJa0fAh7eovL8cws8mJYRzJwLfoxSMA2gUbZn93nl9KSnn+q+lWhR4Vo6o0ftsrb38CAHoKpY0H5FvHHdJC/tsPnhbaVPIzo1w4Nds2fJCwExk5DxYX2yUD+lOwHXPgUrQ++w3vHhS3Jk= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by PH0PR10MB4536.namprd10.prod.outlook.com (2603:10b6:510:40::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.25; Thu, 2 Feb 2023 23:25:23 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f%5]) with mapi id 15.20.6086.008; Thu, 2 Feb 2023 23:25:23 +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, torvalds@linux-foundation.org, konrad.wilk@oracle.com, linux-kernel@vger.kernel.org Cc: Mike Christie , Christoph Hellwig Subject: [PATCH v11 1/8] fork: Make IO worker options flag based Date: Thu, 2 Feb 2023 17:25:10 -0600 Message-Id: <20230202232517.8695-2-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202232517.8695-1-michael.christie@oracle.com> References: <20230202232517.8695-1-michael.christie@oracle.com> X-ClientProxiedBy: CH0PR03CA0299.namprd03.prod.outlook.com (2603:10b6:610:e6::34) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR10MB1466:EE_|PH0PR10MB4536:EE_ X-MS-Office365-Filtering-Correlation-Id: d2cee94e-9fa3-4de6-2709-08db0574c1c2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xBNObR3JzKddDGZkJQ2jVB4cpT+xJ6aHc4sP75+gIooWgSSmkHT1wByCGgiFm4nbFIsPL/YLUyaNYfWagP1UvWpMOhyDjZU/QHfEnQUFvAx9pxwj1DqweOevKfhWyRhylPNy3h8Ka9CxCspaeNK/J9SLJ4Lh0Zxeyjym0ZLFdXNcadFjS+qcU8ODSrAqLJjpku46J3kWMDGDFUuS731OPf3UtfmEyYpDOdTpAxKMyEvbnzPi8bXgAZDR21i5HaVWqqflbgtm/2Tw7aVwNGgQE0DkAKx2PT7lc+ouev9rFUsKc3YswUI1TbqlOrwGFXwSZcf3jKpt2jsSC7ocD6bIkVtkGBWOa1ndkV40pFv4sK1bmBejgykPlI6W4rOUWdRe4p27zOhHIk85ntT5jhd2jPEZcVTnjxRSMGg8VY7/9VHS7+3UFfdjz7AQJvO9un4WzU6vY2oYBivQdbN3HYCexMEl3HWTfCajyB0dSh5x+y8U4+7UcLYvZmHuLRJklUmrA6pCQBfBFQH5RnvhI03dAa1cODOuPUpFjmhcSNDDPOmgzOZelY7k/+CS+riFjInRbMZ0Y3iCnza2WxtpnsQlTWuFJ/f4s3JGnE8MPYFXYp1Sph8kDp+z9UO8SUsdWrkOFv15jVlFNN1FKTaa00J2QpGYZFBsX40tiShasVc6/+ZZxLTyVdilE6V7WFONdOPD 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:(13230025)(366004)(39860400002)(396003)(376002)(136003)(346002)(451199018)(316002)(83380400001)(6666004)(54906003)(2616005)(36756003)(2906002)(66476007)(38100700002)(186003)(6506007)(66946007)(66556008)(26005)(1076003)(6512007)(6486002)(8676002)(478600001)(7416002)(41300700001)(86362001)(4326008)(921005)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jdNKRCFx1rup9EQvUJaM+q5T4AqSLdqROhfo1HQaRWbaZCy7g+4znfBTXTUY2HGNFKU4g5k67+n+v677mrWjhr+VdG8zPDm1VfW2Kiq8J39EUMLZDk05oEP7N3cQknBps3m+pCAVHQMyQdSi+hoWmQxQcgPtJ0Kq5mXj/NDE/f8G9uWpKnA9YkuVHsm9FVjEHJMYEnWmknDkkyg2EK8RJhVm1TfULBtGurELXPDcQa7DX+A7+dEYFnqmTu/iB41KeMSDZyK109HO/eyGkrRjRmRhhj1uyr7jymJ1xS9cSW1pc+J8sC4S98/Od0/BUtrT35LsBfbVtkthuIjqCyRCPLboNNIorRCChLIARNpAjhkHBQk7NAQF/a5rTDM7iV6/7iQ2w5A30oTNknnEoFbhsm+cFSEPj3sozM0ANXSCTCol8p5dKNaWJcQTiAkl+M2ayA4HhyMTM44ZkOnSNYbUWNmnOhawbQWob7O7Y8AVt2CPmC0K1hoa/qB5q0kDun44PBsECeYDlvty9A+PKsGTLENX7W1fG5Elc9lcPggHheRSc1Yf4mnPUdeFJZOU/GENUq2NE6MLRav6ygbKKI6WyzU0xQ0DyigY3tTSL1I96BgchJ4mu111S4vm2sYB+yYBLMkXXrx5yqmYBHivvlyR1HhGknQVn+9Z29p0wvDeiYiLbGQeD9ZbBMlyBlQQF5TtlVlaSN8cLUTYe2+aWrwSuedFxCvCJLS/kcsDFkLdSPecCjkNFLlVPgUv+SXDGwYfSs98SkTHHEvHvNVCLSLY5XONc6xqeXhwhydKxNAXKnGHsuhz9rXwJLSEgVk3sZ2rVf+shetPk6ogpO/lgfVJNQzdjouo0b/GPMbVu1sAcWACr1wvV04vabuRfxmGPNwQPOngwBVgFOZ+httZiul9lwa+yH2UE/69USKp904tYBDgvpf7d6ZmVrrmJBFi14wWuMe3aoah0JDcnplecoM/j5k5q25Hd/fGBdvXNrHAIQjUTMOpC5KpM9bh1uHerlz+12W3eGsB8c7fHH9EzQ+FRT2XYiuUvVVJ2GyigQpc08ZxmG5lzSj6bfYB8wpUkm2Uw8d210BePXNZl8MBw/w0l72BhSU41PRl5vnVAuCzZ5KorjL6/kntbV/RK4hIRsRwHHxQoYzWjz2rIJ/uOIEKsW/c8zHYwvZX12TXRy9bqe9ArOHcBIqsYIbKfiNXnjjNTVOCog4zbwoQaAVWA/wsM2r8PU44EUASU/JLpmiYMtkSZD0d89+Wmpb2PnJff0EcvBWuZqbQyG1PSy+s1bRiR2g1heiLWJNSHPYpciPa2P/Om4ForOfDXGP7iHO/pyjHAQSEWM0wkMZkbEHfpOwqCbVDCxNNpmGMNxoN0kiWXV+ndyZKT52VM0JT3SE5W+aNuR256MIvQk8TSLJYdi7rnqiks5l/tAiYtP3qsIrWvUCcLJr6UM1KNORTgJkHL4Nf7hymCjgIn+E6iivjkXBU5jv7lq7HQm0W6/eyRer/sVkpQ48xzN7J7mOiENWSS/safd50InPydHIR25Rnq8N4zqlL9w68ii4Kdk9EvA7g2XgBr2JfL7yEQP3N42tDcI3EUcHW+wQr6+w0C1h2vZWbKQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Ql7FI7Gu+mbk3Q9tBS7QeyF71ywcwIze9LR2RBOgIvs0e/j5AZ6thcaxtGcl5j4KW+jz/2H2yAR/DshTaojmZdORqjtI5YvDrnDOmKrzLvYWdPM90VI7mQxz9Jk4YcWsy0sIljBMoyVJF7xJqtGTMCX1w+pgBWz4ykRM5duBHVIgcxh38ALNaH24SiQuLiUQ6QLP9L5+aE4acdLHrelYs4GhSZ34//UybOmt6OKuG4hYRxsKLs959sWK8Rv8OprDFgqxyQ8Ma2Vov4vFsI/qfTfjNSdcrhjW478ilHZRTMR9W6fJkDQm7uWVdGX7j6yXO5NOyEXV5lwyHC+0M9sXt/evfzMY534ec1VTa+ruQ3xjaJmDEsfdvkgfbLLd+0b0bOVKTuSeV0IXRC3lCD0FTp1Va64jYgYaBg5bC3R73yFnhDSjP3K6oFTtj8zgDQ987Q7RcXojMr1VkEcx2+vRYLRaI1r75FtbiGAj2FG+Pml6H7MErRtvXonyf7HRhlI3+ipBZKOMFt+ZoKn1VaEOuy/HnRV/lnVTI21Bm/U1lVPLaSbzguNsjS72uEi0GwnzYBecHeOT4cxwWCTcTLc9wTq4i9FImaEsNvwLjjA6pxgQVVHPkahIMP5+YyXqURcQFyMr1XPS19DhET6Q1fsUKNNG3A9LAiprDwF8GosOv3UJ7FEyOHfc5F952Y4p3ztRoCQ4GsPlOnMMnCG0nTU8+w+oLdkEKWpRccLdEBVyV5L9Lv1TE2I3ybACzG06dpjDwYaTds1AiEmS9hJVRfjtv7usnWD0kcZ7kL1clb6DtV+Y2d8CGq3NkQhGVKY8v2Xw7/t5G5nlMvx1J2aaCJ//h1pp/8qyz9u1eEX8IKj0BKOqpFRQdBQMwsQH6VbqzvGaJtHNuZnc/CEH4NsI52kKm6yi0Y5MQV3weDCJttyqlSTPraMO88GkfuNS4WdvH9xb38Pru5CaA7upLbiONtZu3Mh2v6AE0+QZgvdARxGDZZXZDRDQe3EDT1mZa9UnRaqOO3UvIAmr6OSrhZ7Lp6TDW169wpdUaS3FFMjP0ewI3So= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d2cee94e-9fa3-4de6-2709-08db0574c1c2 X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2023 23:25:22.9691 (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: 43zstFgS75PyIT6ypGvOyGZ4g84uddxr8GldfrbRkLl0xEU48n38ZvBlyx2AoHJv/QqFyB3gGe1twBJ81i7lbCOF5jiJPa9IWQWcBjO3gBw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4536 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-02_14,2023-02-02_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=797 adultscore=0 suspectscore=0 mlxscore=0 spamscore=0 phishscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302020207 X-Proofpoint-GUID: CufellArNNF9kTfh6LlNPXgt_F5t2lsq X-Proofpoint-ORIG-GUID: CufellArNNF9kTfh6LlNPXgt_F5t2lsq X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756764082256791542?= X-GMAIL-MSGID: =?utf-8?q?1756764082256791542?= 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 357e0068497c..a759ce5aa603 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 +#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 9f7fe3541897..b030aefba26c 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2100,7 +2100,7 @@ static __latent_entropy struct task_struct *copy_process( p->flags &= ~PF_KTHREAD; if (args->kthread) p->flags |= 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 @@ -2623,7 +2623,7 @@ struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node) .exit_signal = (lower_32_bits(flags) & CSIGNAL), .fn = fn, .fn_arg = arg, - .io_thread = 1, + .worker_flags = USER_WORKER_IO, }; return copy_process(NULL, 0, node, &args); From patchwork Thu Feb 2 23:25:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 52205 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp532228wrn; Thu, 2 Feb 2023 15:30:53 -0800 (PST) X-Google-Smtp-Source: AK7set+D1L7KfJJhor2tJ00hUjQTN+fZGIeWgWm/Plo9NBjdlpxgGukiMF3dycQQG52YYXspu9DV X-Received: by 2002:a17:906:230d:b0:7c0:f2c5:ac3d with SMTP id l13-20020a170906230d00b007c0f2c5ac3dmr7855986eja.15.1675380653754; Thu, 02 Feb 2023 15:30:53 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1675380653; cv=pass; d=google.com; s=arc-20160816; b=kSw9tkavFGFgd6VsmnSalCng3rsR5Yq9f9wg5jHbJt9gjD8vfvJegLmkweGi6VFoO9 n+4t5GNuPQqWL9/Rfyaci3Edfs+eTfZvXo1izxHa84Y/VNU/8BNGYea4z3jVzDYGhE+V yGkz/ucB/+IL7qDm4CbQjLjWBVXB60/Lw8pRwQj6+h8Z3KAJlpoirkQiHtNz2CJHbA9Q 8jDL5NMHD4DD0QqS9j1QmkXBP8iQRm1zqYVOEC4rhs2QetyvKtAIKiUTC5f4zQKYMw0O GqFqf1ObemW8z8cd3+ghkTn9UmSDBO396NlgdrrLWPBTj2OAXvDKwRH77b/wlhpT8Ehz dyzA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=8OzPqjwC6FJGRhR/XkHY0bienzxTR8QruTu4B92H35o=; b=cCqdHxbbLU/VXSBIXsZQ7/DV8wBxF7J0Yh901oW/PIie1dvXhhJ08AoVCF8nwmMTa3 LW11zXZaNxyq91a3rBW0A9Iqhuhg7LN4CCicXF98nApvlTDeITiRbk72XbwSpSp7kLEs MBojzcZFw37tXsMI+lDWt4YL9MaPNU19TDUroScmcU55192ntkNt1Ui2Uu5hHv6gV+wg j8o/qe9XoONWJbd7GRnl/b2mpg/zlCak5/QGQe5/2719l9hN6BouviPVv4oxt2FpizT7 KdqkB7y7jZLRLa1XN8vnADeABZhL0eJnQk6ANDtxIrsJJsrXuLkw2WD47h8sa7xMV5pU XrNg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=rQgPQYP2; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=rKPkpO0r; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 23-20020a170906019700b0088ade20f18csi1105087ejb.905.2023.02.02.15.30.29; Thu, 02 Feb 2023 15:30:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=rQgPQYP2; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=rKPkpO0r; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233191AbjBBXZz (ORCPT + 99 others); Thu, 2 Feb 2023 18:25:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44826 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233157AbjBBXZo (ORCPT ); Thu, 2 Feb 2023 18:25:44 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2C5096B032 for ; Thu, 2 Feb 2023 15:25:40 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 312IDpJ7011698; Thu, 2 Feb 2023 23:25:29 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-2022-7-12; bh=8OzPqjwC6FJGRhR/XkHY0bienzxTR8QruTu4B92H35o=; b=rQgPQYP2v3nkkBbM97T1NtFVw3QOvyx21WILzFED/6noXKIdHZihdAuQykMd4iSbXZl8 DTeMVZRNgRWszf5jIxGt1XQJDGCcp02P3zPKgdpS9tYjJyM4fgLdaJd+TidGiGwZzzsi /ZfvbObSoQpPXWhTAPrykzjlRtoWb8un7r75Mta8ZgBq+lyAUmjaRMX+UmPQlnco3TMy 0RLmygTexcePBYt80XXOJNfa08zgxrzyT3YuzHmJJC/2G/l0CC+FoaSSjgXmNjXJyWjo vIKS2WZtCuVqG810kvUaUG5aX/7KDV0ET1aZTWAQLJ2h2yoRYQ2tJ+RJwUMmQ7jyMGY3 dg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nfkd1vms1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:28 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 312NEqb4034153; Thu, 2 Feb 2023 23:25:27 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2171.outbound.protection.outlook.com [104.47.57.171]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3nct5gbawe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oa6uXTZZh2woOCzQ4CRQVMVgAMxaDcUAGQr7Nbx6mTE4ezRIBhJMbH5LhKML4SoM12/VywBvp8Ew6xPLiDXj7DcKou6Le2a3le6rNuPAmkyh5SdXEvovnR3Bm2bwazfhPyc7+CkzGZFVxRwH+x+WZPu+PrwoYPyA2LVhEHy5/pEXWtwFIHfJ8CYzgYCMDHBNa/cbdNPOidBbAEitEhJW6/7QiPZTMOqpPI5bRNWrJoWbu9q+l745N+bBl1Oc43Ri4AEzPuly+ZgkoAfUKWkCpYRb6MFYAgXHhVdPnbRO2skGDBB4GTMvXQSNc2wbasns3qFG72LZhBEy+/r77iw+aw== 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=8OzPqjwC6FJGRhR/XkHY0bienzxTR8QruTu4B92H35o=; b=SoWQ/oDkIpVhWc6BoCM1NgGOWxD90bPJAKeZ8CM5FluX/Z9uSb3wplNqvveYZXZsS8B1UKPY6B767F3TRqJy6f5rdbppgsBPgRq9uAVDZB95CrFpu0hcxjBex37OSHBkuUoD9MOgnJ0CsUd6xnUYxgLdYRRHXh+hvXQMVKm6bbhIOZSXXTu0VWfyGhCeEmZy2JbO8VGImGju5jDGIw3WpUmvZ+cXVZsCiyFUep7ae5VUQCOEVE5Lw7YNRdscbt7zocA5VUZT0h4iyrX+zxOMFaWKAGU+GYekwh9m/jXVbf03/Y9URszMLe3uoI2U9wvhTmd7dQcSXpP0P8gE6m5KNQ== 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=8OzPqjwC6FJGRhR/XkHY0bienzxTR8QruTu4B92H35o=; b=rKPkpO0ra0DAdOORJ7nVSmZbIvCOCtNvbEPjQkrLSR7USPxOSfFWAFWrTqXUN+J7RLLu8EkNXSAL3ZSnyguNOh+SKq8pfDdBU/WbKWNh9ElAnfNbRuiSZf90XGNuMvnC/MMhuamhkr8d3Cwt5dA1ngedyXtFe+9Df+8w18tv1qY= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by PH0PR10MB4536.namprd10.prod.outlook.com (2603:10b6:510:40::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.25; Thu, 2 Feb 2023 23:25:24 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f%5]) with mapi id 15.20.6086.008; Thu, 2 Feb 2023 23:25:24 +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, torvalds@linux-foundation.org, konrad.wilk@oracle.com, linux-kernel@vger.kernel.org Cc: Mike Christie Subject: [PATCH v11 2/8] fork/vm: Move common PF_IO_WORKER behavior to new flag Date: Thu, 2 Feb 2023 17:25:11 -0600 Message-Id: <20230202232517.8695-3-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202232517.8695-1-michael.christie@oracle.com> References: <20230202232517.8695-1-michael.christie@oracle.com> X-ClientProxiedBy: CH0PR03CA0297.namprd03.prod.outlook.com (2603:10b6:610:e6::32) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR10MB1466:EE_|PH0PR10MB4536:EE_ X-MS-Office365-Filtering-Correlation-Id: 8199dfb3-28e2-45fc-01c5-08db0574c2c6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: novCI6Op+0dVpZNxcv4ekd5Lj3QtbPFLmM3ekClizE4YbjCqj82xLCY1o6WRg7GIqqiYwsGOHduWXjQ1MYOwk/vSJimfusFvOyn+Z7sDlw196iYKiwZWfou+6hEM6kktnVYXZpkBrUAeVSLv0wsPdA0/zTNSA6XAARCm71a7qeGkz70Yjz8rd6B5JxpUUPCPOQXohDImrzR79VOzHiggDJO72ENpvkvIVIHWxEkiSjn4N77mpg7xNXJojOlfkWNE6EdCng8U+VjMcqLmlBjmJM34SnR8IX2gUSFwVDG7DgkxLqyLjhNSauR2Ujii5UGU1JFmCm6ydSI9VtO7b5BjevxAMdomWbZ8CbZTto3cLJa5tjwlKYLWVatpZcG1V4+dP/Py481pbb6EeIf/ZIiA8Pb2s9p4AKkGQDm+9UneL95uXbF4tgQlMgdAf8HcAy87lbcWrEIgaGQr0RbkwPiwQCGlo5/YXGlx5SlFfbvLU+k/oxMHNGCROhzTaZ3JRgwPRUSiOTJsuBooDgf1kS4Y9L5rF77I1JahPtQCTwoHD09Y7i8wRjbKo3Zw/XCpF9n+O3wHm/Dxh41XuNTbwC0pmPJO2KWfvRxxN/VcxoXOQNPmrUO1lnO6aK3Qz5o58JLkC41AHQVqCCcLo1t6JtGxXjQiWe9dG+tsVmSJAF6/MILK4FFPmiXW0+vHEfXZ2nqU 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:(13230025)(366004)(39860400002)(396003)(376002)(136003)(346002)(451199018)(316002)(83380400001)(107886003)(6666004)(2616005)(36756003)(2906002)(66476007)(38100700002)(186003)(6506007)(66946007)(66556008)(26005)(1076003)(6512007)(6486002)(8676002)(478600001)(7416002)(41300700001)(86362001)(4326008)(921005)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6K3ABrGq3MAq7ZYFA5WBSY+fwy9pJnXl3i79emtMWmM8an8JTd2DjlF03dvfH6hv0VLXWxz+DFx5cSglCG1Zt5a5bDxJbQMPUccAXk/wAhv0U43w7CHM4xUKMrQYpw8bBlNhFaR9YXPElbnC9/p4wj3lxW4C5co4ixhk/uN/RY+/OTunM9J6lTishPGhglypqsJPoujnw6Rlr75SSqiDLn++irAyBe3GLwcbDic+z34eIY4j4i3oVAYSwtMJmu26j5o4eMTLJiaROFAh5aDs5bTh8kmaeG+wvY47rzkx1UFitvd2nUKPr3um42NhdGeeMMmRBLe6a7K+hoXqZcSEfcABL3LPhASucW2B+lNSM6ykcBOX9lJsEawb2EBFrYGVShAzDhuzsprWT8gJxFsCuSidKjfEVoWt1ZNWB/VHEmZ4CXjDT0P2KUSrf6uTbhqpbhNiPFHSx3hsZDpfqcnen7qPTORsuVrUnl+tTxNwzBOzOQDMYORDdJllX6C1FskOWPES4XIhPjLaQ+HUmXADcdlJbVSLLxDd43JB9he5LlAUGWCat3ibZgWmIA54wQEQDSyYTiiN6PquhW9RPD5d2EosSAzRgBj4r2TeXY5F3BUDj9xv+mBvW3Xks3knNFh2UgOWTWUm47XCcA4e2EVSBhdOhbeJYg+iXKxOtgJBNqCSBs0WstdvJWsOiKOjAPm1YzHka+espahYzRVZ/lELjWle/UrQ3dqR5q9cDWtlhJkD5DfT3vTJBXXFF67dzxtOcPn0QSubss0rzaYRcbA2YNQ887w1OmDxOgIuGw3erQnb8a6Bovn1hdSUtFQAAvONNApksutZsII88S5UGx0QOnMZKcgCQx+CB4By0BB2SWcv8rax3fbrorgKh+pfjLRTWCm+Mr6XeLO/Ep83/W+frmdBIa+ZyOoWLulghMfxEdzO5cSBEV4Z7csCkck7uk9Yf2MY0OAuj1wWwODn3OxNOT93N1sMXGg4ZjMrGpz0rAWstRYuv+mm7tHDn0RBHgWOABBFm1rmScq1jlawF/9oviOX1qtJSFgiGmwg8qK7VEh3XAj/s47jm0NwGqsQunzplt91TPQd9lRdS/FDUb5oiSHTvwSjNaWYlVaqrNpsV59HgkyPMTJyS0MAkhp3HEcIzhrq73YzJtbW40kvjceFQLJbnnsSPoV9uNaHICuNjF+bSyNGE08hiIGLVfQK2aDs9xeQpbQcneoe6WNAX/lz69vkmrXOzRRMf/GKa8ovOzxmsVmSeI9SM+/fLC2GbxHMvvAWDh3fgxP+fiooQLtR+jK0XsEtFo1nSyCrWBduo45d0MDiJLbi4nalFoDJDLt6uwW3/9+rYhqBMNerraP4EYpZA9g6wpntCdufxW1I3Tfm8DRvzcVWjRFae3P2Jru7kdZb8/d4xSfmW73Y8SMV5k1gfC71f49PdTMAVLBN9H+pefKNqcOwv4AgKicUeo6hIZ2GTcTR+EnEx5WcAns50hfTOIHKge8Dye/6d6ccg6I//xjVNxJ3iLPVUFwwZdyzdYVhvtDoxxMwlzQ0i/oW+Cd6F/nOXbWhyKHYEpwSFnZzff+qv+Ezsyl1Q6LaRBfxN2jYa7kqytIZo7iqqDIngw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 2EgoBNpnd7KbkQV7Meqz71jv6NvwD9euQePdxxU2ENa7DLgRTsAKxVAaY6bCJKY7EzfWHCcmBg26lG5IhYzq4bNxvvaTQL0gyEGFs3m44r9S53HQ1OitMIgb1Oc2GCLI+F5oAobRV12RhYtNEp1dRNLSgr1O/PWJA2TzjX20HU85Q9hOLrkqoPO3BCyEjcWfQXOmkAUS9O3H7XrOaA97KVyHjIZOwPF39pwEnGOE67tiUzYou5HpVS2pU3VHHLz4Gs42xgEMRWekS7Zr1UH4Ln9LRz9VpMyOsTQqpRvy5spiQbRqZTqWFsU5SnChiLpOe+jb/5Xzf1sU3UF1q5glS8v2ZBfPNOggvsZ02fwCnu8Yf3uSqMqD2IISdimRoR7oLWPcou6O2kAnWQiwcxZplvIlmwDQol7nU/glwfWX6FRr770NingceJIkQ4XnHrAV+LAIjYO7vHJlhZTyWO3e+6wzRhf+1ZIsx4HpMxowREhwokkSGkT7cJ8eZd3hQPBcmQWoUMu14J5MnVbsAkKR8YLiNbY3PDxsfGsrr8I5XfVie6dDDTJs4xrllUV1C4MXU66wcI5M0Rfp/9pBR0Qiy1FanTAkQYFQrmP12Z5T/iKxEXHh0H+Br/BidmiTG4HGVfk281G5YWoY93quJBg3djA2AlsBRlp6aGtZy1L5Dfk7vh+VR+pyRGUvrs3ZbanrTr4j+0boJfQ/xLXwJ+Y46QL+YqjyPQem40R6Rbt/yyQfJWgCal7peMv/Xcx5BuhCH9W3sJE8Wi87S4Q3zuIQpsc9IacDQMXeKfeknT08w+bRMF4o0Zl/7ZG3v5wvn4NT2bGfK89/dZ3sp6M9pzsfk1BNmlJ3qmE0f+HOFtm5vEKe8W1hKVl23dEh+7ZhUQhMybfJbBjBrfiu8x3vCKoGtdHnDMJl9XAOJEMCFEHGwMS3p7ewX6luM/DyPOJth/7IwIKa6NUqnZBaIbrmmRiL0EdsWJwG5xBpQahYFmCip+u3Rzqji5gEcemi5yu2CkuBYZRvTNOUgtr0fPY4B1mT5g== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8199dfb3-28e2-45fc-01c5-08db0574c2c6 X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2023 23:25:24.7502 (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: lEmNIoci5rjjEEqypgAD863InlKh3j3Jh9q3AyfXSjErcQEC2dThjQ5hOxOIo5kyufbC1J9TZyst4F0JKjd6OOAviNstNnLZUzPuIjuTZ30= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4536 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-02_14,2023-02-02_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 suspectscore=0 adultscore=0 mlxscore=0 phishscore=0 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302020207 X-Proofpoint-GUID: Z5EfaigNLXKGw_vPOHGHmIQdvweV7ePq X-Proofpoint-ORIG-GUID: Z5EfaigNLXKGw_vPOHGHmIQdvweV7ePq X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756763944668496707?= X-GMAIL-MSGID: =?utf-8?q?1756763944668496707?= 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 | 2 +- include/linux/sched/task.h | 3 ++- kernel/fork.c | 4 ++++ mm/vmscan.c | 4 ++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index 853d08f7562b..2ca9269332c1 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1723,7 +1723,7 @@ extern struct pid *cad_pid; #define PF_MEMALLOC 0x00000800 /* Allocating memory */ #define PF_NPROC_EXCEEDED 0x00001000 /* set_user() noticed that RLIMIT_NPROC was exceeded */ #define PF_USED_MATH 0x00002000 /* If unset the fpu must be initialized before use */ -#define PF__HOLE__00004000 0x00004000 +#define PF_USER_WORKER 0x00004000 /* Kernel thread cloned from userspace thread */ #define PF_NOFREEZE 0x00008000 /* This thread should not be frozen */ #define PF__HOLE__00010000 0x00010000 #define PF_KSWAPD 0x00020000 /* I am kswapd */ diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h index a759ce5aa603..dfc585e0373c 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 -#define USER_WORKER_IO BIT(0) +#define USER_WORKER BIT(0) +#define USER_WORKER_IO BIT(1) struct kernel_clone_args { u64 flags; diff --git a/kernel/fork.c b/kernel/fork.c index b030aefba26c..77d2c527e917 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2100,6 +2100,10 @@ static __latent_entropy struct task_struct *copy_process( p->flags &= ~PF_KTHREAD; if (args->kthread) p->flags |= PF_KTHREAD; + + if (args->worker_flags & USER_WORKER) + p->flags |= 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 bd6637fcd8f9..54de4adb91cf 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1141,12 +1141,12 @@ void reclaim_throttle(pg_data_t *pgdat, enum vmscan_throttle_state reason) DEFINE_WAIT(wait); /* - * 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; } From patchwork Thu Feb 2 23:25:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 52207 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp532378wrn; Thu, 2 Feb 2023 15:31:12 -0800 (PST) X-Google-Smtp-Source: AK7set90xQeCu6igMnNKHkQDyUhd1GPSurBPNKkJ9l1DH4RW939Hdn07YlwedV1wRL1FCAImlVME X-Received: by 2002:aa7:c0ce:0:b0:4a2:1b65:25d5 with SMTP id j14-20020aa7c0ce000000b004a21b6525d5mr7845187edp.6.1675380671908; Thu, 02 Feb 2023 15:31:11 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1675380671; cv=pass; d=google.com; s=arc-20160816; b=FYaTij/L1zsvSaj83HcZAJNQsYA1ppZ6Ip04Ls363rYadlREsfSn/3+jQ+ITEYtfwA UUnrOktNKmMMI0KhRxTQefFMMyr66U0BxFDnaMzhC8dXn0tMF21nowmbLBlRPPFnF6Vy CRS9PTvOym1+z7gq6AglzePRXnUQKCDpdz23ZrwMxCRA1jAuhP3C+FtUcbQxC0iaiEQg d/+1W+kh5EIkYua7yGaHn4oE/AB6CI6Tmz1LGU8OkznBW+B6slBSG6PzHkHoeHi7CliY KE9gBA9FAQbiyI5p0QkfhkwO3NlLoZB2AJ5+otSuXNh3wsvt64uvoDUpJJkbmebaJONT 3RqQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=sFqxWoDZW/mg2N6Jmmdjm0YHRP1aB5VdFZshq+zxhYM=; b=q7JcTMfiRicG0hb0WW6jX1pVCa+erdRCv9W61QJ9Ds8sgZRcuDEh4qeLDZoBSyVUOr p+nyIiOiUPMR0P9qRFx05OqwlO0n1NenjxtpQOyq4aMSW/wHn87Eu+bOoEgUURmXG6LS uOZHUyJm0epJTQH4qfuuEGMcxMCMCr+Z0LQeGTvgKBazw6XpmWBtvjGGRogN1/DcFa/0 j8CFBcpTW6ChhucWROrdFXEZhWsTLtaApreEXPexeZmrN1IE0cr5HFRGaGMmqceHUP6z G2BPEXSeM6rDmW6dLma1GHPURJCFX6s7bHeUSv+qujeWgQs1g8pEcYR1Deh1+VWDVuoO HyLw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=ZUnbkfZK; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=qwaLa8c1; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id fk26-20020a056402399a00b004a21263bba3si783804edb.346.2023.02.02.15.30.47; Thu, 02 Feb 2023 15:31:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=ZUnbkfZK; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=qwaLa8c1; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233188AbjBBXZ7 (ORCPT + 99 others); Thu, 2 Feb 2023 18:25:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44838 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233161AbjBBXZq (ORCPT ); Thu, 2 Feb 2023 18:25:46 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E917B6601F for ; Thu, 2 Feb 2023 15:25:42 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 312IDtgH023725; Thu, 2 Feb 2023 23:25:30 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-2022-7-12; bh=sFqxWoDZW/mg2N6Jmmdjm0YHRP1aB5VdFZshq+zxhYM=; b=ZUnbkfZKIYP993CAXuLAotOx7gN44U1sE7FDcikatY+NJbYf6ijagqTXUy+6vgAyYUTj ddiCydME2zzPOaNdPc7i6OM1RAuq8VEgtouyRVenxWH+aUfp7v7MYovAzS2m71zgk7XN EJHFMiVdGDx7HGg4i/Z6PjRduILfop8R74OlHck4fkYUMffqkHdu/NwZW1VclSQGxMyJ FiAmO79JUJRZRHiZozLZ3Qipkma2CCG76KqbDlcSOpnY92YnpmOYt1aEhIZuhTqAKaq8 Lv60lJfpar+CpCWqZw8WFfp7GlElE9S6noJL2uv9D3Se1kev574WjG3Su4lOoqFg2C0c GA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nfq28v5vu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:30 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 312LFS8g005986; Thu, 2 Feb 2023 23:25:29 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2174.outbound.protection.outlook.com [104.47.57.174]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3nct59rb6m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TaicNHN1TbLD/YTrHJ4SszsM672doTanE+7xexHD4arEA4XLbYQt+DWWeQ9S05uKW0kQAB0Fj81esebDxdf1te4l8no7CchRWS9esvIBaRuq3Goe+yyz9BDZ9ha0WOppXS3UjpjfajX2AcwRBYuCFgLCRrVD8PMNa/lcgojVMVba1ioNnXTnc1CoKJqHL4RYCrrn01EvCFxdfU1YjaiOhzhcqUDwGaewdXiM7TnN0cGutIAu56pUBx6PwlFBjK2n4ytp5AFzQrMJpapd3EmIDNfYErK7tZjj9mWkSwZ0tEvN1NADeCA+bMEqMJYWV9+TdU6UgxXcEf9F6pf/Daw67Q== 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=sFqxWoDZW/mg2N6Jmmdjm0YHRP1aB5VdFZshq+zxhYM=; b=bjvc/1gqCtB+GgE/sLZbQEW3i0PlM7rO61yXe7hBJH+rlKmMjF1kvf8sUaVdLGfcaam9AnpuaqEYpEBGYyEmPfjRaao0tLxFD223dFuNXJkBSVsP67jKqPztKkrkdZ8HvstG3+4a/pcZsphrIn4qSxa3nNw2Uko5OKudfW9aYeufTwq7LGfJ5PV/vgady5clmpd6fM+3ssBM2qxWicp7HNcaoHdJ+TBkpq8oEHnzR2AHZwMiczPtOFdQ0pAlb1xNK4kbs+B4YvkYgThP0vi+BuJoy80BzZLIO6dp3mvfnzMs/Tfu4EafIxHTFDkYN+UiP1sDpF1cj+NietU53KAq+w== 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=sFqxWoDZW/mg2N6Jmmdjm0YHRP1aB5VdFZshq+zxhYM=; b=qwaLa8c1+MQHJQm6IJU12ngMRMieaDRscpkMFacTTbHGc/Umg5eRaum3bUeb3hfDOPMIVeigsTUfDJdrkAxbzUFDaJb2sGt8Ue5yaM75tGRvRTa29el65qEi4m1fcBe/PVyGRZCKHn/VWisAodSub0ICOlFD8MwVjwm2gR8EQOA= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by PH0PR10MB4536.namprd10.prod.outlook.com (2603:10b6:510:40::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.25; Thu, 2 Feb 2023 23:25:27 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f%5]) with mapi id 15.20.6086.008; Thu, 2 Feb 2023 23:25:27 +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, torvalds@linux-foundation.org, konrad.wilk@oracle.com, linux-kernel@vger.kernel.org Cc: Mike Christie , Christoph Hellwig Subject: [PATCH v11 3/8] fork: add USER_WORKER flag to not dup/clone files Date: Thu, 2 Feb 2023 17:25:12 -0600 Message-Id: <20230202232517.8695-4-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202232517.8695-1-michael.christie@oracle.com> References: <20230202232517.8695-1-michael.christie@oracle.com> X-ClientProxiedBy: CH0PR03CA0285.namprd03.prod.outlook.com (2603:10b6:610:e6::20) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR10MB1466:EE_|PH0PR10MB4536:EE_ X-MS-Office365-Filtering-Correlation-Id: 66a94706-aebd-4179-bf9b-08db0574c451 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WxDXDtytV1aHaL1GeG8qvF37PdEXp4QQxBAf914QzPev6aDiEKJf5WRY/n1i+BDLxHbas8hHvhsMaCqEg0iwt7LZKaZOoBg/US0I9dkLzl+wL3fdymkzCVP43MPWSVYbUwxjSy1b4KYvlFEurBqbLqUfg67qAHorbRTweipmG4aZhsGxWY485K0I56nSLM2rll96LaxOnsA71wANJ7Oo9auDZ9H/o2TtE1UI7WXDn+kAkCEY8VovqGAFS+EXs4KCGofcMTV/kE1D9OIw1FNATSR2iRDY9RGTDy6laDIv+5dDsCtJ3FFYrIyio1+ULOpBD0y5YYDtExyiXeHL1UpOkwJcxGydyuF6L25VWs4LYIt639ccR6Faa6FuWR91+bDeixHs6AebmVJ+p2k+mM5w01+MbDp7Zged6ZFALNeIy+aMlJZ5rMrwVnQApDuootkYgMV4ONnk3QMpUsjAjMLMLT91P8N5mPNDJMPuUcdy+qiGx8TnwfFgyBAbKy9abuLbE82rePJ5kteFwsdKnFNSiunMV1FA0Ff4Jyq05uHLP+pl/v7wWdGBIUDfcgHFDfbYCU2Kv9tzvq3VleMVDwDZnI4u6kBFRrRELK8vaBH7HZM5/2RaA8H/QBkqRAWu0GKdY7y6WGYDrM9YdiECXATuvNL3KX6NtfETX7mDQlbN+nwPEsv8qcxQADUvLMyXQcG9 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:(13230025)(366004)(39860400002)(396003)(376002)(136003)(346002)(451199018)(316002)(83380400001)(6666004)(54906003)(2616005)(36756003)(2906002)(66476007)(38100700002)(186003)(6506007)(66946007)(66556008)(26005)(1076003)(6512007)(6486002)(8676002)(478600001)(7416002)(41300700001)(86362001)(4326008)(921005)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4hE4RgG/rRhhJ4YrbWLgJV2DwCxrT5INnhKjvHurzMwWkLXZnQVFc/ynbsVxGfprhc1/qOt8TbwarZrteNgVQgpejS2taA6qbKEtJbLniDJPyKvsCHEveS5BSELy++FP8aEi2xZAKd5Vxl1sENDHVWrr74JCb4/ItuLMNBml4k52Q3dnkG+ZVp7Fw3E0Kf+/l257VJ/AXX+d1X0mnj3UTcFXgPENPBqCtpDO8k2jVuzPoymbwEr6F5Pq2YX5XSOX/vhU77ruqeboEoPlI034hky8ho8f3ugWJ9elqG3trdegIr+U34J5m4m8OQ17R/T8N6X/8WVyzVnqOcVQu9bsZKrrOZjAo6XqFZ3CHx1rpAujCFtVcmPRgTdHeX9OwF5QdZZlSgN2FM1B7HBMnls+wjlLC0Vh7j28WY0pavSo4UQknLPcygzaq/BDp5O52HzYNNDVUqSMMBLhWfjIH1zdz3lHJTxP2Ce5HjfTjczyFL7dHmJL7SprDUne7RAE69EsL8vu6Xq0SQ8SEoi1j/D3dH9qlj/cMtPX7yKjH1kPxYC21eHjXp49aOjBW+IfUhhl4ZCni0zl1Jxgi3rIZKXkjn4tXxYG62AmUyA/xTnFcqvov6iD4anCI1KWl3PyKgUsJGuNsiS+HZuzRnJN3vqdEnOWgHGLfadRC+YtRgtpYGcRef8gKGEhiLmZWstFZLcoRpZ2sr+G5HPnDk/8lDf9mySJC5/XEuEaZRgaIzD/L+ilw+VhilzX74x3bXeNEuHWOEEXlVNplNNfucTLic5d4sXMmrk/fLdp5MLh0dkEPx123sqKjUJbGMAnMunyw3eXsPIYUZacJvRPry8tJjg6ZozVdGMHR7ch26X8zfnih2WcT8WO8wdnOdxbX/b0xba6lgfDYO/bsvWw7Gsw9g7v6HkKr8tV4JQxRW28o61alBANo4qvA1ct/ZQUjVBC+m0gzNvaVnLuYnnolvyZVG6hZFmupF9NDOxhSwsv2SOnenvi3zL+tMOJukrUa0+sBqtVm0yjYYyzw/IE5n6r4GGcYsAICcMOc6Qzs4P2Av129405xUIIVePHy93pVlnCuBfV46EKOwQSe+ppcpJbBg64zcWDoEsmDYQJsZINCA8IqkTUmB24rfBWal5IKHOhFewoF7nZ6+El/x3GjNthe+0+MSxDuZ9+otrXnXQdgbykBqxUutY1bB6HkiN31k1rs1rBuE/TZEc+dsaFVGGLziSUkWGOeKWWAaunFwP6pXTrwQ5Wx+cZtBY0VqMbLbgY6Q8YE4TGaxW5m2EPx7NO0KlKLsUSQsZsUWLkYnn/Cvu1BBs1OpOLNpnhpWdFwQke1hg1XBk/PMGSNCJwZUfcbCDf9WEQKz/05FZyNbJUBWHnvODuEuwZvJoQXw2lMWnnKSt+Brt1NC2QZ08NaQZeJuQoaDkTL9SZ0b7dRF4Kri8JMst6lp7zUh2z9Bnqa+HSgJ+5qqgySpALSszcrKKSIRnkjg5pvEpo7BmbzpB+OofObBZ9erlIhhcBQ8E+NNx3doLVVOURQs5ciOzLIlrQv3yCXygZ1gR4tFfQ1GnSPgqOFQ18TNMA52uTLcwD5RuuY8wPBexxEKH+0BhDJz4lPb+k7A== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: GZ2hvMsBeh5klrRMUxySMBMYcdgsDVwelbLUTb9McunURlPiOC5bAGvyBPWZcbBvZCRgmmpSpj9KQ6FtCLRh8j97Z0ro+nb8BoYvzgE+F7m0idT7fhypASPIF/0MLG2V21nRR1fH8VBu8Je+T9WLWZV6pzPhH8vWI0QZi92p2W5RSXDVNg00dwI7iHgJFr02Hemc7eujWZWCTbVwNgGZKiTabPDSfA82tb2HBEY1Ea/xoZfrmtQIVefyWwv1iyHq2vhJZhon/+qNkdP5ObVsVf5nDh+NYtuPTmPeNJJDLePOR7uGc/XK81XqGHRbvmk0tA1UVAr2qWGKMj0MnLTfGOocCspbVlZYypholwRzuBvFAfuwllT7TG0HOEsBap2L90QAdDikn7DgqvIDg8BLoBcvdSyZZMauZUVBanDEBmdFfA0cSQ73P5tg4Q4FogUaqZgT6kmR735n9cEWmg7FJcXTEYRY55EE85WedLCzRxp18PU/Rb+ZYWLgqVMICxb20XPkcT4EJSHHlZAJeaX1A3iahLlC4BjnQ/RqYcM1Bzcgii/NtZzwxaX/VXtpcFEi8CARHtyaNvk1ccEoOdWu7wYnR6o4vSVg0sKgZfoQORRzMLut05oEm2uOPNoOEtaukSgenxbvZ7KGJvToi01guLEH4VQxRasOUarP63aLX+Ko6dE7/BJjV7VNNqp7XVcroQ1VUWQ1dHNuL/Z9JwPU2P5VZ9VZZ64UYMBAHV5f6tuw6AVbhdc4Dgxyd3pXGVvub66t4RjcsYufQBMy40B3zuKDa4DBUxSQ0+SdGp1UqnFPg2ZOycVhI2sjhRwvtdxBTn29wFXsObsiWvpSa4LLRRCsAXEuXk9SPNtAKIwinl4Oy/aBDAuEkHbOeHV1bBtc2D065pEfdqyyd0XP9uPUE8378vwKFDP+mCFf3ifFjS5QjBgzGyx0mQXdjovsdcHAGFP/rnJgMkXtpxtwdC1mnHNX76KBftOMWKPSYuMIANE0K9oJcsVLgghfHS8dHJu9XCyfS/d0waZrMBireedmBDrR3EIuzkdwSnqeFeGmsc8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66a94706-aebd-4179-bf9b-08db0574c451 X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2023 23:25:27.2500 (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: bSkvBy7SA6bxEOsO+0r/hKqPvpfS90gSUm5k9u3n7PrsmIgMGI0Eyp85E6XdGvmaBZQmgvaKV7BiDiozPSodxaZu08dLqsBBq8ZOkNhcNHA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4536 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-02_14,2023-02-02_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=992 adultscore=0 suspectscore=0 mlxscore=0 spamscore=0 phishscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302020207 X-Proofpoint-GUID: M_sWB8op24b0vVimBPAZQmsCnWUG9IFM X-Proofpoint-ORIG-GUID: M_sWB8op24b0vVimBPAZQmsCnWUG9IFM X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756763963114823504?= X-GMAIL-MSGID: =?utf-8?q?1756763963114823504?= 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 dfc585e0373c..18e614591c24 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -20,6 +20,7 @@ struct css_set; #define USER_WORKER BIT(0) #define USER_WORKER_IO BIT(1) +#define USER_WORKER_NO_FILES BIT(2) struct kernel_clone_args { u64 flags; diff --git a/kernel/fork.c b/kernel/fork.c index 77d2c527e917..bb98b48bc35c 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1624,7 +1624,8 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk) return 0; } -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 = 0; @@ -1636,6 +1637,11 @@ static int copy_files(unsigned long clone_flags, struct task_struct *tsk) if (!oldf) goto out; + if (no_files) { + tsk->files = NULL; + goto out; + } + if (clone_flags & CLONE_FILES) { atomic_inc(&oldf->count); goto out; @@ -2255,7 +2261,8 @@ static __latent_entropy struct task_struct *copy_process( retval = copy_semundo(clone_flags, p); if (retval) goto bad_fork_cleanup_security; - retval = copy_files(clone_flags, p); + retval = copy_files(clone_flags, p, + args->worker_flags & USER_WORKER_NO_FILES); if (retval) goto bad_fork_cleanup_semundo; retval = copy_fs(clone_flags, p); From patchwork Thu Feb 2 23:25:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 52206 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp532314wrn; Thu, 2 Feb 2023 15:31:06 -0800 (PST) X-Google-Smtp-Source: AK7set8ilC8e9zxG6m1iLVEUT4++iqlG/7EJblN+ufN9+OdgAnxbfGVf8cEVEHo6MbKZUvyLVrD0 X-Received: by 2002:a05:6402:64a:b0:488:6003:24b6 with SMTP id u10-20020a056402064a00b00488600324b6mr8059316edx.40.1675380666364; Thu, 02 Feb 2023 15:31:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1675380666; cv=pass; d=google.com; s=arc-20160816; b=XFsPF/nWfYHrO/3XIVhaq/fKh9lO3SwM5uuhd9hEaW+egxwxbMOz2nv719sd/nAp7V J2mtvj5oQdIpOHf9WVRoStmwlpn5fyPS51iSkpo4pJVtzkujN5vr/lXsKtUUwmxpiB2e tVdOE7mV9cyw/csxtaDRVDXfM/Ch9CGOCOUkKApHARJTMxBFPtr6M1T+yMhux/brhztP aFsT1TcbUhsGIJ3J8pjZbxCeG4gxkQwxa/Jt4O09pKwgRkXO4FfIU622qf/dN0+AY51V rRjgyGrCVe+/A9Rtv+pehPcFLvadV8i+g5IBGvmHnja/1JGvxJZ7jyu3Ppv9pYv31vpG lDxg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=V6qOQLGaYeIUCIDhZQHSdtAL/bJJ94DjBJrTjv6j1e4=; b=nvA6/2Jz4obGu1Ohcj6EwBIyxjtGwhXMgK8NiQjVrLfsUUAC1gE2TzS2EBT+j0/xtq 6wetSmRwqtkxLuZm/C2uJW4toREH0Cyw8O0Klnt7V4ffpcjvLh/E4z3Hy7mFBCfcZfgw mlHOKBg0o0iga6vvVLqQ8Y2yTS18cLZFaCSCh6bBmULWk2+R5AIWIP6E5AlHAwvQnXWD RNDaM4tWfiRYbjzk4CGjfADt4IyIw86mkLoQAsIxUnmgsPAp7Fu+XnrlJ5Uy+e1FFtUq WCHIN9VfdGogt0A5nC4U5crwCroYEMEggZjTDL+1xWilw9BYW1fE4PphEtPA8fNDxfTp IfQw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=O+KVTiEC; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="D/lHVo75"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b8-20020a0564021f0800b004a08f621badsi789411edb.284.2023.02.02.15.30.41; Thu, 02 Feb 2023 15:31:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=O+KVTiEC; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="D/lHVo75"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233152AbjBBXZw (ORCPT + 99 others); Thu, 2 Feb 2023 18:25:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44794 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233143AbjBBXZq (ORCPT ); Thu, 2 Feb 2023 18:25:46 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 444296D05A for ; Thu, 2 Feb 2023 15:25:43 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 312IDqUb001798; Thu, 2 Feb 2023 23:25:33 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-2022-7-12; bh=V6qOQLGaYeIUCIDhZQHSdtAL/bJJ94DjBJrTjv6j1e4=; b=O+KVTiECE4eOvviZysyYkH469iLxcBcE8trE2rhcZrEmrVpGcZrquJiUbHwYcMEa1Jj9 Rnf3Ecu1JSZJW8sCEu0dE8FjJQWN0L/801OVZaocFLxSBxZJkkd17cwH4l6JuL5JRri0 H5YS4ZWGX/WhWNPio5QtHjdxMMOrHBkcQJXnSdwZLc9fB/vp4yGAurqw4O7Phhr8gYQt 1zII10iO9IG4Lnsc1iic5+4myp2z257bpCHoG77H7FkRypVUEV+3yu10ifG5S28xtD/l GT8khZxoZROL2tOUkX5NaEiDIoRc28bSvyp0PgWbnhpm5qIkPljanRBp5BYOwCN8hDRv 6A== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nfk64cp73-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:33 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 312LJZv9030056; Thu, 2 Feb 2023 23:25:32 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3nct59hc8d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dm2R+NbA+9ykghAev6UBxUL1b4kxwn4/vGsJKcmMXmXGLUXdusps80WvuL059NwVL451L1Xnrlgl8l61LNcI1Zaa0TgMRzEsX0LT39MfU8EiQnufmKgdjdFiuBrAsdAZrlKXAbi2BXcxPuIOgc8H7c+luTY5w5LHXhQswGN2vhDO5DCl1bvNkxMyMcIa4uOGsRotYHjS1SCBMdftK/cREGDoYKapzxEGirqdZ+rRBgkOWXmUJ0WXP5cXShb9mt87vHOKOlNDxTyJjydergsTMA8DKZG3trd43ncMH8OyINQCrqGFrwDt78yZctV3VTlkJy++w1BbqQr7rLTAfOHvfg== 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=V6qOQLGaYeIUCIDhZQHSdtAL/bJJ94DjBJrTjv6j1e4=; b=R5xPQtxAueaZI2AQpihnj4Zw98FFy15KL1zJEsNV7ZPHTilewvGMwTMUyk9weMCmsw3rKVKVaIBq70/pyKKv4TPIKEep+J90crHh2mlvzM9mOc9D5Pgic4VBDkXt+iyJUEkM5e/0cBNed8Sob5NlqYhCts+SMFzq/E4kkDyhQ5ilufCaDFyZV8LLea5fYXwdLn4tlSj0r/Ojf13NpusNzAPANnQTrOi4/CyT0qLcZOszY3D7vdgrpBnNSKTu5m75QiaTi43Lgi4DlzV9+Y03oP+g5Vhz6FES45AFtZ+0sULpNYsIqgfDY6sm/SXB+J+Qwnl9qWqdhAbkcX52tnOzLA== 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=V6qOQLGaYeIUCIDhZQHSdtAL/bJJ94DjBJrTjv6j1e4=; b=D/lHVo75J1MDpM1ysHtglVshZG4MavEKol7CXVnI9sqgSZAMThxU6+4gsjgEnTjYPwpzgXFRgMcQF8hOuwwzAHH8180VjqumzcRF+Fw1DOob4PgzOGrbu7tJbn3nW5RAC9VJ8cn9JQo/tkxPqckpjOsmBjx/R2+DCnQjrZ5ZQoQ= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by SN7PR10MB6643.namprd10.prod.outlook.com (2603:10b6:806:2ae::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.22; Thu, 2 Feb 2023 23:25:30 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f%5]) with mapi id 15.20.6086.008; Thu, 2 Feb 2023 23:25:29 +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, torvalds@linux-foundation.org, konrad.wilk@oracle.com, linux-kernel@vger.kernel.org Cc: Mike Christie , Christoph Hellwig Subject: [PATCH v11 4/8] fork: Add USER_WORKER flag to ignore signals Date: Thu, 2 Feb 2023 17:25:13 -0600 Message-Id: <20230202232517.8695-5-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202232517.8695-1-michael.christie@oracle.com> References: <20230202232517.8695-1-michael.christie@oracle.com> X-ClientProxiedBy: CH2PR02CA0008.namprd02.prod.outlook.com (2603:10b6:610:4e::18) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR10MB1466:EE_|SN7PR10MB6643:EE_ X-MS-Office365-Filtering-Correlation-Id: 231f0840-8cc5-48e6-35f3-08db0574c572 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Pp05YI9f7NhS1NfK+a93jDHgIEiBoMciDHfF/0oc4GWUqmQLX0sRj0LWA2yXRrSD8KPOF2QNkZtfdYB4Gx6KbUqO5SMWxzPOgHnynarzpwWnHuKt9LrzW4tFBZBDBgpxFfAlbJRuBBELgnAyIOwxAoAD0JslqKXnRAtLP9JY6nFH26lwmvUSSetCCV1wunwMAJtKmk+xRX4nF4Utxs6M0q8Fo20RQ1b+8jlvG2/gF/x4iyGAb+IPRvDmZXh81LSTVfumzlLyK583cohI/l/nnfROxrjSaZlnWJbHvuo3KSbqE2+Ywgat93rFrvkZ0tA5tcvXlMGljjlLp0natWsBbT3060oLYquuOP5Jf95g3sWeoIMimRpFbofrWcDpsbaBshepW/hhKJ2pOq60YjqJIeFXWi3xMxahFDP3TEt6UFSwpP6DOJp/HeLNLbQ8sH6TA8KKUoP6zq+q+xygXgwxVWCMmiCdvHiH2gGiTuJTGKBmW/ABXWJymqbAdxBk3PSobdXOXq0QeEHtIEkUTcWkxs499f6V98KEZdvroMfl8+c0HQ8DD+tD+lXYY6u93AHoiK/IIfa0YCCYjf1hAriMIcbItX6XsTTgLYEcFUADBhBleV5qlhUHCx2gamtcURDiH6DtSPDl2XFHwoiiuGrIQfH4hQswd3WwMEHcEGg+pGekt2Ic8a9EwD/SHnPJubrf 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:(13230025)(376002)(396003)(136003)(346002)(39860400002)(366004)(451199018)(2906002)(38100700002)(36756003)(83380400001)(54906003)(316002)(6666004)(186003)(6506007)(26005)(6486002)(8676002)(478600001)(6512007)(66556008)(4326008)(921005)(8936002)(41300700001)(7416002)(5660300002)(86362001)(1076003)(66476007)(66946007)(2616005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xYFPeBEhHsTfzxZB1uFDwK3cRt/NJZY8typZvlBh7/bqAbGob4Ft146vVls/3d88gBNOlleGfe5OUlFT419OiRpOuf+WHTGQYKIcwWz272pomBIujgwxa4620bFSfb2Hm+7GfLrT4wdRNogdQqzdxflBbGLquOQ0rmYIylRGXEaj7TWkeDdlsYIgygJyGMhy1AGTquWKvtTj1xhg4++MBIYEdRCWDd+CFQKEpNTb6ghIDsc9jpnXatMAGd7E+PSnM3JilJ6rTNh4/m5VjsTex6uHxhiTVVuNQ2npuOXJUd+DCfZc1N8P19Y3mZij1RfuNrL3hvxWzhTq422rKAVU9kkP7svg53hDj2jIvS6I0d8axZD74S0iHLvYDvi78RqAoTyatOCFsjl74uNAdsyk5hCafIwRTa7hTZpCdA4PSMNVCEYfWhDi3z0uWcDfR2SngvdSdYgVX9R/hkmV+TvZX+/now2P24gEZSc275SrCcnbPYC9oRuFozMCNwHPT4dCpYrS6RkkdNWp3uwShxu/hC1HAZPnK6TeDVk2qwv3h+u73ExKkP/lyuckaWK6L/yaH32+mOy4bILgPe0MMTnjRa6XIhQ6SHaoGUj5D5fLvuHWjsmUdiPljeOie0R6BVjPrFBDOwOQUY474crOECPvw0SqGTem8Pja0nm/7pWyWV/9c5mbmIZ3wB7E2XI6iLViqMzk20ygIp+B/ejKBTQD/jrF+zYKoxuLru9idmg1Y5KxgepLEzg1jEneT8hUGWb+YX/1qyQaqTYfd6Lf8GqC1k/FGU7vI8bLrf3ulIP66+ifA7zWXOZ+6gq2biOUCPAwHWSgKLbwnWLgKvgAkgcssX0LkbfejHZLHR1kLXFphugStS6K/dNGX9v4wf0W3IaLK7vZEMdMUQIzawF1H+ypR89b/8pd7Vu/rF7iFfpWkphtGjOeL9HUtGcwzzqFmiaezz0OVZVKlMeYlzIYfpC55OAt+JHUjsGxYnyWlDLG/lHVMBAzV9guAZJTn2byYL7Rqq/LJSMmA/r7FI0BmuImt4ZSW4pLBQi7eJ/vikl/wQINFhTkbFknatuPHinGDNBbgfXAcrk3wcb792OGQR4pkXj8eCVthXQAUDl3ebrR+mvvf5b+ohXzH8T8Y4aWrsE/g01LC2XPnHng0xY4tS9mKgypmo8CijpPZZp0vGHx8fHxGwWLt72i1S1xoheT2Cedsk+UygfkMg4KDbKytxdeCPqNAfUyL5BxAFGhISSravQBhA6SIjUZymOW+TYjr/WAsSf5XhSFqjZgIXcloZ5vP6TQgQgtWquNqd6AgqLG4e2RDsK/XFk1KtL1y4OhW8TmJkVRWC6Jxx7sYcOR8P6M1vBpetMusrCeClcrf3DyoqiWuzOn65ATyNdSG31z6Z2ZykF4Qquh2lUknq56lsVSGYCtSQs/d4BgiNikli7t/M0uLV9amfEfKvQXRmMQ/Q8PfFoZZSxrtdkfbnZAv2BRtxiM+fPCXkIWJ3DXUOyg7IsTdZw5ra8m0T6zf5C/AdEqNDEVUxfiXCoO2yTL6SVJvfSVsEuQE8GztIpcn+Wxp4ivk7dCnr7wOAHrTImbKAQWpLtUpKpmaP2JXh1ysjkCbA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: n+S8VVckaX8JywLItpLwuuu4ykMauADpEKCfUne6ru3XXDxh6O81h68Dhgc4O7z72c6D0BkiMeQJuriRYRd61ypkqZ1P4jrRYBi56rTweo4Ge/ssKhaWj4zjXNvUDNKPB2Fvg+fuFeAb6LRcSlrwdsjP8A8uDTYAE6hx7OEkm83fd8PnvQYykIw6PiVm5got1oCjm3s3Y8VNxqjF2Wpo3tB2fhAAhjsFyW8Escvudb5ixQGY5ZK+xne9EtW9ZU638HEchvitFfFsEoYGhwziU5Jxje7txwPXWqoj27uiJqwT52XEw3u5Zsj664GqaP3kv/1RzC5oV6tR6WijnJdlkuFZkxHZBzWuHucMciNeNkh46/xPhHMPpmffM3AzdwUg9Yv0uJ3mvmgDmLhzhC4ReIqImnYraDCgAsHOd+2LVH1LkE2PGW5txjLYgLyV9r03BTIJu/SzApVRMWvkyI5OCYxyzY+9XtZ8TY/hubBU6pHtkWIowdVUrSOJMEW4qnb2nFHArsdxo6C9Fn15+SMSqzVJA0/6tus2r2MNoV6HhWsQ9qtiGSEcbAXCUHTPnrYDbYr2MjIChFRu3SXEDse5oUojvHCEHVPLAqFwz+/N8DAXTbVNDOOibHSqybdK+HeaOha7UOryUZhzWrxmqnwWqCROJRIKqKjw6yH9pqNmFPbqVkBo//7H9Aw79ChoeflXyziDSuY7Ouw6h+lCjmtWrTdrVziArE8uKEFC/QDbMi70BZO9fLbL9DrbQGKR/iqDvdkxsOmrE31j+rLye+nTWExRmyO78EkDakUrIotHAU0rinEmFRu1JehhCeCpt2mSBAhHwqq7etbGD4toh+dgpSSj2DjPKM5TLKPqP+cJtDVx7zCyzdWS6fox2p15prZ2JdyPmEij/cDJZrK6rGrHSeSjYqbpfu/4XtMkh69othrhNzIcDM3LCbygicV176sX5VBG1uD8N3Hy1OWgrSlRBAWPxX22jQtfF5q+gFeCCfnpBrd0UBmhuEWvAcuPtxOq9A6gANYWZWk72asZCdVhUEhviVGX1R9J9gFoOV8ifCk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 231f0840-8cc5-48e6-35f3-08db0574c572 X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2023 23:25:29.1404 (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: 9xmQ6ftIpB3wIasWsGnitQRmMvJTfzr4gPjk6F8gpibbOpybj7OOw3Q0NILdjgEQu1JSboG2IiDIW40Jkz/wHhTfCO/Y6alogi56ZvfoXwY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6643 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-02_14,2023-02-02_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302020207 X-Proofpoint-ORIG-GUID: I8NtYgJlzj251c2bGSMwR8SnTnA9KWEg X-Proofpoint-GUID: I8NtYgJlzj251c2bGSMwR8SnTnA9KWEg X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756763957096460548?= X-GMAIL-MSGID: =?utf-8?q?1756763957096460548?= 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 18e614591c24..ce6240a006cf 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) struct kernel_clone_args { u64 flags; diff --git a/kernel/fork.c b/kernel/fork.c index bb98b48bc35c..55c77de45271 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2287,6 +2287,9 @@ static __latent_entropy struct task_struct *copy_process( if (retval) goto bad_fork_cleanup_io; + if (args->worker_flags & USER_WORKER_SIG_IGN) + ignore_signals(p); + stackleak_task_init(p); if (pid != &init_struct_pid) { From patchwork Thu Feb 2 23:25:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 52210 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp533198wrn; Thu, 2 Feb 2023 15:33:03 -0800 (PST) X-Google-Smtp-Source: AK7set9wwfu05p+vbgUOt5NBIqAt8biicXa6wqV6zOaKRPVpN0IUopv60fD7wGAscNEzHJydvy/5 X-Received: by 2002:a17:906:3a8e:b0:878:7cf1:e370 with SMTP id y14-20020a1709063a8e00b008787cf1e370mr8572672ejd.15.1675380782870; Thu, 02 Feb 2023 15:33:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1675380782; cv=pass; d=google.com; s=arc-20160816; b=TUxnBGsqr1Crh2ETt6OwkFCDKrNBTSoc9/F11kpIsF71KA2VvoV5EIavQDFpcqp/gL L6Zv3JseCaY/cga+D8oVoz1QLN4vc3dsThmPffPt4eGAi7G8Ty1IkTI8+n44uuM0Z/Be NNYTwJ16GxHVWLFbW+1nLKbhatEwSFfeH8sz/S66y7vIwXPv6a9z5t2I5EglFsYWBTwa e2yYlQXBUJZMWT9Jy+oIDn/JS4VXF0DLzI/LAbXP72GD4yzmRGmHwzwSCbvCVhNKr0Mc z7FdOdt8AJISgPAcgaFKCact0zLTrHFo1C2JZ2A8HvYqO6IUn3d1KMYberyTaEjBq91g uBzQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=/IMIKf/zhloX496mHLKG4jtUZBOTiObn8MpfjmHwPfQ=; b=qBeqG3WydTnwVNfkLu/WgQzoVbpL87V67uFrAXH3TAs2ArIjHGM3oJc3LLqLYHz+lI 0tu7qITLxKa09PFYXM3DDo3gzDQQTHQtu4R404qZMp9Vz6K/VtwLarvA4N3AUtamEuYh wZYs3HjBJP9TCAJ/1sKqbxAl40j14xoTjeoyRhHZ3BNH++ZXarjGwMy2zEGOmI8+JqVj Kmrprr4YHfpZhJZAlrtUqV4/irbaQ5HQsRDWaKPoc+l6/u5RL6kz5vU5oegtbrDj/lfh INAjDE49FMaWQRxy/+xfOGVNhCnuMn/O2vhhxvBrn3X8RdVBP2MMlLxF8UKSTrTuDG2I u5tQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=C2owgRbY; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Qzt6CX8s; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 18-20020a170906001200b00864aa239277si1191715eja.896.2023.02.02.15.32.38; Thu, 02 Feb 2023 15:33:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=C2owgRbY; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Qzt6CX8s; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233216AbjBBX0K (ORCPT + 99 others); Thu, 2 Feb 2023 18:26:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44840 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233171AbjBBXZq (ORCPT ); Thu, 2 Feb 2023 18:25:46 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3DA0C6F232 for ; Thu, 2 Feb 2023 15:25:44 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 312IDr6M023684; Thu, 2 Feb 2023 23:25:33 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-2022-7-12; bh=/IMIKf/zhloX496mHLKG4jtUZBOTiObn8MpfjmHwPfQ=; b=C2owgRbY/dgXbQytKCfwY2YjBKw/AEv8FgjmSZtnykxiwGOMb36OtZJg1QO4FLuHY4v7 YHUt0qMJAmz3C+nvJCMXsfUhtJ99fJISGb6W6pKPNT1lN3a55ER3qSu+QaKszTyAlTix BaD5CFQekUAN2CKAoUYgK6YuiaYBrsY2NV0h+ipGSiwRQ5qCII8JjIa+hvgfzavwu6Td 6KlG9TqpqjaLYjQiLIEZu7CY3K/uhzIysUb05VQo87Kl3ncrGCueY3N3JqmXaAb0Gg+R OF0voIAmckg9LkOGwWi4zDottJcobRFqCLXaOx8yGoksGygyhLJprUS/DVUzDvdJOtBl RA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nfq28v5w0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:33 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 312LJZvA030056; Thu, 2 Feb 2023 23:25:33 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3nct59hc8d-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XAgLNrG/mriX5DHvutBJkF181J+RZoCPaRz264bo2xR3gQK9r8KhrMfv18euDuPwYTgyMiaVx/Xo84yUiL5tC499yfY9fcI70CnJZlmeXhoJjTmoimeYuufoPQHF5MJaN2e3IrMRHDJOavwoLrZW1qy6MO1lhk7jrtrr5YOCIhcGzxghmQNrM6SQ3F3PRb94n7oJL2JSi0rJ1Ob1fWZZ9H2X9apR/ipGA1lvCieizIKMCS7JA/7pEHT/+65gz/tukz/HjHdu5zxMtTwOfzySs42A8HA53dm2VSy/ax4cxf2SFjGUOtdhGuH9AB21m4lCliCN1YiQwfWl9xZ6oum+xA== 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=/IMIKf/zhloX496mHLKG4jtUZBOTiObn8MpfjmHwPfQ=; b=lHJyVUzDfRZHGEQTfmambaxvHx3Bx+MCpJqUtqH1zFKWcp/Wk+OdL25EHxAgUvB7V5bPlgNUukuDRHJwy9N+jk1J0Ci9ZQPczkysQnIF0f0eBpyebSC4JZboMzU7YgXuy7jC9zlsLDZzsrcBnsUECwqjUVabFJcEeZ82Trq4NmsMFOC9Pko98yQcR5G31wQLCOD/Jd9Xrw6yiBVwwL410VK+BpmTUX6lm+cDBY4oPkmBAH/y3qTKaAfNxjGH9b4UCl0nk4b8zJJ+v9gVd7KK4G+vylHaXvfS/G3qzm9qv1+nDSddcal7zn00Bz5e5g7hHazRywejzzaKAIvQGjYKBQ== 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=/IMIKf/zhloX496mHLKG4jtUZBOTiObn8MpfjmHwPfQ=; b=Qzt6CX8sx4bD3MijN+Q0Jf4tOQM1klqY9UBmn8ghH2T2ZBpkAypd2lmKzyDyhkTk3gvDG/pTY4NXwe2jieRNoKWixlMQ65de4wSv0zpYJHXlP8H8VhR6l0wLPb8vzJKQG8LOD6Yn9UpPajX13NbKdcvAZgYXzXAqFPCBtr7x4YA= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by SN7PR10MB6643.namprd10.prod.outlook.com (2603:10b6:806:2ae::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.22; Thu, 2 Feb 2023 23:25:31 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f%5]) with mapi id 15.20.6086.008; Thu, 2 Feb 2023 23:25:31 +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, torvalds@linux-foundation.org, konrad.wilk@oracle.com, linux-kernel@vger.kernel.org Cc: Mike Christie Subject: [PATCH v11 5/8] fork: allow kernel code to call copy_process Date: Thu, 2 Feb 2023 17:25:14 -0600 Message-Id: <20230202232517.8695-6-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202232517.8695-1-michael.christie@oracle.com> References: <20230202232517.8695-1-michael.christie@oracle.com> X-ClientProxiedBy: CH2PR19CA0001.namprd19.prod.outlook.com (2603:10b6:610:4d::11) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR10MB1466:EE_|SN7PR10MB6643:EE_ X-MS-Office365-Filtering-Correlation-Id: 7d034da1-be06-469f-d339-08db0574c699 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pkXJm1Vt665lyDBaXI0CH7EB4UvC0bzW/N+QfqDDOnI4sirx4I5+EZVq5tqVxUVi7lsWXHelBhyJBW+R33MFAQ0mGJuBZXai7UGsq3zJALCMS3GtGYRGuarEz31kbqdQZ0Ka4VwMVLyQj8NBn9B812770oCJbp7ZYkgXFaUtVnDczye3iL47X+v5HKafGmox7Ud+dHX1RADmkwye1nAVgTZAG2NPc15wTHOs/6v/SoqbtZ0KkQi5rTNAE7d1C9UnXpe6ywYyNxhhWgD93Nr3V6OJFIcTn92hLZsdWriiiWl+gVE1hJo+yE48LgvsPFWiRLdn9iW0+2WXlzsJ4nMqYPV30GslJ3k5Bd1/9Zy2iaJS/+eOFx0+4jZgPKhvFr2Gc6w8tJq/NQFNrJcya2oAKRgNLuRdDHBsxGgDnSkylPHcQrC6pdcG3Wal9xz6hjbWEU1Q2+mARajiMhKB5wadG9D8BbiQfWz2QDAEWMlQBwVVwCYkrUAVvdxyfqJxpl9wfFRdU6bMMVlP06svFdxzc/yXjIaiCjqZPY90RA5vAjpcgjFY3jIsU4zcMpI4M7bzIXAVktd8SrS1C8MFmOgCepL/w5C7d4TAjYYSKKs/DsOhmjV/5wj3eo0ew+2lSgylcobU64SvHVZuNVWIdSTabUpz4WHmWt4qhXd90miMLoVh3g/h2YafIlLwybexcpeq 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:(13230025)(376002)(396003)(136003)(346002)(39860400002)(366004)(451199018)(2906002)(38100700002)(36756003)(83380400001)(316002)(6666004)(107886003)(186003)(6506007)(26005)(6486002)(8676002)(478600001)(6512007)(66556008)(4326008)(921005)(8936002)(41300700001)(7416002)(5660300002)(86362001)(1076003)(66476007)(66946007)(2616005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Eg2P6bqjmRmWGaSvr8m8o/fMJ+W85Q7pRosRUp9FSQXSU/Ag9SA+/yie4c1Uy8fvPF210CeGs75yitNyTV7rMLYyE6BU4kfYMAbbpGjL/WKOYO/rLciGuX2sxUP9J9xnOl15Gk5wg9DwaHP4FMT/s9cZ1JsID1NWe3rqfyg+caZm1GPLr19SaA13jDlJkP4dqCpvT+U4h5AvDiJwr7+ZM1i70oFgsQAeqXYVU/nvvZT5bXeD50/yeJKZIhpboCOfdms+wXm00x44vgwkPthmLHY47TdzBAmnsZ4HtfJECYONaFKN/aL3ItkW0J02nIHylrfRlztFcxkc7pWWWEEXjP6ZpSUp8Jw4PxgaoPM4iJhRBfmOUizVkqdgFwcNp97CCchpcIeYvJhhMpwJEslqYgsEZgWsVO6JuQmO0zATnmMR4ego+zJE8VMbSLMomgjsrDie8z3M0VY3uXDuVx2HeoIJ6uUc1kPBYdr3ws+dNfrFYeXLlyAbB4GD15EprBdKg3GlSIoj8BJX0toSy8t9J+YvUVEBcASEYNgrvG2A9CgmDHyl8ooxCkDDsMTd5owPH8onSDo4EwFypSBxBKYMAakAy6Ef2hRiLMFcGb1ButN9vgyoYM2FqRfaFUOdfwj4bMPYcadspNbgrsGMKjk4zZ7kLFF9x8Fxif39eC9NE/j+IDJjce8OtNlyEp+qCbC0/4ySjnQ10x2Sn1X+2pmQW2MqNmZcNG3oSrLy27c+DnWrWcdQjIAao1Aqk8opn0n+LaTq06HzHLdfKAJTcMG/k0RO/WA2x0oiOZjqD3bkiSmC9f5IhLiJjxTLklrw1HtTCwjiXDdt4bGy/OoMzxnDxo6wSs0ivHox/kaRfF/djaUSucWUUcfqj8iUu1NoIJiagCiwQt0l2FesbG1wrNAWmU2bHBXDc8IC+vGasBIBlPrjAs3kb8S7vmwcgU+fRqMaL90OAXQeOSJPUK1jPes39vf18t1o/Sir+hmkxIotZz90WoSB9ohscOrvL19PiAoDonnsqj/KSMyyaDvp/5VRKyiOb5TuprFsG+kmfAlhbgMxW48XeVUJsiVYa5V3WtK8p6gS/CYpkZyzt19fpR4OiDWZxqW9On2W0/tT0jA+ICJkwCgZfC5g0btw4CDUz/ibA7G1raY2y46OhnHDPddjzhe2ogqxfp5kUnsto+27/Q1GGNiN8ACJkb7VTxF3mPn+wgs7xutbJ7OvGjCYFh3axVtE8MQkyOYghx0nCoJKajbfjwDmlqUANMrpzZ/tBwCtmhGmWtwga4INHzYUR3PIAcb5gAlMJXZDt3oTJyBqpDeThxHeVg6FjO575SF6iZRVziIf8Ik9XUisnJ1voBc5rJWS4hItIXyB60hvhrUGZ6+H4Czu60EZYU4sR/asF39n1IzAguEr8caikD99lxcRt5bpunN1uRLUN44AfsneSWm1G7NBXF3yEJqnsykgf1c5uPPuluoDr6hfsRlVP8ANc88zxUjOOt83tLL9gqfpXew/EydpEIDYnmF73c6c7NQKV/ABEEd2pw5LivkYj0eukMKiYP1jzh5t8Nmm4Q0hyD/6N1RWfsCEa9zx9ryATY5lAT3cym+2GwKK44y3a8rumw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: /faJr23uKovUeKDC4eWJT8DE8Ewndk9zNAlCh6JPHuGT+Sam5bf0zCYysKr9yhHN2La4pLwyOHvvXHIBafHmpP/e+75FYNzQyWnAzW2YNk8dNBcKB5v5kzDA4qIj8CYQHzw8Ci4MwwPxhMKffYRBb4VI3TmU7CWwUER166xu1iOsBPKO5Wcr39qWkgvkPfYoFqxGN/IgMFCq7j5WP6fhJ/G58ZkTfnkhDnkAQAceB5nn5ERcoo+BEpNgMd5wzbtcoGYE8fO4ltN/ZviFm/twqsbdDzlmvPGeMKyS7kYRqC0dnLX4Ez8LUCtXqbaevP3Bt587gHVJQ/FG0W2TUxOTwwLy5wv5GmgxPVHOeWfW05b5F3Y0lYj/S16WZRGGO8Fu1HdpGP+jaBEF1mEGRHoIcvslXxbDQsKzAu/DsaalyhwoGpYGf6bFl0RPytJGjSbAqhUClJAnl0hqC403/rbUsPARPWh/Fm7IcWSNWOnnTzP91RNXFeooFXCiPy1bMXN8w+nzkY6+ELsOGoDEdzt1zc6bo9pfkn01egoAz16P4Xx/CW+sMQHw2h2Ln0KPH9gNQoSY115sTie6b+exe8j7EPbOGZwM9/RNtCPcVS/W0HExlZtCwbQ8+tAccPkZ6r1lE192RobT59hwcNjE8Ci1cxRhmlXEmqgXW2pmJLkORUq232heCtQOx+oRaxe3jMeeDVSqoL+wR+nyA1XPtZ7L13YZvF8PRoRnq298Bz6GehCCEZz4jGSg6ZwtZOJ2GZ9Gc9zhZEXVcYuHg5VTWLHXa5YAAcrMJDIdMr57WJ84wC9aAuqs6FvI8B/2bUJD+KIIzbB7TxXvu+Kh2CKxkvZnC/b6kF37bRFbtjXrDw605fum9UAz+aFHJ2NOq8RjR7uncbcefI0cxyrTau75q+wQ8BGBxw3KduozrumMhrBcX/tK0FDODgRrQAnU0Z9NStIC/1SNWt0LYTFRsISYDVV4yFoX2a0nDSrncDndyGHeRj0mNID2sffqvVhgudASrhRxJU5+GvzMq20JUOD6FxbXtw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d034da1-be06-469f-d339-08db0574c699 X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2023 23:25:31.0934 (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: +uOhydBg374Iy0QHL6caLo4vhpdjsIDCAXW0KhW5qSd66U/SjbqgNh3b45Lr6PVBxbagj7lkeXY/Bn9uvVSlr2Z3xDFVv5kVeTxq5U7UaUs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6643 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-02_14,2023-02-02_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302020207 X-Proofpoint-GUID: QrRq2FfXAoWO5pXDZ44IDfC5wEbc0ZvM X-Proofpoint-ORIG-GUID: QrRq2FfXAoWO5pXDZ44IDfC5wEbc0ZvM X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756764080017030055?= X-GMAIL-MSGID: =?utf-8?q?1756764080017030055?= 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 ce6240a006cf..b0e43a1fd21d 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -94,6 +94,8 @@ extern void exit_files(struct task_struct *); extern void exit_itimers(struct task_struct *); 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 node); struct task_struct *fork_idle(int); extern pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); diff --git a/kernel/fork.c b/kernel/fork.c index 55c77de45271..93e545b08205 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2013,7 +2013,7 @@ static void rv_task_fork(struct task_struct *p) * 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, From patchwork Thu Feb 2 23:25:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 52209 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp532820wrn; Thu, 2 Feb 2023 15:32:03 -0800 (PST) X-Google-Smtp-Source: AK7set9V/M7zCoyoFSxH4TjY6qjYnegT2fttlU74x2oastFPLLw5o7RWQiHGVpAtlip07udeGPgG X-Received: by 2002:a17:906:b74e:b0:87c:539c:73b9 with SMTP id fx14-20020a170906b74e00b0087c539c73b9mr7846828ejb.43.1675380723705; Thu, 02 Feb 2023 15:32:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1675380723; cv=pass; d=google.com; s=arc-20160816; b=SPqpRANljhWgc5ChBoUkHPmNCaJOgQxUhZTQPakmVOB83kYkyToVaGA1ivP23ie7bV 9S2bYUEy2DDZl0BzmWcHSoLkKQ5vgbSJ1ZO7PfgBkPtiadB8EIrdykkenkL/sATgW6VU TKDt4matuSxYhC764KhnVSngChIsq8mZ6lwC4U1CUt7T3JWJF1H4PBt6S0YEePYIBtKm Q/kEG4gdk482OhiocWdgCATZm1iup25Q+QYZzn1BX99chrydma7srjSek15RCVPY6w1E 2RKm8KXtMyXSJhs6pcWT4/2bvvyCdgXp6zPeQAoVmnrVIzkXf2uhOvwtm4ssLO+dKC2o TIMw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=pTGOE28ZLu0dY7Xtp2QMA+hWdKvuK4lBBbVsaSNu7sQ=; b=VxGMqQJfoX/JQocbImU7qhfbSS3AzDjzaldvc6xkIFBixU1EYWFLMClFKW87ky0hGh ORWfAVIEj/I9UpXhHLA1lQuEho3EHoNGhFH88HHnOm7JsAJeSyPZL5NtZwlePQxGakFj KDNBoOGlPy4eYI12xzZBavVlD6NuCirKHEC+XeCeDX2OG9cpGUseaFJLfWt+I/oO1R06 MJZIFQCoSf1oyTKpZPAcYBpJkNr2YznUHBRY/F/SvgTmR8u08Sk1QyjEq53XvsSZxznc dskzvD+Pdp18lb6uVRY2fTxFlui1HcrmKZsi4/EO3Nw2JYI9odY1UN5bMKBWjF6QhKri a+pg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=xGZGO7cF; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Gy8uxu9u; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id wl17-20020a170907311100b00878802d136esi1015474ejb.559.2023.02.02.15.31.40; Thu, 02 Feb 2023 15:32:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=xGZGO7cF; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Gy8uxu9u; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232474AbjBBX0H (ORCPT + 99 others); Thu, 2 Feb 2023 18:26:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44804 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232724AbjBBXZq (ORCPT ); Thu, 2 Feb 2023 18:25:46 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D5B99222D4 for ; Thu, 2 Feb 2023 15:25:45 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 312IDrIf001865; Thu, 2 Feb 2023 23:25:37 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-2022-7-12; bh=pTGOE28ZLu0dY7Xtp2QMA+hWdKvuK4lBBbVsaSNu7sQ=; b=xGZGO7cFoSXZhFyRe5vLx7Z1AFMnHa25E9hRCfO4/Jzy5lc4RTpMTwdPQKdavwjsGUi/ tkTfL9qA61qxq3OeL3hXX0NvEJss7MG6gxl/jowoEyi2yGwYEj+jfbTc+1KMYJGWoGvr 2atoVzHaAKQWIzepJ0xWgb+q8yHnHzrAwOMnmdPy2W2Sdmispisk7v/I4AALjaoR4kPv Zcgcd93gFJRzRbiPV5vnodbBOY1oROH967HYkict+TZ4y1oSdQr/jsFLikt1aIOVMKIA Q13lJ8Pg+Ew37SenJTxJOez/Kd45DjmtPi7RiKCdjySwoWvdyHdPM4a6cuVgIj1iWlnn Rw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nfk64cp76-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:37 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 312LHDgV034320; Thu, 2 Feb 2023 23:25:35 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3nct5gbb0x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aj3b4730hgz8sztqRVVROYMQm8/UCA5wgWwv1ZwmCPJl92iXiz9Wp04RTIV/dEDETTZg2YXG7EapbM12MO7jTAITY5TR59kdod6a3Cl2EhhtPwEd+tsk5gQSb6AVFTpdvrFzwwgL5jw65TNoj+er8UY268tCCgFeZexHwwV0jU+DjCnu0lGsiYBuqd8cnX8yM96MPAX9zCU+tSb399uZ5HZWYWwVr2Yk/FX84+htg2+dOuZ/WQodOy9mFYmJ8vnq+/+y2zE0hcEO6e45YQKFUsp5BHgVUjgDpPjKrwayWiIMSdWRLvKfqjEtrilBaXdQrvg51QqUAlVeEM6YOVr+qQ== 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=pTGOE28ZLu0dY7Xtp2QMA+hWdKvuK4lBBbVsaSNu7sQ=; b=CgDtvuOIx5iTKBtYWCUqudy41MqdnE6K/KMmbA9gl/kImepC8RMh1X8S1fmKZd7y+FdtS4OSruOuhvkMwQwPZ3wGmOiuRNQtvy2WOZIRd81l0kc8TWtdbwATgC/ygeudKJMHYM299yoNoxFo1yErKLCJcgv6aPV1D09XtOq4ikJRD1NpevUL7ukJVvV1JuuLyKvsLJsPjUc2OQVpYuVeFFPrfZqqPHFqC0EKbNc4mCVw7LAV7BYUSl3BgP6H3aJZFzJXNqlsRAIGzT4e+edtUi/FLQ8g6ksUaYwv9hWuF/71IynEA6B9VazlNdGUg5v/yYoX/VtsI7r+5nUrMC888Q== 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=pTGOE28ZLu0dY7Xtp2QMA+hWdKvuK4lBBbVsaSNu7sQ=; b=Gy8uxu9uU/e2tZk5oWsKBK3vGR33naOyTvPWHQYUSLqIiuwoSE58ln2og9GnULKXN/julqC8UCr4nXQWePq6tg+u9H48v7e7+2oxvmbmGR96uQb+PEsVmEU9F7gaxhe7uAafiWLi8IDFai2ZtzjLxOICqag3xcnKtuB9fp/KYAw= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by SN7PR10MB6643.namprd10.prod.outlook.com (2603:10b6:806:2ae::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.22; Thu, 2 Feb 2023 23:25:33 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f%5]) with mapi id 15.20.6086.008; Thu, 2 Feb 2023 23:25:32 +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, torvalds@linux-foundation.org, konrad.wilk@oracle.com, linux-kernel@vger.kernel.org Cc: Mike Christie Subject: [PATCH v11 6/8] vhost_task: Allow vhost layer to use copy_process Date: Thu, 2 Feb 2023 17:25:15 -0600 Message-Id: <20230202232517.8695-7-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202232517.8695-1-michael.christie@oracle.com> References: <20230202232517.8695-1-michael.christie@oracle.com> X-ClientProxiedBy: CH2PR19CA0028.namprd19.prod.outlook.com (2603:10b6:610:4d::38) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR10MB1466:EE_|SN7PR10MB6643:EE_ X-MS-Office365-Filtering-Correlation-Id: ce46ccdd-b912-46bf-103e-08db0574c7a0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Uu1v2tklhMBvvT7qT0eCHiBneIja+zG16JsiY4VJQ15hZbTjuANIVG5fUSZBqG/Le6Spe67XgC7eDVESkyyDZu5t8yqc7Pyoek+mOKsTuGTKm8BDOlnZAbDW9xNK1kuo6NbZeWyKPN4d8SB43LPnskEFxweTrh2GFgrPJc0QOUTxt3hWn0n+GYkYEsP22W3tMVLpKKnfMdRrdOu9xxClECf/73bbd7xHDCHNRuuarAVoq7uTFcCrNRZhhkND7mDZBqhKxBAowvTcqfT2dxqPttVCTmOeZcsRMuTpUSbgvnZebI1TrlvKczcW6b28fkAouygvzxJvJNSPuSyO37qJIRwbnEcW7JbGrlUd1RSUQGl5SmzCYzyQ3+uW4o4bS3T0+inQ5A1za1Oo7jh4I91FhUtsDrpDCo29z8qqCre2D8D8ZE/oGNiWcNdfUpVYO+8VE9/xSr6VgHSaFIPNnhD2e+s9iBzY2mGCHXKML4N+/BcARaWlZZtjElYkCvuKTqxlm17hFds6zZ2hK2zKug1bhJfnk3iU9BRU1B8GFiyAZtagEEmX3Uo0HxGH3zPAiHHRjz26mj6xPckP52WcX/nyZVjrOeIneOV+SQXJPSat4t9Ab5AlzVUZZ9Vv/EIkMwv7Y0WUrEMQgsos//FJt9Q7+YUxNDNYS2CFGiM+7cxKYrH7JczzuZjVJ2B1+4K9wNCW 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:(13230025)(376002)(396003)(136003)(346002)(39860400002)(366004)(451199018)(2906002)(38100700002)(36756003)(83380400001)(316002)(6666004)(107886003)(186003)(6506007)(26005)(6486002)(8676002)(478600001)(6512007)(66556008)(4326008)(921005)(8936002)(41300700001)(7416002)(5660300002)(86362001)(1076003)(66476007)(66946007)(2616005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UlTaSGrfMWfOzYjEyBwOMbznnU+50LVoCrcUbSV77drkBWziMTq1d3+Abot5YZatVNLbWUVomD+DV50EJ+xCS+VWVSSvbRy8mmG9OWRR/FH6FrXg87v9+XnZwDoWiEYjGKZSPK/A9s3Y2sxXdYAdNoO8xEVzsiXiUoBIzNVlcmTq5oPX5Gbf75LcxUnCARy1zTLkk+bU2ho2p/rUtRweHxcaTdKIQZqUH4Ngp/XUTE5D3GxN6cUWBXDREj3QLH4N2QsgGNJhTGXMGViqPsY8VKWD1pICFPqBD4VJ1xOkKXmiudquokkh+GY2yFja2gOmQBxw7WrVVAcNq5bj5RTbS1KrXzc+OfUdRJcIm3I3bM/AKbFAl1wQQKEVkI3IHiCwHDesrp2YM3ESnU9+PuGWOOT0Oge5c8vyiAFNKGN2yYWmx5tbb1aqBb5B6ConlfvkIfbF7N13nFryly12IzUu/TF1mxceeDwPcU7wsEPp+CsZdrnCMwtNhI5bQCgtDj4BtyWNQ4v2FAM5Ln7ktY3QWJwcJApV4edCBvXOaDA+9DupJOIB2Glm8QIvVs1QL0aiyMHOJLzZsqpuTVWPKow3914kt2wxdrj9asMAH1O0zNxrP+rcCgO4WaQOpNi+Mqzfqxifo8Pip2viVGWAGV3GPKoN70dHgb4eITwsvewmtjxHysj1AXVqUv4rF8OABUEKONWzkSmAJ1C2Utcmn+aizWC7//FjA/U5WSaWD7A7+qd/hXPlKYWruP3KzMpsOteSPEE5AYJJpNmnVhl9cZM+Cfg26oNQsoR77StASJ/VVorIt4p6wGIS+Ep6Qc0NKUJRzqIIFLtS+RKJ0c5Ml/KJxA3Mr5JhZdsfCuPexgmfSaTBa2kOKE628lly463Yaw9JkBGhYmzcQ3w8RqbBuIoGUB23C1oWGdEVVG+L+tAdi1H5n0CvXgsR1nXBlPSTr9dyfCrPkyVmWrDYrsyHSTfc8EG/V980Jp5D3Qgxu8l+Wz6Fj4NqfDKO0bh+OdDrkGapAw8QYQP7lJXkGuAVFIShSBLcHWG6lI5MZxYv+/W7sQq0PSYa+Mc3MLgKZuOviAX0qHVdMN28gxQU51L5/XCNNXp0n3ZCh9VjsvGd+zZ7c42pP+LCKP0QPy+HtdZIV06dnRTiGISx3HQgmeLK4alQtvIPCQaV11W/O+bQegHmQ/Gxk215yGnJEOLJNgw2IYjD8uzczgHy/rz2f45cKhW1KIp30F8HcdCOm5Pg6JNI5gflAZsET2bzyYs4vy/KlCVnLwuntVefLCiNinfYgRioWUlK/l1koIge9Lu8KOG3b6yG63ooXf3nebwqvW1tYI+i/fnUV0KJ7mAGfB9R5DWTPRbJIYsdeQsw1M2o+mdqK+Ty/AuayA87mtjvWpHYGJ0KpBo1BV1JWqZziZw+s22WnAhMeoxmPYRfMpCg8y1vJuaCujc2Rz2q1FGbzYDvJJOb4ejOj8S6OSh8O/B8cT0x8JlONmdbJVZZ0ulSIAxlpNE+UqLGU5zNCRRBGCqCeb3cgNlinMkKlCjAmdyj4jERWqvzn7dOwXwQmst4QTGKzh8P2YfAu17VO6CJa/AUTRyOn0BVAMYZfQTyZ4DGQLHFtw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 58ECQN04zFkEg4PEkJRDW5Gh4FYhZlliR5d+36L53jTGI+iQ0TaFF6dg6w+03/Mf3PiucHFmhr3TLwZELjq8MHWxWTHNoT4u+NqtBee5jEZ2RlGBdAhTGnG0NCxsuXwEi2mCRLyZtS2bS4vMlP4cDKAAO/kX2pcyMly8IB8TR7ms0MUKRFRzcDpu3L8q6G356yrKTqczcoF3HIeXeaWW5dwJ0cQ7RJG30c3+4OmdncV9U+TSax4txCJcmj93WSRIH9O+ebzIW5oUu3AvWrtlunFwgQXNKFvXSDRQyXme1BPXLplZXOyR5sJpAB6kBoBDC+13MKleujVHWb8w0MhUhWfWgbPnrM4NHpl1OHuewj6cXvgLX8RzO1N0090NyYCmO73eAn0te6yTkfXacVAUby/UpUUb68rr5IO1f1CgVYkUgDqL35Xq8vLyD2KGIJuNgCEP0dRZprlic/i+pHZ4HnNl2LSsdJbwNVHOxZ2WEnmszJt321KI1bwQpViPalFCx2/RfX1k2J3wrO14kak70J+50uxbFcILygWpDUIp6qRcBykfsztpuTVo6H6PM2BFZrebTtprbXaY8u1FcBV028KIKNEvAtQU12o9dk1ztUmH3u98ONwNGJPaZCoXP0yTyM0kskYkL5iFHJPaxec6kIH91a4+GDj2oH4sLMGE1N7HgMspZxglhzOiODLk/2uHN7WOPnxrLMqaaJ/STlwS8b2EFU5czuNxGomsOt9kV26cTs95U73rcq6Wb0/g0R214iWK8tw5cgghc4HAsCooGtfRY+6jU4dr/LRpFuNDTEXqzfiQm1n7kIxAu4Tp7CC7u8CG0KLDWP9qEBOXjbHn4PRg9Ih0USDArfr20offle77a+/q99Qkq1owKjFqhmOuhili1/8MWQ7mH/AMOQCMNkZbpAXKK3wA7VB54dIlOqsBNKm2geXyE0+Hs4LDq7BCw15nbmvBB44VLMRHniXlN5zTWNCKWLIC74CyiVY+bxkYuSIAW8TTkwaDMNYV+H6oci8o4tk8IBGagU2umBEMtg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce46ccdd-b912-46bf-103e-08db0574c7a0 X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2023 23:25:32.8120 (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: B+Y3FhiRpTK/FcmYNNky6fi5tOOsv0qMKvtiPHD+lh3v2FVFQ+cqfH6T+k6OSclGeIOTNyXfG7qOjosAY2X+WggVN2/yLYbUul882ExMkS8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6643 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-02_14,2023-02-02_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 suspectscore=0 adultscore=0 mlxscore=0 phishscore=0 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302020207 X-Proofpoint-ORIG-GUID: OIlJ7ZTPSlTqrpPyao5rFgRqefqZcWIz X-Proofpoint-GUID: OIlJ7ZTPSlTqrpPyao5rFgRqefqZcWIz X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756764017525955284?= X-GMAIL-MSGID: =?utf-8?q?1756764017525955284?= 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 8a5c25c20d00..5f7a3b3af7aa 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -22125,7 +22125,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 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. +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_task.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 node); +__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 10ef068f598d..6fc72b3afbde 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -15,6 +15,7 @@ obj-y = fork.o exec_domain.o panic.o \ obj-$(CONFIG_USERMODE_DRIVER) += usermode_driver.o obj-$(CONFIG_MODULES) += kmod.o obj-$(CONFIG_MULTIUSER) += groups.o +obj-$(CONFIG_VHOST_TASK) += vhost_task.o 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 = data; + int ret; + + ret = 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 = 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 function + */ +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 node) +{ + struct kernel_clone_args args = { + .flags = CLONE_FS | CLONE_UNTRACED | CLONE_VM, + .exit_signal = 0, + .worker_flags = USER_WORKER | USER_WORKER_NO_FILES | + USER_WORKER_SIG_IGN, + .fn = vhost_task_fn, + }; + struct vhost_task *vtsk; + struct task_struct *tsk; + + vtsk = kzalloc(sizeof(*vtsk), GFP_KERNEL); + if (!vtsk) + return ERR_PTR(-ENOMEM); + init_completion(&vtsk->exited); + vtsk->data = arg; + vtsk->fn = fn; + + args.fn_arg = vtsk; + + tsk = copy_process(NULL, 0, node, &args); + if (IS_ERR(tsk)) { + kfree(vtsk); + return NULL; + } + + vtsk->task = 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); From patchwork Thu Feb 2 23:25:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 52213 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp533451wrn; Thu, 2 Feb 2023 15:33:45 -0800 (PST) X-Google-Smtp-Source: AK7set/gcDeaEipKLkzbwseEkwxU7O1FIK4wr+grvg60jROxUWhvqUtDnVBy1Ue2ascYfLy6LHZs X-Received: by 2002:aa7:d792:0:b0:48f:fcc9:665e with SMTP id s18-20020aa7d792000000b0048ffcc9665emr2699915edq.0.1675380825651; Thu, 02 Feb 2023 15:33:45 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1675380825; cv=pass; d=google.com; s=arc-20160816; b=wwyGmkC0bPGkQq+VpCdcInWTva08yqMRQyYgvHjFp5h5UjDruKQuWE9CC1ryYQDJEc CaMy7dUKiwbINBV3Gbxi6weunC6derzk3o4ATF0QTRaWtnZkhHd3P3lJByesuVYualWA B2DF981MFKq1J9F/OTl9hSgQVDlH4kL16DLlCRotK0wYEitrSVMaHUJqMTpkF4EK3Wna cA8dWzpdHyhmAUe+VPCsArPBnaxUlFWpII6dSZultiapTQY3htMgkPW7/TDRI3TOubnw oIdt6aRejGRvn0R5UsZ1Nc+EYgoo/ZPWqXmPxCbu2Fe0D9zLHj+1ep0+b15gngySz6Fc mLmQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=x6Zga3XJK4aTT+6LH8YBY2aVowOElE3o41viDVSZh1k=; b=GtdedyXRK+YnI049KTRkm1nle1q0ZZ1+vHvhH+m38N6rD7SeNYoinv4Ok1OBLulqJR QDlR0AVxzdJo9ZCnB+r6FbaxKGQguCsKZDwAzn/U3jx+HYDVbpijGA/uiQ0aiUq4ndRN J3rB99v7vrVcSsCR1f9fNRtIJNWEQC+gmPp3GZxoXVViVYELYksZfz5qHPIEQoJ42k+Q zAI7HavYb3y3JM0dWSjsooPjsUKAMZiuAhydV/BOZqYvBq84+0YMjqis1OFH0VtnJNaF 6PbBmaV480PlbLY+fbTNGwmtg1g1UiHwty/2v/etR3rtlGLUXD26uTQQta3qqF3DJVnP PvHg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=n59mDM79; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Q7MBY64O; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h13-20020a0564020e8d00b004a515610f03si810060eda.198.2023.02.02.15.33.21; Thu, 02 Feb 2023 15:33:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=n59mDM79; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Q7MBY64O; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231302AbjBBX2u (ORCPT + 99 others); Thu, 2 Feb 2023 18:28:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48378 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232360AbjBBX2q (ORCPT ); Thu, 2 Feb 2023 18:28:46 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3236993D1 for ; Thu, 2 Feb 2023 15:28:07 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 312IDtgK023725; Thu, 2 Feb 2023 23:25:38 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-2022-7-12; bh=x6Zga3XJK4aTT+6LH8YBY2aVowOElE3o41viDVSZh1k=; b=n59mDM79amZFoZIOfwEvm4+Ow817nd2Q0XNKt8Lkf5Iv/Swzm0Vy8icmIsbs43D8kXJk 1XOOQIdEckfWc9qzXiVdtE7gj37czMuTdzQq9kA8ua09Ns8q0iDlEgbB8BxruqHOWhu1 Hl09yVwbmwaHGeX6LsKsP4ET3olw5E6hRlnqRn9IHVS5bJM8lLCoByvhsYKcrG04osa9 3e+iBu7WxTAYG7e9x27YzQTWaCaMN7safMLe3jJ1c0dMhk+BjVDeah6fY8hXT+8Mfzie DiXCABE/Au4b/r+4sLRdGjm+LvDGX/yqv+BfqR8ypMf1uq5fI7IaKImErTkKX3ikXQvx Kg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nfq28v5w4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:38 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 312NEWcr040631; Thu, 2 Feb 2023 23:25:37 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2100.outbound.protection.outlook.com [104.47.55.100]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3nct59rd81-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BNvdA/Aj6Iat0VBkLdm2zDLfKDU2S/Ei+14ig6ZS0A6xb05At66b3ICB51SESKDMZJELonLsPF55t2Zeg2uVhUQabJ1Qa4CZDZsuipFDff1NPa61/rl2EbCcvmpxtag+4ZPvoWovolvsQAhexhuIEW8ycBL8n2z5mX/BM7IBaiNFon2gSTLBqbGWmEAKZHeGqD87c7StACSvpRlWD7WO1oTeFiih7eN77KPMWJrC0biBGKAEiEukCj49KSQMBBujTHuzpiTjh/z5iFXGRXihEOhaicHSJACIDRMtTFLFEHxTCs8Sli2FzVCBvT+T9ATbcG+maGJdujGBHgCXukMZiA== 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=x6Zga3XJK4aTT+6LH8YBY2aVowOElE3o41viDVSZh1k=; b=DxKZIxBM4fs7e3J+V3y1THBbd/lTPALrrM7xSVLMXsPOOChFPCjhtiHlWCfSjjMKf7u1tH9/vhcuFHd7wKNV8NVHN6mXQdzuWhZS7fPh+0hZevsdkidZCg0sA1l16WFIKcG8oL/tlmWLhtWzKWmVWxe5TaA/XYXAoVVVqSNGMR0g1B1DyEfIK7KLgFj9uasbB+znXI8PsTpRUUhlJT+I0Mun5AEtJQdqfhUh2uICn2kOMqkKak3QGBvJLs5EETKBS2lBIGk6Mcu/zLfwaLYirGE5O/aUssZjea3dyyYDgsrIXxdjrRi4kuapmASeGXy7R7sfIf/w9vtt0YtE7+Rg3w== 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=x6Zga3XJK4aTT+6LH8YBY2aVowOElE3o41viDVSZh1k=; b=Q7MBY64OsNIsYDUQDM1qFyHpHjSb7aQxrCxRAvrM0Bzy93V5cTjqVgcI0M5Jkt5dWhR5ZTGne50BWn9/ODC7UN09JCvtYIwJx/kcf9dcX274Vdot4JELEKC2gpvr2cIGirQTy8S/hIzq2sdNbYZjicTKlcUScW2pcUrFAOrLnhs= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by SN7PR10MB6643.namprd10.prod.outlook.com (2603:10b6:806:2ae::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.22; Thu, 2 Feb 2023 23:25:35 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f%5]) with mapi id 15.20.6086.008; Thu, 2 Feb 2023 23:25:34 +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, torvalds@linux-foundation.org, konrad.wilk@oracle.com, linux-kernel@vger.kernel.org Cc: Mike Christie , Christoph Hellwig Subject: [PATCH v11 7/8] vhost: move worker thread fields to new struct Date: Thu, 2 Feb 2023 17:25:16 -0600 Message-Id: <20230202232517.8695-8-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202232517.8695-1-michael.christie@oracle.com> References: <20230202232517.8695-1-michael.christie@oracle.com> X-ClientProxiedBy: CH2PR19CA0024.namprd19.prod.outlook.com (2603:10b6:610:4d::34) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR10MB1466:EE_|SN7PR10MB6643:EE_ X-MS-Office365-Filtering-Correlation-Id: 47d1a98d-a9b2-4f2f-ad7d-08db0574c8c7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3WTaMsHl3fcE6iM9C+exKrM3s2SXRC5kRmNlWvnIpMJCqoOYSG60O7LXu932/7e1keA7uBPZgIjirvkBizyIIpeP/5yEhG3gUQVL12zcpMENt82B9z7GucAWuqPlXcpIq1BKE5ync1bSD6Zh8bkkjRbojsLqv6iZaTuLaB0/NPrStjfB6iX1Du93Mfz0rZrl/sSCSFNhPWETddNsXIqtr8HJJpVhN/A5UAJpdVf9oj4ZF+DfkrXNR+W00RhTJ33C4hxMeDUkcj5vQa2TGO7GHIJ3djYMhZt1TvBYGTjID/ePcGIBU1EBqwFO9bhNaHyVAPZ3dRmYv101/DCTz0Vw3gA0ymjcAn1qegTLi81eFIbJLVMy73EjIlcDNNIMmAg9LrOltyAqa8jxG/lRDe0I4Z4M+eGDrDNdFtr3ogq+LZ3x216cmYxoMgI4Bzl6r3jzdOD8jxwbT8JBogpIVObxCpIPkoTlKKHb+A1uaTZ1clhaPG2ZrS1n2As74kCTRDFNNAQtYIeAAgUp8QC/LVGIpirmWJ8Y5kwV2GNA0VfaoUXWL4dUgkgbie/Vf+VTSqwLsK14CBqBr/kYbydNiUAsAT/1fmTTKGNtGs1HdDBqX8VutoBftXsUixZgELgVdapCLBcFA/NFTWdMvA8vOcVcHzw5n7dro20v+IM6BeCXHbkGD/sqfRmS1q3M3r/LQLrx 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:(13230025)(376002)(396003)(136003)(346002)(39860400002)(366004)(451199018)(2906002)(38100700002)(36756003)(83380400001)(54906003)(316002)(6666004)(186003)(6506007)(26005)(6486002)(8676002)(478600001)(6512007)(66556008)(4326008)(921005)(8936002)(41300700001)(7416002)(5660300002)(86362001)(1076003)(66476007)(66946007)(2616005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: yR0oc5pQk+AamK+N3bYol/BPKdCwHGJcbqTo2n95j7QRblL0pLsPJxFGAS75u/Uo9oeE3SEM3J/zavyKGge0V/9UH69MnrVv/BPd744Qh/B44VG7cOKu0V6tdASQeA+vLjW8f8xyr/mUzW1ENX78aJLJL6Z4wWwxWRHr6kiFE6j88DaXd8laiP07wxcDZoy5a/2D/N8qDrqciT7x4A6UK0Rr+mwa9zIjhA9tdIaIF7U/HZlqDw9SW12TpHK0kFRmDh32VCZkBdbBdEHNeStOCl/W98rRe5BDSuDP/v0QwjLeZIT4+Tw1atIG0FpWg5HKq1+GSb+BbCFP2TlGzsiZK4H+55agskA8SotDdTC+CpMWMl6TIj1c2DoG2dU4XJTz9GZ7FTgakVVPRanQV+A4fWvF4Td9bA2QPK7sDUjRTR2JzaPBWCQGJN3gbLnyHzcCPPm+E2N3+hurSFxSkW6vN7GIyk04z0VEZydoRNCyoH0uQNFcW75nKW1qzUYz3HfLH0X6EBNwyrrlc1zKmPmrMyMs1Xxxa2gGLLZaQuyUb19Os/37aNfSujDYABgiNb7oefftBdRdPQyfU5wgjHJJYgBKN0w8IZGjn20CnnYScb+c8KJM/U6P2MENAvVxGSGrQz3yKItOdBFIWbHMZsOCHAXaf7baNbsNzWdWKTdiFT0p+T8TRaR9DcGtOlMnzsDUZlbDBIUtcG4QGcIyONjs0HRVwT4WHliut0bY/Cgq+dtZUjLj/mSrldScoh1nHEBR7Anjgy+C75Y85D9BJY15vfdwZmpP8crLSShQGcgbOZvnH4ewaIAGBJkuw7HOdphei2IA6T9+93gT670vzM8+t+ebHr9a8TcKTlICpST6JIbupW6c4CcWFM4U2Hxbul8smSa6ITfGgGKtPppr7d31iBDcUWpBQvx3sE59E2ALRiHm0mg2jMAe/8xPqSL8kamgczERs0SmAK9cumXakuZq29DuWcdO0EjhHY5S5o6rosYVpsIkhkKM28nqQEO8pScLR0tZYvgg4aozXNRTtIAqbUfuwWo9x9ZRgB61y/czXl00KEXsMrvCz0vSkKcNuvurSc0xj1IDmRSGC+DBiRL/UfCpRRWrCkaMDeQKUqqE60KrlpP6ZWTjFrfTqGpu/Bhg80apiO6Cri0Ga6/BBbjpk/O3Zot4SxaOBQygcxSyL5qdqVts/2DZBX/1GkNWxjn9uzYzWwNiAm+kBq1PNgN7oCi6NmF3F371EihFlqxvI6l4WHUo/AXpYjWGE61fjYNKdM/hGUE3C2lmB7MDJuy1B37bEzNuKj+VgHAcuCZs6PNRXFYOjL9qiP5bKKDXCTmEGMqAr8RnF96AY9R+aTQXF9ktwKPtEDK30ewP7qnAlp4GiP+yGfFWIZDtMTYr8K4UL36F2Y63q0NkTTNz9rTwAAroEUiQqQ2jvvLUdWWLyjNsztvsPqk91jpYp74MrDwxMvlTPvZInrS/jyVFUwiTAwoxR5m3CWInv5aB7/YG1uQTliuh3x0++SWeioOQMAxL5z4ewwfhqmBHxygCGP2oXeu5l1vhsrtNh/9CDO0Jtj9InBG4/2kvRJ6XwqozsvqC1dymw2DvNfF/VBtQqiUKkg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Kn/ZXC1y1VHwyjodRsmWPHY6Nd9jx9rEqNgaeM6eyprCHcVrhzlp+v4+x4zIJsaOcz8OFEAQAuBW+mb11FPCtvqW+6rCzHLmyV7wdAfECSS71bRsm6DmE1U9itKB61xREuom1sD+kgJIywEAnQDL27sjaDTlTbw12A1Gh/H5D/rZrwRusRo0O0JXzPxhtBvguHlMOsVYuN2XYUqXXP0dJI6/I/wBOoBss2ikRqxyOlRooxIR8Tj61hsszyyZr6OC2Pub9j4Wq4prSip2advWCZPoVlq1oh3Ox0zWXzcKn0bOHheq8IoM1+Em2GcHWpDaFAUK2Ru0O+7f9XIEUZ9OYvs4YzxwwBdbh8DqDjuLQ7nsuROB1WFN6rt7m4RPjkt9xS7NnklVL7D/G1JHwyjZs+h6Amyvyzvhz0The824+mjSiKFYxUbb3SeU8eqTxZ96FpTDhxL2KrQkQxwpNUrBHretshoGkrR2+4EjWyxAUS7iFSS3OIokzk9V8+OQIZNlRQKNyxNVv1e0/gxBRZ6muJb9qBRqtxA9vQ9gXzJAaGf0H6JZIAszLRkmsvft7UebX74kMs5EDY6Kt7ngW9PwFqAFjPP0CnttpM8LxHhBxFr6vNtap+cNNRJiuyg6wjtogt3Oq8VRZ/+5jlulPBYUkjcEl5qjPuBJXnduSa8rSL15N9oJSSdu511B8NFucVvfZ3VwwtN+BA3nfrSmfAjWsK2gBlN6PymmrNavbMcvAKclHjDe6hXjeYlAGY/qo8WGWCh3IUQoo+L4TsGxcqaqFjmMxj/WwEWKS+m+YHqWQlhb0YzmESb9ulseooMzWg0VUZ/VZdldO97bc7ojxBYWZVRPoWEKKzEcrzaW4VnyntD3qCA+2gq7PchrBNzwWaySDgQRZnajbyuhiZ0XHm31Q4gdx9IUQTlYdrrjuRU+3wtH28mdpUT5goYCZY1UfW9ko8A3J+O9fAMy03b+MA6p3GZxdL+dD8eCr6bTmnhUj3d7IiAOW8CwidzdFkzg4Z2c7mm9aGb3mK+qrvBx5E1997EIv3xGEXRicnk4s/NWtW0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 47d1a98d-a9b2-4f2f-ad7d-08db0574c8c7 X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2023 23:25:34.7962 (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: 4VmNUQKDgNvU8lVVguP8QLv8Od5LgSK88fuvjt3Gt3yNbahTGG4oORrvX+IytL/T6gYLZYLS1+bPNzJlfMYe2Zf97+yE6/LniT4+tAQFFYQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6643 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-02_14,2023-02-02_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302020207 X-Proofpoint-GUID: CHLyObpReeO-uilBwHwGhfLw7q5je96l X-Proofpoint-ORIG-GUID: CHLyObpReeO-uilBwHwGhfLw7q5je96l X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756764124595611721?= X-GMAIL-MSGID: =?utf-8?q?1756764124595611721?= 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 cbe72bfd2f1f..74378d241f8d 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -255,8 +255,8 @@ void vhost_work_queue(struct vhost_dev *dev, struct vhost_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); @@ -264,7 +264,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); @@ -335,7 +335,8 @@ static void vhost_vq_reset(struct vhost_dev *dev, static int vhost_worker(void *data) { - struct vhost_dev *dev = data; + struct vhost_worker *worker = data; + struct vhost_dev *dev = worker->dev; struct vhost_work *work, *work_next; struct llist_node *node; @@ -350,7 +351,7 @@ static int vhost_worker(void *data) break; } - node = llist_del_all(&dev->work_list); + node = llist_del_all(&worker->work_list); if (!node) schedule(); @@ -360,7 +361,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()) @@ -479,7 +480,6 @@ void vhost_dev_init(struct vhost_dev *dev, dev->byte_weight = byte_weight; dev->use_worker = use_worker; dev->msg_handler = 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); @@ -571,10 +571,60 @@ static void vhost_detach_mm(struct vhost_dev *dev) dev->mm = NULL; } +static void vhost_worker_free(struct vhost_dev *dev) +{ + struct vhost_worker *worker = dev->worker; + + if (!worker) + return; + + dev->worker = 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 = kzalloc(sizeof(*worker), GFP_KERNEL_ACCOUNT); + if (!worker) + return -ENOMEM; + + dev->worker = worker; + worker->dev = dev; + worker->kcov_handle = kcov_common_handle(); + init_llist_head(&worker->work_list); + + task = kthread_create(vhost_worker, worker, "vhost-%d", current->pid); + if (IS_ERR(task)) { + ret = PTR_ERR(task); + goto free_worker; + } + + worker->task = task; + wake_up_process(task); /* avoid contributing to loadavg */ + + ret = vhost_attach_cgroups(dev); + if (ret) + goto stop_worker; + + return 0; + +stop_worker: + kthread_stop(worker->task); +free_worker: + kfree(worker); + dev->worker = NULL; + return ret; +} + /* Caller should have device mutex */ long vhost_dev_set_owner(struct vhost_dev *dev) { - struct task_struct *worker; int err; /* Is there an owner already? */ @@ -585,36 +635,21 @@ long vhost_dev_set_owner(struct vhost_dev *dev) vhost_attach_mm(dev); - dev->kcov_handle = kcov_common_handle(); if (dev->use_worker) { - worker = kthread_create(vhost_worker, dev, - "vhost-%d", current->pid); - if (IS_ERR(worker)) { - err = PTR_ERR(worker); - goto err_worker; - } - - dev->worker = worker; - wake_up_process(worker); /* avoid contributing to loadavg */ - - err = vhost_attach_cgroups(dev); + err = vhost_worker_create(dev); if (err) - goto err_cgroup; + goto err_worker; } err = vhost_dev_alloc_iovecs(dev); if (err) - goto err_cgroup; + goto err_iovecs; return 0; -err_cgroup: - if (dev->worker) { - kthread_stop(dev->worker); - dev->worker = NULL; - } +err_iovecs: + vhost_worker_free(dev); err_worker: vhost_detach_mm(dev); - dev->kcov_handle = 0; err_mm: return err; } @@ -704,12 +739,7 @@ void vhost_dev_cleanup(struct vhost_dev *dev) dev->iotlb = 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 = NULL; - dev->kcov_handle = 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 d9109107af08..2f6beab93784 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -25,6 +25,13 @@ struct vhost_work { unsigned long flags; }; +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 { @@ -147,8 +154,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; @@ -158,7 +164,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, u32 asid, struct vhost_iotlb_msg *msg); From patchwork Thu Feb 2 23:25:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 52211 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp533204wrn; Thu, 2 Feb 2023 15:33:04 -0800 (PST) X-Google-Smtp-Source: AK7set++TQlrO2jPUXafd37CJ3Xjg5BO2P2ZaeicHKqFD9jpFYgmULK4a9YzsefmoXh5EylLYlfj X-Received: by 2002:a17:907:6e17:b0:878:42af:aa76 with SMTP id sd23-20020a1709076e1700b0087842afaa76mr9611839ejc.54.1675380783941; Thu, 02 Feb 2023 15:33:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1675380783; cv=pass; d=google.com; s=arc-20160816; b=PufXNI5qaKKJhQUszzXut7YCixe8fQEFqp0tJ/TOqNbhts4Psmu36ncaLYvYn6pl3a ZXif6c6rNTz5V62kTWfF7vn4m3ELmgcWPceGjIU3oWDJnfzynZBOUSgkRaD9oJJ18ljl CRJlhmQU2v2JVEsaZpFqHaBIQydGLXm8e1x4E93NKSR1K4k+fPFoxoWsQXKPf/4k6uhy zlwJkKJyy9Ly+CsHLqyITopwP/qDvJ9mkU7DLm0ZYQGpBAZuQzIwbUxXBArEPgQFKtIX +BH6S8urErTtQL4YfOFPQaclEueugCeddKMoC48PX9+uVzH8boh3NKEL9tshKZA9MsL3 MQ8g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=NVI9n3wRMTF3PwKDZPp029bLGiu+10kh9Uu4OdPW4rY=; b=OrDtTmfuzPqDRv8j3NblIvt8iHHRlcfFwiEsK+w+3K0HeydbTbbDM9RqZyTOGAmBN2 tqpGD9Fkj9WmOvvrGZEhZ/wMMDDjrcw8DKZVguEYNxyRXVUJOVlJ73Ozgaclyel0g6ud /mm+sA0HIfYDuvGoSeFkBz2i/kpnyi6/PIOfBqpn3XmOeirxxBiOH8NOfdO9pPV/rBLu qjWw+4h3hq5ugbqKdoAZAr2LpXgigH5X32/NJtD4dGi4A8KToY7rtlc+AAiUrLHuUkxx 7e/s7x1CXumubITvgVZYr4Uj5WHL3AIvk7Sc158iOSMhAf4XQXArN627OsMVZDQIpw9h st1w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=t8Azcrew; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=NrD60xsz; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 1-20020a170906100100b0088939a81b27si1233724ejm.111.2023.02.02.15.32.40; Thu, 02 Feb 2023 15:33:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=t8Azcrew; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=NrD60xsz; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233228AbjBBX0P (ORCPT + 99 others); Thu, 2 Feb 2023 18:26:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44930 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233181AbjBBXZw (ORCPT ); Thu, 2 Feb 2023 18:25:52 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3218B402E0 for ; Thu, 2 Feb 2023 15:25:51 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 312IDptT011682; Thu, 2 Feb 2023 23:25:40 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-2022-7-12; bh=NVI9n3wRMTF3PwKDZPp029bLGiu+10kh9Uu4OdPW4rY=; b=t8AzcrewjwtPJ+QoyyASuneLQ71/otkRHCGBG5WNAG2awiqYlc1PS4d5p958L91WPKP9 2JFZ2KnhKB559j1852l6vWld+ZFcBjvHLFiNl5vza8HMAO4I/N9ycOXB1E7icUABEvE5 +LmqqY5HQo6ilHaUJvaAPjplZmxnvConPUufUeMU52hCZSElCx+5CtsibfTxKPgJXr40 iQjzB474EDy8F5mnARbpjxmezRs53u4j7toRaiFb2582oNT535mmvpWKbeqM/FGA9Dae dJvbyBWaUwGJt+prW9Lo556Oh5ZV2OZtS46cJPN/V88XKYOGM4MKWAlriZmE7FsWxktw PA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nfkd1vmsg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:40 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 312NIACp034228; Thu, 2 Feb 2023 23:25:39 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2101.outbound.protection.outlook.com [104.47.55.101]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3nct5gbb22-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Feb 2023 23:25:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oFgA8H5+ok70VbnDHOTecoTO9WtJtjpj7WzxqfW3fI+GHzmfpkBEWLrkvfOop8PebB2qY5E0HIYt7uyOqVZZFRoWh5qI6qbep0wODyRbY3bGxh3KL/QTUIxpxH7wFSkW4e0T062TNGhPdpPm2bRN+RzCs6M7NheKlFvmT01ljD+1MmyIZUSx/HMl/HFMmOQSDuStgfyFpo/2pzQZd6CVl064XtIQt7W5BLaUKiH+9KE2UF1NgnfSTvT7/ynZYPglJEZTaAS7UzPcb34o7J6BnXs3TeaTU/vo6ISghnQTPa/yV6NNKklv9INoWtFI8slRagLxU++vpZweLWFlJqJP6w== 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=NVI9n3wRMTF3PwKDZPp029bLGiu+10kh9Uu4OdPW4rY=; b=bcDN7HIufDyRtUNzCbj/Ql3jtfY1zmLeH2djv+6lmNwThn7g6bxugCTJ//XrifcIV5k4Oe4mejSpFOuMcDBKud1YQcCB05DQeej7HL+qEQdKdX3AWlT+9JKw8UNTbnksB9z3ptja/qrrz5yulqPioRTYQurbrTyFeikBPrb6dloxewhL1PCdBG97mqBxgX7wgt3e2CjM/LKkUZGyC6ypYKFYES2xDZFB98RkfqRx4euPzzFtCBlSFTlkzAwRDlW1KBf1xRLs3ZK7myH+Q2OCqldmA4ClgbuiOEQOTrrM1604EKr2IkOTzpoZKD9EfMns8YZWDTzB2NyorJSNpDRlCA== 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=NVI9n3wRMTF3PwKDZPp029bLGiu+10kh9Uu4OdPW4rY=; b=NrD60xszBsiOtGGSJwheXRDlLTxKFe8K4Ad3dzLgDVJYqgFoL2uDM5cezhvpQVm6ptmnSVR1s783QaNnG33zzgtOGiifkva0MwH505QHoT21Ah9Z+Zi4TN3/Nqpz84OOKkKmRU4STMt0i4mIZaysr7oJPXBjd0hsqC/Kl7ZkaM0= Received: from DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) by SN7PR10MB6643.namprd10.prod.outlook.com (2603:10b6:806:2ae::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.22; Thu, 2 Feb 2023 23:25:36 +0000 Received: from DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f]) by DM5PR10MB1466.namprd10.prod.outlook.com ([fe80::c888:aca:1eb9:ca4f%5]) with mapi id 15.20.6086.008; Thu, 2 Feb 2023 23:25:36 +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, torvalds@linux-foundation.org, konrad.wilk@oracle.com, linux-kernel@vger.kernel.org Cc: Mike Christie Subject: [PATCH v11 8/8] vhost: use vhost_tasks for worker threads Date: Thu, 2 Feb 2023 17:25:17 -0600 Message-Id: <20230202232517.8695-9-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202232517.8695-1-michael.christie@oracle.com> References: <20230202232517.8695-1-michael.christie@oracle.com> X-ClientProxiedBy: CH2PR19CA0029.namprd19.prod.outlook.com (2603:10b6:610:4d::39) To DM5PR10MB1466.namprd10.prod.outlook.com (2603:10b6:3:b::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR10MB1466:EE_|SN7PR10MB6643:EE_ X-MS-Office365-Filtering-Correlation-Id: 186fe998-3031-47a7-9cc5-08db0574c9bf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: g0DncmRRvlaEBs8txXpfwEUh+48/+gH2f2Uu0TpoMQIkWNf6D0UyHaODTnEEC9TE8VNdTHh6Z+hDePJKFFyUax+Cq/ekp0SotKAunkYin2bSLNzj5Lb+1A2JSHIPwQ8jo3jfBoeAlDdt7ao+T69GyMc9YPFu1ztcRPXpWb31E8/uM0MZPFgyzh7/waxzSuyxH3DHwro4w68kjUdiGX4TIMNWq1oQdWXQihs1hPjMCTOWh7GTS8wOCMlQ+gO5CjShGiewvbw3iwh5SaKPNqZsshMNWv6XHIvIURRmwRpr/ddy5A5LUwraOb+875KALUXg5VPhhuUWDJMFCnRk9q0DkP0C/xDFjqd+4weepgeC2VzECMVhvv7JCHQiyS/p0gfd5x4zzLAvMiZPvqsQwsLZiS1/L79Wf8GX0TfPUvpo9/yKlz0D9+FKk+4bSan+74AlWblXz0uSg39FJKAnhL+SYhTU3bwL2WOkmQ7ykzRwQdmEKN++RGJgDMZo5NwuLNheR67gZyJqpku/TsDwdENMXtca9N7cHemV0xNYp+J/tZCXzbGBSoMIMptCc774FZKDd3qaMcctqY36Ig48dU50DwrpJz4/Ko9VzMn6DLKc2e4di7CGkl8QWzscec4NzH085nY+1Jnonfrt1jyKEO7yxIFhg+tC+2iRPyd6o0V7YNVtj0EZduRn9G5MvneoB0m9 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:(13230025)(376002)(396003)(136003)(346002)(39860400002)(366004)(451199018)(2906002)(38100700002)(36756003)(83380400001)(316002)(6666004)(107886003)(186003)(6506007)(26005)(6486002)(8676002)(478600001)(6512007)(66556008)(4326008)(921005)(8936002)(41300700001)(7416002)(5660300002)(86362001)(1076003)(66476007)(66946007)(2616005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2UwPNPecdO8QanTo99gPAFatO+G0TbjWcHLpNGo3X7BGKi01wsFf0R5N4E1rrLVkxVHBR2RWSfqEicu3s7BekcnJvWkjUsiR0afJ2iyr1sZw1Im+B5Y459LEiCpEYctijOiHry0K/lOEZuBrrFFVJVI8+U8BJkCCi37d3B/uGoqekiL0agmbR56kCLXJ1YQ4joVPJvEB6cSp2mxcLeKcbwtd0OPc1GdXJ2GKT94wo22bbVY3oKnhlQh7e6p5JxvuLXzN3YS6sEl9IojL9WmzHzAfZqDy8hh04S/l3ZhYvJuf2opowtcHojdiTbeXWVnJ7SobgSWydfN6f6hTfthcF60v5g2jllR77nFr1J01LQ/8oJVAgYhrTYcmAK1TANvTLXfV5PpxiqVyStIkbe5liXHOxSfIVj3587K6PUb74nv5XR09qd6DfPX+cx0NWwuUZvP03IygWHaHklieHPCr+/v20pDYkcqNM7Q5M02eRXj4xaOSW3I36iNNyh70IoE2OyDAApI78bFRAWtOQyuP2XraJ1LJk421g6YAE21WZ/xJyfZZzV2P5bS6dcTOTpbnaYYbXWnBacXWQAAMGPwdbzvwaWQou48UiJw+hJRDqs5RClfMK9B4XcImPdeXIfXPPhrz7jc5Op5fHnkdZ9qLGXdt4jMw8BHVwZOgFLggxotHb8HyGkb5AL0TBFrog2sI2xRxh4fD1lVqotPEPiTAK2nAxpb9jsJTYfUQ+VQpOo6FG1PisESZyHecYLQFJcCAoh+jXP4T/kjDvuY6/YpJuE5ViJ7U4hLW1C9Df0UOtxXgHHZoXO04whA1YF0lsWAjkVIobuVVq/n644XVn+flA5pbjh7rtD+V1F+6goaSL4ytNrVDG5ymycJoQrxUKKhuS5e/KJmqMDz899H865AXxr8dq+VvlsjqlAc5x7ZHWLmX3/I7tKCM8/cRvPw9FjaCwi2qAiI9PfXWtQ282iyfr+ZNn+INZk/EYanJaPAvAjQPZTRRbAo4vE60hIGO2zaxWuhwdd8xuDj5vPCttd2Kx16rVsr0H9NP52JB6W2L4HZ4z0/QUlPFfrQeSZGaGodazyKZHbjGJccOKEX4fkvn4kFagYo068oPX6bV68YG0raq2jkRpR/vwehAuEB1acVKosiFODjjBhKVGMrX3o47v2ucPgly+7uapkVLueJK16wW+ByG6a+E9nxcb1hRgrRmJt6zd5S7UVbtsmQmshO9D0OorOG3aCuQzHE1wDLeQFGMGe8UHT2DOhyeS1pruPDCFaanhiM1Ud3T0JT8qhEWw0vNY55OQ3G3yxpLd5RgSmwSe/Amyacyg/MHXVvfz7jUB8ul67LUTl/buvHqjdZ0mufcYeGLxRuQojU229L1o9Fj35zOpZIjHaec3vMCoggXJ6iBYiaiN2rfWhEVXtPPNLDknrJmhpOCxA0I9QI1in7WFXH0kII144sUHW166jEIQOFgu+I/oEUPJxAI2mBMh+6IFMExJRAnTFVH5AcTILegeYatBfNXTMMtm+5vsRuK2PC3hjSJn/wcirndyt7K3Dnt8nr1NhSmEviEoCgHqD3n2odydC2a6GkKQ3TgtNwIgld3hVfQsT9cNmzP5iGVcg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: IGLyCxv7KBFeDX5Bh1zhSxeNsd2foa/xxN3cdj41ZKGVHxGcT+PHhnB16oq/y6OUgaTTdPWf4IMgzIh9y3Vl5XtbJaGwoT5RaT+soG2i2zH8c9zBOqp+XNP38iB8Y0jWm2ZoWYB9PEHQVe3yUesr8Pq71CIMeYwpuPPJ/jBv0ntA6kB5bhbb363vEMZmGTAPhwGL02vdtKOnU4KEKMDM6h27UF5UTBguQWRd8YxJ9RheOqBSHdTjMmC5tnQmEp+ufAJ13IvdeqeBtbshZK8/fjTuwI7MBiJPuYWZoBYpO4Qtbg4Tp4L58qAXIRlvahjnfb2dp5liJK5Hj6UvpXbVlbKjKT+vfItvuczm4fMU6sjhC3h7igpjKd+7hgQ4nPs+hZIkOlkyPP32KAK5giO6VpLaaoA6wYCKqjuB7qWPf4ANSzE3WeskcFDEwRIJYzRrtqBd10sty3ATZwEmKAG8SpusksJYdTxDiReiMtklZOhq0NfWMF2b+SenCbcf1mbDSjiCF5xEFeGIKd4xYPCVXkfgASbNkKO9J50pV2FwowVXab3akZXBYrnzAqO3zKb2SEj/m/J92hBFQJPTYaVtwPZZw5nfcqdO5u7h/Q+3G7CTE/3blrnEcwLH4HSI58t/MhZnjf6+PLb5Gk8oFWSyxoeZvWICXFOIwN0lMtqCTxklAmwMmLQ2frdje8aFzycGezErVHOkssLlcU338JXLYvyg9zB170Oy3Y3FAUWaXOtGKpvPmd1DT1JBRxpF8Gp4Hky4v0/HsS9kPaEn6/3Os8wPgKNQg3o9ERYboTmM/0pM+CSHFgWZj2DVBgg0l0+B43i885+QeI+0M/OgsX15jCb6zHIwn6sMAqfzTgyP5mohH2kSNJafvs2xGWGBjxIqiPf4kxBigj+yNjK43yNYLTPfBJ9Ci0EOjczsT+tp7sWgHhSm1kGhCTyQZ3Uu/fV0kun+0U8Owc1jg7+FNRHsOUC5SPnTxhfsTi19pFQLA6wDmqbd2faz1jKkMQo1KtmrQ8DAckwhTyrzP5zM/RPSJA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 186fe998-3031-47a7-9cc5-08db0574c9bf X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB1466.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2023 23:25:36.4367 (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: d59ARM9QZDPseBV2Ld5k6D0V0XdZAbVqSJoUqp1DahTkGVQSS5lb5PZryCrUKMdLSwsBMlWZeckrKwNZ0nJ4keTXxlBuJSyCc40w1nd4Uto= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6643 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-02_14,2023-02-02_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 suspectscore=0 adultscore=0 mlxscore=0 phishscore=0 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302020207 X-Proofpoint-GUID: 1tG0nRXXwVRiYu2ys9edu7pgk75BL95z X-Proofpoint-ORIG-GUID: 1tG0nRXXwVRiYu2ys9edu7pgk75BL95z X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756764080765199444?= X-GMAIL-MSGID: =?utf-8?q?1756764080765199444?= 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 74378d241f8d..d3c7c37b69a7 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 @@ -256,7 +256,7 @@ void vhost_work_queue(struct vhost_dev *dev, struct vhost_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); @@ -336,17 +336,14 @@ static void vhost_vq_reset(struct vhost_dev *dev, static int vhost_worker(void *data) { struct vhost_worker *worker = data; - struct vhost_dev *dev = worker->dev; struct vhost_work *work, *work_next; struct llist_node *node; - kthread_use_mm(dev->mm); - for (;;) { /* mb paired w/ kthread_stop */ set_current_state(TASK_INTERRUPTIBLE); - if (kthread_should_stop()) { + if (vhost_task_should_stop(worker->vtsk)) { __set_current_state(TASK_RUNNING); break; } @@ -368,7 +365,7 @@ static int vhost_worker(void *data) schedule(); } } - kthread_unuse_mm(dev->mm); + return 0; } @@ -509,31 +506,6 @@ long vhost_dev_check_owner(struct vhost_dev *dev) } EXPORT_SYMBOL_GPL(vhost_dev_check_owner); -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 = container_of(work, struct vhost_attach_cgroups_struct, work); - s->ret = cgroup_attach_task_all(s->owner, current); -} - -static int vhost_attach_cgroups(struct vhost_dev *dev) -{ - struct vhost_attach_cgroups_struct attach; - - attach.owner = current; - vhost_work_init(&attach.work, vhost_attach_cgroups_work); - vhost_work_queue(dev, &attach.work); - vhost_dev_flush(dev); - return attach.ret; -} - /* Caller should have device mutex */ bool vhost_dev_has_owner(struct vhost_dev *dev) { @@ -580,14 +552,14 @@ static void vhost_worker_free(struct vhost_dev *dev) dev->worker = NULL; WARN_ON(!llist_empty(&worker->work_list)); - kthread_stop(worker->task); + vhost_task_stop(worker->vtsk); kfree(worker); } static int vhost_worker_create(struct vhost_dev *dev) { struct vhost_worker *worker; - struct task_struct *task; + struct vhost_task *vtsk; int ret; worker = kzalloc(sizeof(*worker), GFP_KERNEL_ACCOUNT); @@ -595,27 +567,19 @@ static int vhost_worker_create(struct vhost_dev *dev) return -ENOMEM; dev->worker = worker; - worker->dev = dev; worker->kcov_handle = kcov_common_handle(); init_llist_head(&worker->work_list); - task = kthread_create(vhost_worker, worker, "vhost-%d", current->pid); - if (IS_ERR(task)) { - ret = PTR_ERR(task); + vtsk = vhost_task_create(vhost_worker, worker, NUMA_NO_NODE); + if (!vtsk) { + ret = -ENOMEM; goto free_worker; } - worker->task = task; - wake_up_process(task); /* avoid contributing to loadavg */ - - ret = vhost_attach_cgroups(dev); - if (ret) - goto stop_worker; - + worker->vtsk = vtsk; + vhost_task_start(vtsk, "vhost-%d", current->pid); return 0; -stop_worker: - kthread_stop(worker->task); free_worker: kfree(worker); dev->worker = NULL; diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index 2f6beab93784..3af59c65025e 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -16,6 +16,7 @@ #include struct vhost_work; +struct vhost_task; typedef void (*vhost_work_fn_t)(struct vhost_work *work); #define VHOST_WORK_QUEUED 1 @@ -26,9 +27,8 @@ struct vhost_work { }; struct vhost_worker { - struct task_struct *task; + struct vhost_task *vtsk; struct llist_head work_list; - struct vhost_dev *dev; u64 kcov_handle; };