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 DD5D7C3ABA9 for ; Tue, 29 Apr 2025 08:54:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 31E5D6B0005; Tue, 29 Apr 2025 04:54:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2D1906B0006; Tue, 29 Apr 2025 04:54:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 198DC6B0007; Tue, 29 Apr 2025 04:54:33 -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 EE5E06B0005 for ; Tue, 29 Apr 2025 04:54:32 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 268761217A6 for ; Tue, 29 Apr 2025 08:54:33 +0000 (UTC) X-FDA: 83386470426.21.732EF4A Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) by imf29.hostedemail.com (Postfix) with ESMTP id 720FB12000F for ; Tue, 29 Apr 2025 08:54:31 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Y3wvUcCp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.167.46 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745916871; a=rsa-sha256; cv=none; b=MHXGk0FR+ptd2P6KIVGtC1MA1Wr/GyCBcwWCy8p7qjdmzL/FJ6wxyDFPhN3V8cedEXhn+n Vp/96MRfhVz4W/lXLfcjgsnuXyi15Z6BQ82nslbw5Yg9eqX0Pt9dkxwTIuG8nRSlGWCC9D 8gG2+NBXJ1ifBOMBzcXnKqYq3GT0NPo= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Y3wvUcCp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.167.46 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745916871; 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=givnnG9/XK1tF7pF7UEo7kRnAW3Ngj27OlIC1n3nuoY=; b=C+5ZR9Nn74ogVWmvhZf38Y4XGei/Mx5C/jNf5n1vRImp8HJqi3K+zZ0Zu6tcOtYlwvC8mL jMKpDyqXoh3de93Ky/lTa8gM2W16+5zJ+XJIfycyR0CLa1czk7A5EdUtySvw7H4Zbxud4A iwI7Gy9XL4nqlSPs641NMFPddQexE/M= Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-5493b5bc6e8so6710469e87.2 for ; Tue, 29 Apr 2025 01:54:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745916869; x=1746521669; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=givnnG9/XK1tF7pF7UEo7kRnAW3Ngj27OlIC1n3nuoY=; b=Y3wvUcCpyOwsFPT2IDVMXcqoyw5cQL/t2GtdlxYFpiK+wxtMUl73uQMG6r5TYlX6Rg ddK8VpOSyH2j4MQngZRjITvR+rP8i8lnsXUxgxSzVwRvawt6a7FBn/ndaWHOCtr1Qka7 K/vpqpKNMXob/uVTVrwP9ly+0rDQkjpMyMr+zwR3rCkpiaHtmp5Ejmasm+6WUBG+wtFg ldiTmhLfZYfIh23ug4AznUdHMxkBsIVhNSHNLLui5XHORRlxxB/dwJGVzLNN3SMMRzmw Xxf3kvnhT/UDa49FDGyEw2KVPoshdrTX2Ie221xV3SqOtWHbFdwWe9hcEpPygX7heUdy FxPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745916869; x=1746521669; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=givnnG9/XK1tF7pF7UEo7kRnAW3Ngj27OlIC1n3nuoY=; b=WGlOSmwUsUoAKFVuJ3rvErLF1z763RNCIOvZqHYtInyAElKzvp7d0C3nL+Yn3iyguS SJnWygH7GuZ5eDn5y1bJE7k4IoElbjyNBld1kGWfvVsQ/m1jj/gFAKx/DJGKHmvLVm7s YemcSRpjMVVhEssPPN7urjbFKxn5fE+rwlKGWMqlQw86NbrQX0R18nCQR7PNbcoYOj2K E8j6WFMpMR4drcICvl/OFnmL84BzsCL+sPcb1e2T0RN/0nfebyzKapsvpCVtw7Gx7wGp U8cXjc6bKlRDfuLt3KunupIVUY+TNuqeU0jc7YT4jSwjGF2kEQmePwmHp3xzYUX1Worh PhvA== X-Gm-Message-State: AOJu0YwkqQNcfWYN/D0iMw5QQksx3zfSNtoTdEAUCRFsa2aWE3WNc6Ph R3El10J2eMD69/wZSE/gWo2WMHQqVdIXK6y6lgcEc32eRxRYl8PYnOhLsL1ryRHqfBvujvUf4/2 UsOBuRZxDN3uUCbtHzA8rFC4CjAY= X-Gm-Gg: ASbGncuZmFsZ9rcL1JBZl/Q5acShOfE3ef6HpwSGt5klf8hsk3Zo/lGPQhgBlIJZP+y Q94cHCRGX5gXIT8HbfwNA9f4xnidZ5zHrjGMwH63NPidtvp5MHe+M+owbpTUlN66jlIzmfmCoEz PZT//yF3n/6o3yFQgqNBgpdZ3aZE00Ktec X-Google-Smtp-Source: AGHT+IHm+fm75hv4juuaVFiSQHyV15+uewvSg8hjHCInt+PYvS2I7PqnXcopg+MtW7d7dQKaqtX6qV0zbF+jfjXa3PE= X-Received: by 2002:a05:651c:987:b0:30c:514c:55d4 with SMTP id 38308e7fff4ca-31d34872545mr8201611fa.16.1745916869066; Tue, 29 Apr 2025 01:54:29 -0700 (PDT) MIME-Version: 1.0 References: <20250427185908.90450-1-ryncsn@gmail.com> <20250427185908.90450-2-ryncsn@gmail.com> In-Reply-To: From: Kairui Song Date: Tue, 29 Apr 2025 16:54:11 +0800 X-Gm-Features: ATxdqUF6LDYN1wUvO9L0OjUIL4UUQll5MqpMC0XWhL9RW16HLnlYFIFFC3IpScw Message-ID: Subject: Re: [PATCH 1/6] fuse: drop usage of folio_index To: Matthew Wilcox Cc: linux-mm@kvack.org, Andrew Morton , David Hildenbrand , Hugh Dickins , Chris Li , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , linux-kernel@vger.kernel.org, Miklos Szeredi , Joanne Koong , Josef Bacik , linux-fsdevel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: 720FB12000F X-Rspamd-Server: rspam04 X-Stat-Signature: 8rwbxrs6kdiek3f7a67tbaqh9p66wiy9 X-HE-Tag: 1745916871-303982 X-HE-Meta: U2FsdGVkX1+eos2qr3RAbPVC5sxp7lGPBXDFyLMsdIs5eGtGWaMhs9GwFHbZjy+SKGgtVSG3DoV8fXdbOXrEuUYjI9SeW7c9tp4gqB0JRYlGYLtfErvVCD/ulxzHTFtfYQR3DLMWWq4HBIAV3GNy7v2n6KlvvcRyz/sslEMFXFB7/yVaM4vOEM/6vHCm70zy+9yVvP9EHmeekEChPrr7OhBEc6pWI4VVeglmlYPr5rHbqAwLaKXbYOPbrMH5AJ2NSPQZYjMLkhTfkpkx+/03zELnpI6JevA1EiMev0gJeEWzvbNhjOm1tRN20tIuhO3LGY0fQAFGjjYxyjyFUwm3CoRF459n9K0wqQ4dCWQeyssINEWk4e5DMRA4G7uE6fLFfgv0G3GYGNefbOHdd/L/Dg3r7w5VZKHgnz6b+8MCKiuKWqj13GOws/FyOevw+eqVKfnc4poUAVzVNvvg+TO8YdOcG8R2ZBZEt6VO2jzvKbc6kSBc+xqG5P1KMqenzoJ8Y9pGryRuFt2VXThu6qUw8lsRAlJqU44yX7oiX8rKEjJAz4zjwdT6Mxla1aFieWzw1zAczvHae3+CnM04bkqyZezjcTWUX5knoIqQQDkoI9jbzo7+0G3t7FYNU0dVKzBLXcUJDF4QNNoaJNMxCTixKtHJkU5uDpvkOIYMwJl4WXzgsBefpmLsLQzp3TLNFG1E++icf9bBrzfWD+1ipChYpaDT2OI3B4FfgKgU2RdxNWVjVbaCfIwZuwPn+hK5nxJENk9CbpFJg7KOnCF7uca8F4APTkUH+Y2xwANR+XbjYyAfXOj86SJLMz9+ZEHweUDKa1/FsOBTMzxA9yoU4ZUvLwTFVyn7V+EknR9SMSDmV/4WzhG6OlKC44UjBIRI8MS8bCnpxtbTSrUKK9cuk7+NgOsEx4rcpj/8jIc4koiI50pxX/MjfaA6OLVZR4nqzsQqFomVSURdmpOrDgSAZjv YT3t4iMN fIjRq2bQuAqR128U9a57eVh5vgw== 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 Mon, Apr 28, 2025 at 8:38=E2=80=AFAM Matthew Wilcox wrote: > > On Mon, Apr 28, 2025 at 02:59:03AM +0800, Kairui Song wrote: > > folio_index is only needed for mixed usage of page cache and swap > > cache, for pure page cache usage, the caller can just use > > folio->index instead. > > > > It can't be a swap cache folio here. Swap mapping may only call into f= s > > through `swap_rw` and that is not supported for fuse. So just drop it > > and use folio->index instead. > > > > uigned-off-by: Kairui Song > > Cc: Miklos Szeredi > > Cc: Joanne Koong > > Cc: Josef Bacik > > Cc: linux-fsdevel@vger.kernel.org > > Signed-off-by: Kairui Song > > Reviewed-by: Matthew Wilcox (Oracle) Thanks for the review. > > > @@ -2349,7 +2349,7 @@ static bool fuse_writepage_need_send(struct fuse_= conn *fc, struct folio *folio, > > return true; > > > > /* Discontinuity */ > > - if (data->orig_folios[ap->num_folios - 1]->index + 1 !=3D folio_i= ndex(folio)) > > + if (data->orig_folios[ap->num_folios - 1]->index + 1 !=3D folio->= index) > > return true; > > This looks like a pre-existing bug. > > - if (data->orig_folios[ap->num_folios - 1]->index + 1 !=3D folio_i= ndex(folio)) > + prev_folio =3D data->orig_folios[ap->num_folios - 1]; > + if (prev_folio->index + folio_nr_pages(prev_folio) !=3D folio->in= dex) > return true; > It seems FUSE does not work with high order folios yet, a lot of allocation and operation here are assuming folio size =3D=3D PAGE_SIZE. I think I'll just leave it here.