From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38CCFC4167B for ; Wed, 13 Dec 2023 18:27:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AEDC16B04FA; Wed, 13 Dec 2023 13:27:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A9DCB6B04FB; Wed, 13 Dec 2023 13:27:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 965EC6B04FD; Wed, 13 Dec 2023 13:27:21 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 76D3D6B04FA for ; Wed, 13 Dec 2023 13:27:21 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 3D7001C12C7 for ; Wed, 13 Dec 2023 18:27:21 +0000 (UTC) X-FDA: 81562627482.16.01FA6B7 Received: from out03.mta.xmission.com (out03.mta.xmission.com [166.70.13.233]) by imf27.hostedemail.com (Postfix) with ESMTP id CB78A4000F for ; Wed, 13 Dec 2023 18:27:18 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=xmission.com; spf=pass (imf27.hostedemail.com: domain of ebiederm@xmission.com designates 166.70.13.233 as permitted sender) smtp.mailfrom=ebiederm@xmission.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702492039; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HcJBLK84y5voN4hq2YN6MIrVOQWVu5E9P1GT7mabVUQ=; b=BKB6DcmAX+LNo2ZHwVi93EDH3JoLi4QAW5p6qF3ZbI4cKhysvKMtuSwJqk3FcZxhNv3x4x Qq1vQEKSzu3JFPXB+0XVXegaH/yVwJjeWDQwh5PKRbZakD6mx7iS2B8SRfco4MtN/CdqKq SH9ZWY8TPeKRc+Bsl7hFcSaGt88KMT8= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=xmission.com; spf=pass (imf27.hostedemail.com: domain of ebiederm@xmission.com designates 166.70.13.233 as permitted sender) smtp.mailfrom=ebiederm@xmission.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702492039; a=rsa-sha256; cv=none; b=GptTOu8bp3m6ZGjQqxll1qkQY7HmwCQhHcWVUGDw5C8hdOzLViqbk6yV68OKCNPmIMp9ey HnFfAE9F0/zJ45ZOJ9pYhG7gtZQhVdle3GHDikapM/APfGV58+jDi+2THFn6968PR65B8y hhO3H6QmBAjsjvb4p+0++JnMxnajw4E= Received: from in01.mta.xmission.com ([166.70.13.51]:50630) by out03.mta.xmission.com with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1rDTwx-000ZKP-6d; Wed, 13 Dec 2023 11:27:15 -0700 Received: from ip68-227-168-167.om.om.cox.net ([68.227.168.167]:38540 helo=email.froward.int.ebiederm.org.xmission.com) by in01.mta.xmission.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1rDTww-007q8r-4s; Wed, 13 Dec 2023 11:27:14 -0700 From: "Eric W. Biederman" To: Matthew Wilcox Cc: Maria Yu , kernel@quicinc.com, quic_pkondeti@quicinc.com, keescook@chromium.or, viro@zeniv.linux.org.uk, brauner@kernel.org, oleg@redhat.com, dhowells@redhat.com, jarkko@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, keyrings@vger.kernel.org, linux-security-module@vger.kernel.org, linux-arm-msm@vger.kernel.org References: <20231213101745.4526-1-quic_aiquny@quicinc.com> Date: Wed, 13 Dec 2023 12:27:05 -0600 In-Reply-To: (Matthew Wilcox's message of "Wed, 13 Dec 2023 16:22:13 +0000") Message-ID: <87o7eu7ybq.fsf@email.froward.int.ebiederm.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-XM-SPF: eid=1rDTww-007q8r-4s;;;mid=<87o7eu7ybq.fsf@email.froward.int.ebiederm.org>;;;hst=in01.mta.xmission.com;;;ip=68.227.168.167;;;frm=ebiederm@xmission.com;;;spf=pass X-XM-AID: U2FsdGVkX1/VU39+2YW8c791zJoSkh67aCTXIOvQAFw= X-SA-Exim-Connect-IP: 68.227.168.167 X-SA-Exim-Mail-From: ebiederm@xmission.com Subject: Re: [PATCH] kernel: Introduce a write lock/unlock wrapper for tasklist_lock X-SA-Exim-Version: 4.2.1 (built Sat, 08 Feb 2020 21:53:50 +0000) X-SA-Exim-Scanned: Yes (on in01.mta.xmission.com) X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: CB78A4000F X-Stat-Signature: kfb9km6cfo5yfzxcimgodoc61yns47qt X-HE-Tag: 1702492038-256070 X-HE-Meta: U2FsdGVkX18ooN6vnOlxr1ooAWiIkkWI9R/gFXvfzGsUmxMKZ8VrNqcnMyZDd1lhrum5fLR6pXWxWmRxh2IBDR+XsrVKfK84mh90bG1u8fE/Gm8fOtcL0+3sIqASqdVB5a92/PI5hCSZV+5IVqdfC/awGeAxyAz8orPCAMY4Z639Kbjzc7+8NXM2YKqKXIfvY1VLHJ6eSgg2oA/qAfoob5Xl2ZTvOMeuka7okDEALRHfzNz7ZePHavDgWxwlQ7NMvz8xhQbRstNhoktSE/8PCcEk5oxiljlHX2nlUFj0N6Esoo0DKJJO/QXXo2/VAUwdXup+3xNnerQBXmC++/0zXlBVkuhWDe8WCwV3HCNITKCgz2d2M7a+t1zzahu3uWPokpAuPtPBcKCyJwhxk2c47MjNPcdsiluQqUg0NNJxjq9+qFCARV26SX4UnG1Vj3bi0hUyz1ssQa+UKOUme74FHsq1lMufcVOgYi/onDZzdUFQSja/FxqOHNumJhjn4/SlJ9Fo6U+EYBABC0dUbwUTOdAkYv6rlXHxq54Y+6MfsP0gXVMRdn3iSn5bh6sEiVCchs1NKOufywYrwt9nK8opdwrh5B9OzDKnysiq4XIoaajnXfDGDRBQ1OcWLy10GOI7bO6rmhVZHvBCnd0ey6yLoa+YvVbRDAY0Bads946WVhCUqbHfkQ3dXDm1rp7viiShp+uV52ZY5l8VThV/3EE5gn5EAsgDTIRJVcVpOv9aW/YcrGEpjFmDn4AB+LC5qsg9fNH1c6+O2y6i8d2Fk7ji3KnqHrc30Ee0Jp9Ea/mtrRgd3Xo22AQHwo2eEtnLHx6ABZGkbUmZdFwIYFk303XLhfJht7DT9xniBR2dNbliRiJzdAvCT2La1JMbJjLIGpOWlgbBT4QPcnfRukYgtXlqAeCFSyBTOFTjiXFUC2kzAk8+Lf+hI9D+ciU/DQkBUHjqw4AL7bhCLhrGu7PKUIm zsT/HSTu FF70E4TFkwOITZHBSmGKESShfuTZSVEitWO9oouxna4oMiIekpZCIyoymaK+k1F76gF7/daqu5/fgK+avdMqYxIjRQsBmRakWIGZbw80hUopvthizWErGW5HTcwrh1Nx292oVEylcsGW6fZytTh48YDh7IA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Matthew Wilcox writes: > On Wed, Dec 13, 2023 at 06:17:45PM +0800, Maria Yu wrote: >> +static inline void write_lock_tasklist_lock(void) >> +{ >> + while (1) { >> + local_irq_disable(); >> + if (write_trylock(&tasklist_lock)) >> + break; >> + local_irq_enable(); >> + cpu_relax(); > > This is a bad implementation though. You don't set the _QW_WAITING flag > so readers don't know that there's a pending writer. Also, I've seen > cpu_relax() pessimise CPU behaviour; putting it into a low-power mode > that takes a while to wake up from. > > I think the right way to fix this is to pass a boolean flag to > queued_write_lock_slowpath() to let it know whether it can re-enable > interrupts while checking whether _QW_WAITING is set. Yes. It seems to make sense to distinguish between write_lock_irq and write_lock_irqsave and fix this for all of write_lock_irq. Either that or someone can put in the work to start making the tasklist_lock go away. Eric