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 0E77EC8303C for ; Mon, 7 Jul 2025 04:08:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A311C6B03F7; Mon, 7 Jul 2025 00:08:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A08D66B03F8; Mon, 7 Jul 2025 00:08:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 91E696B03F9; Mon, 7 Jul 2025 00:08:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 801656B03F7 for ; Mon, 7 Jul 2025 00:08:22 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 1A114B8B51 for ; Mon, 7 Jul 2025 04:08:22 +0000 (UTC) X-FDA: 83636136444.01.7E25010 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) by imf18.hostedemail.com (Postfix) with ESMTP id 250031C000B for ; Mon, 7 Jul 2025 04:08:19 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=KjAUEzCx; spf=pass (imf18.hostedemail.com: domain of alexjlzheng@gmail.com designates 209.85.210.175 as permitted sender) smtp.mailfrom=alexjlzheng@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751861300; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=myoakGvr/PnaCBbS7GuiApsE0/VILHenuI5anvIitlo=; b=PTqiwrkZ6O0Of2L1kX77CNzw6nNixeuMYGJMQ+HHbEdiP4oaWc/6fC8IHkJXf98+wjz2Ht Ob9/zNYrI1W/He6Mhy9beNj8UZVcNFBszfQ1ZpSLSQ4teEZj52Ulktb7rEOeI7kGtd2vFB VC+jp3BqsjRFhzEnxcVsyg2BXb+ipW8= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=KjAUEzCx; spf=pass (imf18.hostedemail.com: domain of alexjlzheng@gmail.com designates 209.85.210.175 as permitted sender) smtp.mailfrom=alexjlzheng@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751861300; a=rsa-sha256; cv=none; b=IBAp78fHQF0LiuIaK5VmcOys1fi9mykOjMXYlLjOXHjH3iGNcbC0niens3kNg/iqWQPpO/ p4FAxAvEOYFk5wE/lBE+m0Sm5e1aZ634Oa4CxvY42KCCxhJ8fa5Y3ACqc0CfN8SWrvsbSM /PWhiwS+VL4kWvWwZq+vEV1dbcXVvf4= Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-747c2cc3419so2104055b3a.2 for ; Sun, 06 Jul 2025 21:08:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751861299; x=1752466099; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=myoakGvr/PnaCBbS7GuiApsE0/VILHenuI5anvIitlo=; b=KjAUEzCxf+k2afMbpeGCMMiYUr21GvlgbaPMN3g7G9VZzVgabOAf4HnhA3AyPuTnaz XpeIy5pYfU7AR47Opx89GzngYI+PYk1J/8ohCrvSYej3T18hObRDFYpN0HxPgBrHGQCd F6BwZd8qIyfQMAfPRUikVV6dFX6wuMl18QakJMdlwP/YCJzPDgs9LegCvQQOSIGSJdEo 2/rN7MVMqLNumY+rlKcOZxjrSQCoY+AxBot6CFhH4hdPZlcKLPHlhPQwCUddN/C2hm9n /SjSGeVVV42QoGgbRlYoYsw4qZ7PfZgs7mVPyl23gYBvMimVbme2L1ATmz3EspUzlzs8 kk0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751861299; x=1752466099; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=myoakGvr/PnaCBbS7GuiApsE0/VILHenuI5anvIitlo=; b=BLYfLEoEU5/XCWzkamhrKbAKPs+GmZnexsmWCLchXGgHTmxEiXjEtIOdaM7LLbID9+ /ky69+sMSjmFq6Tzkp2v+yefCQGmz5q3Ky8JfyXbUtmAeQFWdKqxsmo1/5EdfdWbqKNe jzlfohKu6w09tdXCCyOMxFRy8jxK44fDf7y9uWnXlgd7PTDYCzCeaBEOiz+5W5zHeD7E z4fkyel0qA8uXvzjDZqs2suwB6ewDtxbUfNgtf3RNStWD8p+TXmb22vFqVMpnhMbPBNY V7GBVC1uPwlHd04wTtDCohgflpZLbUZzFu9LQFQAslsiF2OEr4Wsw/iL9bfosjI41vvw N3aw== X-Forwarded-Encrypted: i=1; AJvYcCVPz3ozamrSOudaEh1PCphBg8J36ugv7NS5+tuHS27XewVhFWanOX8arAVrJzYJoLhCtsQorR57xA==@kvack.org X-Gm-Message-State: AOJu0YwefT4+YqtDedqQemaXSZHWI7HgL9QS0WIq0f8k54/hkaxcbxZY GM64hNshdxUXdJ5dwq9mBKc5q/bxWkz8Jsawo0AY3weHV8ZXZW+KVBbb X-Gm-Gg: ASbGncv7+6C8WqqzhpQLHVhfR+h1Ze0SCdidPQvl5OfOjP0B+z16eqYOrMjfYWSFNzW CskYR4CHcWNa0wNEv14OLAMb4NGs4dGYknMkvOCFfsExsZ8SnFaz+MR/OXi4S3JGbwEmP4WNti1 DgdikirvlicCSuxDa5J5Wz9f/f/2a6SgaRMyYx3pYqP8WA2rKjYcPvLOEYKNj8n8MayBgurb82S /Wc39LdGgVJpxFgCBlWJtZlOamF6O+B/CyF9795Eozs9BFY0arkX5uRvsb97T6JB4lsV76mnOgE 2HjY4VruDMV+OCGLKMTMOQRfJ/jqNwYflqK0XcgB5XObfkXYa4nK+sDGpi5qmU9upEC4jmn1JBE = X-Google-Smtp-Source: AGHT+IHjcKlgZP5rEIcH8q8oD+vqdyt/ATNmp47t3M4RZoOFNboIAWwmALMF+gViP+z0CkL3f+aLbw== X-Received: by 2002:a05:6a20:7f99:b0:21c:fa68:c33a with SMTP id adf61e73a8af0-227213b11c9mr11528432637.23.1751861298943; Sun, 06 Jul 2025 21:08:18 -0700 (PDT) Received: from VM-16-24-fedora.. ([43.153.32.141]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74ce4180970sm7892801b3a.93.2025.07.06.21.08.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Jul 2025 21:08:18 -0700 (PDT) From: Jinliang Zheng X-Google-Original-From: Jinliang Zheng To: willy@infradead.org Cc: alexjlzheng@gmail.com, alexjlzheng@tencent.com, brauner@kernel.org, djwong@kernel.org, hch@infradead.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-xfs@vger.kernel.org Subject: Re: [PATCH] iomap: avoid unnecessary ifs_set_range_uptodate() with locks Date: Mon, 7 Jul 2025 12:08:16 +0800 Message-ID: <20250707040816.3062776-1-alexjlzheng@tencent.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 250031C000B X-Stat-Signature: fkf1xarag7tjiyp13mzaukoxn7fbgn44 X-Rspam-User: X-HE-Tag: 1751861299-321716 X-HE-Meta: U2FsdGVkX1/5mbN0qzxMvJ5/7jB5ampHOtkNE9N22lMtagJNRHjDLRDx1bdvKM4U7qPh8ZFRtcu61vePULkUKLt2cDD4dsUkdzuMEKVFig/GJIHHAq18AKBLA19DplZXXBW406KUfDhnF4cCcPeh/Uyu1sb9bT4WGznMSxmoYldNKAgOnGFqk+EgfvJuS59EZodJQUeAL96EchtjcE/0F1EC3gJ5UUq5bjfvpBOKuVXewcBYLnqOyfvnRl4baP0tAR2vP1qkxLbRA/Qzn9H3+ajb5T8oeZB19tLkgaSmavmsx2adyeeBoIkuywB+2rBzK0Yf1+ZCjrp1G7fpNTknSP7i7etdDWKv8bgzhck0iPz9wIYjwPvivLAmPyfm13cTYZxYJPDbFdU5jUP0+0TCYOxsUI2/QJlqCLkWXLMc5MYohaR++eRjKSXlbD1wZan5+J4OhW5q0FXgti020m910XDY12z1G/GQSkRWvqtiSLOvp+u6/E268+c4bFhDIBzG8X1LdJUMexxd/mEER7GuXbwRWiec/DmyOAIZh8eY/dQ49WsrSZTsHkkKnh95qf7LsBhRFt3I8+NxhuJjOO8IzSL+tGq/3jqpoBRcy9ZG4/lEpuBX4Zzm2Au93wtoIFKODfpOsetSrEGKNQeRBrUZy8h7zPZc5O0iyEmED/MI4h0pf6SEXoPWjUSkb334APnxr/aXgb8Ek7DSiwqB0k0l2zM0bmpx6Gxw8XdvaHCWyNp75dVzIDrXlkchOS2JPyX4ag4SL8seBRm/dJA1a7BzTgdE13XquniLaDlbTWqwB5Wkki9IYMPWi2juGbyY9pzwIw3Dyh4zXA8U5HVl77IHDnTLCZ8a00WvMw2h3IMEDFi/CQqoudtZ0KOv0nlliR0hMViaoVC0M6/gON8V1eCJmpBi9yqYsQdDjjCTEcQh5jvieEY3DRhZoimcfhd84VBJxzdlCs77snDGEJx8Qry B7mzYT1A 8gycm6eJ+fz5aU54+ItSSD2kO5suz8duL7HWI2V/OvZUdjyPlUTi+rvycGDg61qY1Nhlbb0L4HsIyS9y3gevRsqT4YWfNKsB/SyI/cYyg/d4Sj6UvDjpXedFMQR5GPiorVQ+v4blYUa27gYhZ6GRIgWNFTvO8NRdr88O8VOZn8WhR28qnnlYsupQgVleSljjHGC/SbpggPDyJG0rqQHKyCnrckdJtFgW/qUHon3uBSCERqNKjA18ShSLtFKF171vT8IfioIcro02U5cF1b0V+eutH9bFzO5H9XR8uQ/8NIKOUfljz0HSBNKb1kBrCAQRTWVYyMVpOHZ2njWKqIcymlDloL8m+BQWlyEtnvjjVUE4aMKTt6Hh8WP/Dlgu5N8LxD4g54tcWFqzk/TzhCEPtQzRUAe4np4AjXB561Y+lo0tKs4ZufT/q6T91wct4CMFSyGt+jQrrzbsXQOX5fo/oSmR0dshLeJ65XafzKK3By1IE5MmxeNLZ85v5Og== 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: On Thu, 3 Jul 2025 18:34:20 +0100, Matthew Wilcox wrote: > On Thu, Jul 03, 2025 at 06:52:44AM -0700, Christoph Hellwig wrote: > > On Tue, Jul 01, 2025 at 10:48:47PM +0800, alexjlzheng@gmail.com wrote: > > > From: Jinliang Zheng > > > > > > In the buffer write path, iomap_set_range_uptodate() is called every > > > time iomap_end_write() is called. But if folio_test_uptodate() holds, we > > > know that all blocks in this folio are already in the uptodate state, so > > > there is no need to go deep into the critical section of state_lock to > > > execute bitmap_set(). > > > > > > Although state_lock may not have significant lock contention due to > > > folio lock, this patch at least reduces the number of instructions. > > > > That means the uptodate bitmap is stale in that case. That would > > only matter if we could clear the folio uptodate bit and still > > expect the page content to survive. Which sounds dubious and I could > > not find anything relevant grepping the tree, but I'm adding the > > linux-mm list just in case. > > Once a folio is uptodate, there is no route back to !uptodate without > going through the removal of the folio from the page cache. The read() > path relies on this for example; once it has a refcount on the folio, > and has checked the uptodate bit, it will copy the contents to userspace. I agree, and this aligns with my perspective. Thank you for confirming this. Jinliang Zheng. :)