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 73806E95A90 for ; Sun, 8 Oct 2023 22:17:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DCCBE6B018E; Sun, 8 Oct 2023 18:17:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D7C726B0190; Sun, 8 Oct 2023 18:17:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C44676B01A0; Sun, 8 Oct 2023 18:17:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id B2CB26B018E for ; Sun, 8 Oct 2023 18:17:26 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7E17BC011A for ; Sun, 8 Oct 2023 22:17:26 +0000 (UTC) X-FDA: 81323706492.28.9DDE400 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) by imf29.hostedemail.com (Postfix) with ESMTP id 9E50C120003 for ; Sun, 8 Oct 2023 22:17:24 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=hthFTadz; spf=pass (imf29.hostedemail.com: domain of david@fromorbit.com designates 209.85.210.170 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696803444; 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:dkim-signature; bh=XuMhaoUrb8fYypPyU1C5/BlvN3yIac9qvvOq3KXUHNo=; b=J0+bRBcl8iDt1Tcqb3PDlSfw1ZFzLJbMoA6GH/0P4+rmgtJowiM6bpx+Dtn5DhZVgGUS1D vaWy4N+Sk6qsaaglD7Nf86O0YEGo4kW6rqZVcATm1855Oz4tPI6Dqbx9yGGR6x2pVe34L3 ReM9VraeMp/yDPUpLhUITuXUjFUZ194= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696803444; a=rsa-sha256; cv=none; b=i7E1vDZ+OPHO9yXVm3CSHABX4pUkRQNHimDvAhFDE3vCuQJKn63FGH9uwjCok9jrCxQee1 9jFrOzBTkyC/wkHG1xatlmOVGdVZlgdIcu2A3a+Nc9ZREzUuL0R42a0NuCOHBzGs1nGWFA /eu3PQzDnAScWMX90jnHb53uqDxCkHg= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=hthFTadz; spf=pass (imf29.hostedemail.com: domain of david@fromorbit.com designates 209.85.210.170 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-690d8fb3b7eso3546969b3a.1 for ; Sun, 08 Oct 2023 15:17:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20230601.gappssmtp.com; s=20230601; t=1696803443; x=1697408243; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=XuMhaoUrb8fYypPyU1C5/BlvN3yIac9qvvOq3KXUHNo=; b=hthFTadzyPB/pO5nNv7M/94O9iimrWV55QCe6aH4tF9aNOsX7Tc6JpVDXrPkb5frtI +aAHgfXA28QwKsZ+zMIqA0WmL/BGlboC3k6vvXAPHIjDOog7uu7b2omM7LoABParV5no mYjjjttQ15ZQ3eOW30HjqK+kSIYWgQGziieopDC4AoEsFNIrUKvnCqS6kHzXJja19/hC nuMU9TCgI50HwgD4LlPOGAFS85dbAhRG6ri7QeC9acjn6e0fvpJw1Op39cukpWu03/Mu O0W0V0F49F4grcT7sObsHCyfzzmL6BHwYQ+qOEixFtVFTKa2tkskEd/J9UmTRkteXVGx jRGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696803443; x=1697408243; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=XuMhaoUrb8fYypPyU1C5/BlvN3yIac9qvvOq3KXUHNo=; b=WhrP7zGq1/1dCA7v3Fw3AU06RZ5dCgTY907mg4NcZ2nKU88SFY5tWA1vua2hTuTZi0 oVWqFBGOzUucsjs0g+DdqEHdjX5Q1Jp7or7QL8SAKegIPYUzp5DRNcFfgWeZkg5M5sS/ kqId+vhG6/e6KXka+bvFa+Vko+lLzZXhYLO8SAyHe/1dUF2qQqfnt7Ym9p9Pr88kzSDW nnyHUHL+amJ1pvJcyssRPdn3r5/QKJgCJHY2HU/D1d75ttRvfJZN77GhI6v5TWa5yJbB 0ap6QkfaJSoNOXzgsF1XJyPdQ50a3LQvS9lLyzdHt9GJt9r9NNbqX/EcSnF+yixUr5jW EG2Q== X-Gm-Message-State: AOJu0Ywo+EoR7jGHptACSdg9aBpNMVXPW0fbhtqhHKVOLk7giqPrf6Ga UhqK2VaPMz5/QTjVYGDndn7Stw== X-Google-Smtp-Source: AGHT+IFpYWNNF7lhghKXd89cNbLnO1b3yGGYgoerjmBJ/CE2yCqc6X/QyLT7+/JjVYeScKQF4hFJFw== X-Received: by 2002:a05:6a20:394a:b0:154:e887:f581 with SMTP id r10-20020a056a20394a00b00154e887f581mr16324879pzg.58.1696803443275; Sun, 08 Oct 2023 15:17:23 -0700 (PDT) Received: from dread.disaster.area (pa49-180-20-59.pa.nsw.optusnet.com.au. [49.180.20.59]) by smtp.gmail.com with ESMTPSA id z5-20020a633305000000b0057cb5a780ebsm6920676pgz.76.2023.10.08.15.17.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Oct 2023 15:17:22 -0700 (PDT) Received: from dave by dread.disaster.area with local (Exim 4.96) (envelope-from ) id 1qpc5P-00BGU3-1i; Mon, 09 Oct 2023 09:17:19 +1100 Date: Mon, 9 Oct 2023 09:17:19 +1100 From: Dave Chinner To: "Matthew Wilcox (Oracle)" Cc: Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Chandan Babu R , "Darrick J . Wong" , linux-xfs@vger.kernel.org, Mateusz Guzik Subject: Re: [PATCH v2 4/5] xfs: Remove mrlock wrapper Message-ID: References: <20231007203543.1377452-1-willy@infradead.org> <20231007203543.1377452-5-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231007203543.1377452-5-willy@infradead.org> X-Rspamd-Queue-Id: 9E50C120003 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 5k3fb5kyt84apcn3eacf8matu8q3a5ky X-HE-Tag: 1696803444-788463 X-HE-Meta: U2FsdGVkX1+zaGHI9dNuF48fHkwnwGeknAAu00LOZQtAoRLyOwRRQF8FcSiYaQob9LVOHdjVO2u+WW4d1BpywWb7mWmAXR52WnOi0FAQSR/nMkkxgnqMWSZE1Naq+9R0LLiOMNzf2eff5y/Ka1Mj3svAfCNb17zvmJ0yHaY1u+BZn31bNV3OzrgLveYOMevE6qSnqaaU1rc2fA2Efk4AMbobMfv2z/0/oWrHAs/T+sxudqvzjmMoxzWUKo21x6JxEltBhkK3JwEBiBZARr+wdVsrsYJzMUqZoSXfdJTWaJogOFI7BSJ/T4/gaQtnrCo7MfsCy+R+2trCkx5vklr756tVmqIgtoSOuUfw+4IxfAkvpGGUL8Nthgz8pwAB26cTJ4qwTNpT1uoEJ9JWJ0t8GgRgIF1M9p1n6KXgX5eEFFsMrnCAHMNrlKqAaXdxIzYFRSFGqHfTee4zsozy6vdhzQP4OGsw/+OXt56vRvcQd5rsGLzq+AHOmdnQecq1/tatyZUZH9MaRopLv/KyEx4Ck7kLz81tlE4ieICe/nphgMQDvHR9t0PW0Yq4CX+bK6QAKDPYjbYGUVzE0IorfqupATs8SrFXyaaA+jIIgqQgiGGLJzW8wA7Fdkq20lvhhQ+xN2t0qanpBrm6w+CIxbg6B7l8DTS+UG5f3Vr6yYph8jPAOCCL4XJZSIU/Z+DG+B5mbEowQdjYa1SJdbGJmGmdyRAg6hCf9Z/WKUNuQsAf3EuGCFrEaEUAJLW3E6uDVVFXL8Y2LvNfhBwp+z1UHB1Y8QsbW5C0PYJ0PJWQAeYc/suBB7MvySVYVMqMsTMpxQvW1CXGNdbAoeBU/nsB1hpBBOTNxkZJJ/Mkht0FKPaXzJ0LKExU6Zir+6ypMyAY+IkKcHbJUCGwlZC0Dqxk1k/TjfQl4VqM5C9rGrV9jw625DcvRNDm26XTP9E1o2sSSk8t3Z8VaqRiQ+fKWBC1nXV nFUhlauy 4+Y2OfZLdmkFLpE10Jo1ieeVOl+cZM9/A0gzLR2YcEfUBvYlPfWn++6DZp8mcJ8Zpy050m/lLg0y5LbR+TlozI9Whd3a5UEdHTZXeu5TtOLwrPCdyU56Fkc51RS7rAUMQVyNpg5eLI0QjwqVDJ/doiRQU4eHtvbMzG7MGRMbEzuE22rftZEwvvvvbDpPV70UmGA61GLa/JyhuLGu8jD/DiaK4m3/nsd8OiBypqsXGthPbDq4COvUVgsfOcgCQkTezjvPbsIcvGpb9m0STIbwxxjJt/gKw4e34b1MQ3kaaHJyTQgOWVpbcygKwCclOTHqpnSwMTjWPkLDqz6lo4x39U4j2HqAj/iEbsWrTodHK7o9IaKCMdRM5oFJ8qk1L0qxqzknl+7LOcbElPv3dCWA71ULt8pEMmOfR+vBKbP70HUPZTzq4gC/eXT9R0G5QjZAFneClX4ltik/6uonaQfiqzlGZ9y40ml0zZJVXCrpJr69Ipt+nP20uAsAq+Wk6Qc6RfRLO 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: On Sat, Oct 07, 2023 at 09:35:42PM +0100, Matthew Wilcox (Oracle) wrote: > mrlock was an rwsem wrapper that also recorded whether the lock was > held for read or write. Now that we can ask the generic code whether > the lock is held for read or write, we can remove this wrapper and use > an rwsem directly. > > As the comment says, we can't use lockdep to assert that the ILOCK is > held for write, because we might be in a workqueue, and we aren't able > to tell lockdep that we do in fact own the lock. > > Signed-off-by: Matthew Wilcox (Oracle) ..... > @@ -338,10 +338,14 @@ xfs_assert_ilocked( > struct xfs_inode *ip, > uint lock_flags) > { > + /* > + * Sometimes we assert the ILOCK is held exclusively, but we're in > + * a workqueue, so lockdep doesn't know we're the owner. > + */ > if (lock_flags & XFS_ILOCK_SHARED) > - rwsem_assert_held(&ip->i_lock.mr_lock); > + rwsem_assert_held(&ip->i_lock); > else if (lock_flags & XFS_ILOCK_EXCL) > - BUG_ON(!ip->i_lock.mr_writer); > + __rwsem_assert_held_write(&ip->i_lock); It took me ages to work out that the comment related to the "__" variant of rwsem_assert_held_write() function. I really dislike the use of "__" prefixes for a function with slightly different, non-obvious semantics to the parent - it's way too subtle for it to be clear that this is what the comment is refering to. In this case, we effectively have rwsem_assert_held_write() that does lockdep checks, and __rwsem_assert_held_write() that does not do lockdep checks. Either the former needs to say "lockdep" or the latter needs "nolockdep" in the name to indicate to the reader the intent of the code calling the checking function.... Otherwise the code looks fine. -Dave. -- Dave Chinner david@fromorbit.com