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 BFFCED2FFE1 for ; Fri, 18 Oct 2024 09:24:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5A4A76B0083; Fri, 18 Oct 2024 05:24:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 555566B009F; Fri, 18 Oct 2024 05:24:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 444156B00A0; Fri, 18 Oct 2024 05:24:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 29F5C6B009F for ; Fri, 18 Oct 2024 05:24:49 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 63D61816DF for ; Fri, 18 Oct 2024 09:24:38 +0000 (UTC) X-FDA: 82686188046.18.109653B Received: from out30-113.freemail.mail.aliyun.com (out30-113.freemail.mail.aliyun.com [115.124.30.113]) by imf25.hostedemail.com (Postfix) with ESMTP id 3619CA0004 for ; Fri, 18 Oct 2024 09:24:37 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=xMzT77sa; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf25.hostedemail.com: domain of jefflexu@linux.alibaba.com designates 115.124.30.113 as permitted sender) smtp.mailfrom=jefflexu@linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729243452; a=rsa-sha256; cv=none; b=Cabr1b9V0jJTg8oVr9oHAJ9rmfQEgH0F/EHmwDQt8mZz8B8us16fECNJVUAyOmycQnDP2B 8S/Hwu9Y3fmwzOvOgm6lzdbcBI3U3jNGiaMV0xiGeecNMNGFh9iVfXWmrniWjXO7Jms6xz 9LRt+9/Uo8l0cAsAhjQivXp+4Qdn4Kg= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=xMzT77sa; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf25.hostedemail.com: domain of jefflexu@linux.alibaba.com designates 115.124.30.113 as permitted sender) smtp.mailfrom=jefflexu@linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729243452; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=5XuejgPzIVqDuPyLye/qQgpabzNMLIvSL8VC78yW/wY=; b=fg60wx5z200sw1Ah1+mdHsRdnFCZAR0jL+CdSTpBcXSGP++4KZXpFqhhK63gndMM55rXJi 7V2zB++KKVMlOv4BGR3ZMFijMMykWjd0Fo/htcfGqpi38nWUYSuTxIa02roSRmYV9eczU/ kKFenGzs7B2FnKCO5NbVAgUlFpYJ6kc= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1729243480; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=5XuejgPzIVqDuPyLye/qQgpabzNMLIvSL8VC78yW/wY=; b=xMzT77saMNnCYfLLhpoDGcGOueY6eVhximzlFqzsnRiUZJee62TJjaHzpleBkAY+bN0oQcmvytFZqUdW0oFoOSpytbE3TeCPj2t5GQsuTfa/VZ7eGeg+OKbEmy8/AkPB8kJ57Ku1w5wzWtnEwCLnBx8TmGbsd2cQ0zFG/20s8so= Received: from 30.221.145.79(mailfrom:jefflexu@linux.alibaba.com fp:SMTPD_---0WHNlHCJ_1729243478 cluster:ay36) by smtp.aliyun-inc.com; Fri, 18 Oct 2024 17:24:39 +0800 Message-ID: <0ba71b33-71ca-4dc0-a01b-7744933ae6d4@linux.alibaba.com> Date: Fri, 18 Oct 2024 17:24:36 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 2/2] fuse: remove tmp folio for writebacks and internal rb tree To: Joanne Koong , miklos@szeredi.hu, linux-fsdevel@vger.kernel.org Cc: josef@toxicpanda.com, bernd.schubert@fastmail.fm, hannes@cmpxchg.org, shakeel.butt@linux.dev, linux-mm@kvack.org, kernel-team@meta.com References: <20241014182228.1941246-1-joannelkoong@gmail.com> <20241014182228.1941246-3-joannelkoong@gmail.com> Content-Language: en-US From: Jingbo Xu In-Reply-To: <20241014182228.1941246-3-joannelkoong@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: 9cukxchoc57aajty51e9xsr3y7u5tmnk X-Rspamd-Queue-Id: 3619CA0004 X-Rspamd-Server: rspam02 X-HE-Tag: 1729243477-749920 X-HE-Meta: U2FsdGVkX1+9fAQ3a49eZ6DMi3eKPxhSMPHU4txVuhRxaFvmA4E0Omk1erkEvaxh1N3uO1Ida2oyQjdmPTfQZVxKl0ED/YYU+sEGAGdRGvNGWRLhdphoqxieGJB2v7wu85addQRRnLw69PGJexqvCRaBlnyW2N2NpFdQYeJsW1qx3DjNcrZoMKkVc/7JO+J2j7rEnmOS0Dw/GLmmx0aGW6wousiboU9PLvpgVnNg6So+PECSK9oiXikB5852JryYYTGxEmWjeuliHcFdNCit8ojtlWEsk5l1OfCNP+bhINK+Q3hdhtw3TKG653/+QBczjXGIrjqkOush+wzzLPjv7/D1hu0DE3yfUefO1Zs7dFvckyqkgp4+6NOKWcsNw06pLI35fsAhSxIzdxJrxLAkbx3gfPF378d33cxagkxDCdp/WWZhU/ICoVvxubn5zGwDDpXZsjeNgwchXoC6DYfNqiFvLHIhczs/d9KRhqSF2PLQJffzhNGvkOybW+Rmiu1BGlaAU3vyjhXxeVzE37eOwHFcqC1o+9LdKcqVcZ8eLK6H5FmSce85KEmqEj+ZhtXweG6aZVr/5EGvbj0OMtcG+krb79NGHxm8zdGTspouOz/X26BJkTfB8zNuG6rPnHFZNAB9ISqzABjvJjcHA546rygXT42bBu7bcbshZZvpBI1g2hBL9WGQdB4/nISNYpXr8UbfTWBt0n2EbN7qit8mPL7FbVHQi33xsDYhqmt0EKkMPACSXUh1Kha0IPaQLn6+N7X+Egb7135FkAmKbSzYk4i07A/K3ZIw8Ibp3JChbRxEXse4+2PtFVYyRfasmKo9VIOxm9l4U1Cn80mP3FVxciGwCYrkJ/sp1qM0miSNnBdO+mW9gyl/pQRgMx7t+6TIpqJkS08RiZu7NL3OagZDSgSF95jEubX+AqpzUG80XdtvUvfNUCjReyYyXaw134V68N0EMROI+BWx5hfC1VY o+IZdZV7 xiVeiItu0HO1qeA8QEO9hORuhIyWGoonDcDKiUEjYOAo+1YdcDKfPICRnz9ve+xhd9kwHEYW7b8OWIHA8v+R4qt606zAEgjZqrjP8DyEvll8kxx+uxSK06Lw8jvXn7Cy/Hhs8f2a395OdI6Ebetz8LoaM4I+9hSjh/6Mcs+HY09HepV44zxAxOJbOJu2+/5RlbU/zROKouBiITmvj2TA8vcw7ObuSrbAdBUZqVlEKEazE6ID0tQ+2RPec4Q== 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 10/15/24 2:22 AM, Joanne Koong wrote: > static void fuse_writepage_args_page_fill(struct fuse_writepage_args *wpa, struct folio *folio, > - struct folio *tmp_folio, uint32_t page_index) > + uint32_t page_index) > { > struct inode *inode = folio->mapping->host; > struct fuse_args_pages *ap = &wpa->ia.ap; > > - folio_copy(tmp_folio, folio); > - > - ap->pages[page_index] = &tmp_folio->page; > + folio_get(folio); Why folio_get() is needed? > > @@ -2203,68 +2047,11 @@ static void fuse_writepages_send(struct fuse_fill_wb_data *data) > struct fuse_writepage_args *wpa = data->wpa; > struct inode *inode = data->inode; > struct fuse_inode *fi = get_fuse_inode(inode); > - int num_pages = wpa->ia.ap.num_pages; > - int i; > > spin_lock(&fi->lock); > list_add_tail(&wpa->queue_entry, &fi->queued_writes); Could we also drop fi->queued_writes list and writectr counter after we dropping the temp folio? I'm not sure. When I grep all callsites of fuse_set_nowrite(), it seems that apart from the direct IO path(fuse_direct_io -> fuse_sync_writes), the truncation related code also relies on this writectr mechanism. -- Thanks, Jingbo