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 F03A6C27C4F for ; Sun, 16 Jun 2024 00:16:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2B3C36B0105; Sat, 15 Jun 2024 20:16:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2649C6B0106; Sat, 15 Jun 2024 20:16:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 12C386B0107; Sat, 15 Jun 2024 20:16:25 -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 E9D566B0105 for ; Sat, 15 Jun 2024 20:16:24 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 6A05F80D52 for ; Sun, 16 Jun 2024 00:16:24 +0000 (UTC) X-FDA: 82234835088.04.A61591E Received: from mail-vk1-f182.google.com (mail-vk1-f182.google.com [209.85.221.182]) by imf22.hostedemail.com (Postfix) with ESMTP id 9037DC0017 for ; Sun, 16 Jun 2024 00:16:22 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ImiIkSx1; spf=pass (imf22.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.182 as permitted sender) smtp.mailfrom=21cnbao@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=1718496980; 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=ePwlJhT+ySjqTc7dIZoR+hHEU/OIMFdQjcBXDYeBNtQ=; b=ngTmDxyR4MywrdJbvivVkICBCMu+fPIK2zQvxWOrWHYdcPc8wdIc5VcEwvUWjL/baSk56J o4/6N+A1pNzdu3FQuioqiC/7YN4nxZLIgK+YhiW0ZzcPrfUzvMh4wMW6OShexV+Sz5ylCm PnIuJck9ek3pApW8i8p71ij/UA3vOOU= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ImiIkSx1; spf=pass (imf22.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.182 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718496980; a=rsa-sha256; cv=none; b=aMR07gCNIUn84IOCUWdQw/YWoChKA0O2vjRJPIAxGMqiWx+a9zKt/q/Kvl1KRYJJ5MXGHQ sPEO22oVKgGYG2y1S3L9rEfKKr5E50YGUl2e5knry2gs6fIPe8dZtJ4JAggMw6/l1xExiM sDV332ritDzQBKqGJAccl954ktdv4aM= Received: by mail-vk1-f182.google.com with SMTP id 71dfb90a1353d-4e93a260becso1047664e0c.1 for ; Sat, 15 Jun 2024 17:16:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718496981; x=1719101781; 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=ePwlJhT+ySjqTc7dIZoR+hHEU/OIMFdQjcBXDYeBNtQ=; b=ImiIkSx1r3zplaGcjxQ4PAUSYKbFjBVozHhj6L4mVZkqt8lN8bWgL9rMJ4KwdEUZMw oVY/EbYVDYSxmdklZveHqW9EuIUsKY0SDamFZZHpnL0KgC1hu8zohVNFrwGzE5rsM12E E+p6+WINnSNMHjdVNDceogGRN+NN0C1mKbeSdHeGwGdxuoKtSphFyaRduxfVVISmiyql Z7sPtFkbUk2mk33DvzmnsWp0zwXJ572mIvJQzD3bypFIvs81FaYjV4T7LeRMmstETCRq 9IbaAN9WEHtO0+B2OWQ2Q2SHS2ZsP1bo9yNQYo1Bze9H6c7VmFKNLT+RSW3xmRskkbU2 Wp8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718496981; x=1719101781; 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=ePwlJhT+ySjqTc7dIZoR+hHEU/OIMFdQjcBXDYeBNtQ=; b=rcLi4oA9RClz/NbH0REfGGMYvlesujKdMQIOp6txk6pubrIPNTGT26bm3pbsngjAqm ktru76r964wizv3bsnKKFrgxt3kWiavvShHz0EZBsn1RzaopL/XdqOxjixArObJ7VFmx DPhxPBYVh0C6ygChDUDvValf899FHW2VNHkMbZVY9SqF6R05QbHlW+fYWuw7vAegw2Ac iggE3kJ1YTpqb3vgnefjCJcSHitgq8QIHFGJoADeQVQwyXy56jnfUzyWszRqVuiuMGKP r7kIfaN7JlEyYDGPmuw4ZKjLV5LAnUrhrXCJVFGZCGu/nJ4hxYdMC0R9rH7onYqVS08T jHLA== X-Forwarded-Encrypted: i=1; AJvYcCXVPxr9UJYSeJY+nPDacfd0qHN38a6g4zIxwb1Xy9ZYxGaRoA7shAg5HBn3ikMTzJnqD6/LnjR0R8Ingp4OW7QQgLk= X-Gm-Message-State: AOJu0Yx0E+3XTCWws1gwpyj2cGrkrrvKKngGVdj0RoQXO3blivc3Odso YxwQCPbDS4XJM3DXrLGYNxjXGxKewozp8Tg/gzEg1h1sam9whtQsCuD0Rnf8feUrUnY05nQB0eN zguuYuBqKeKLkz3Qy5eJMPdbLVOs= X-Google-Smtp-Source: AGHT+IG8OxLtjJZHfDzg2QJET9BBfk6lzEyPAHXgCfW/CIFgXdBcYsVJSJqryy8hAtVksa+xpQ+I6ZfWk3+grrx4sbQ= X-Received: by 2002:a05:6122:4590:b0:4ec:fb8e:fc33 with SMTP id 71dfb90a1353d-4ee3e198a54mr6340153e0c.2.1718496981478; Sat, 15 Jun 2024 17:16:21 -0700 (PDT) MIME-Version: 1.0 References: <20240614100329.1203579-1-hch@lst.de> <20240614100329.1203579-2-hch@lst.de> <20240614112148.cd1961e84b736060c54bdf26@linux-foundation.org> In-Reply-To: <20240614112148.cd1961e84b736060c54bdf26@linux-foundation.org> From: Barry Song <21cnbao@gmail.com> Date: Sun, 16 Jun 2024 12:16:10 +1200 Message-ID: Subject: Re: [PATCH] nfs: fix nfs_swap_rw for large-folio swap To: Andrew Morton Cc: Christoph Hellwig , Trond Myklebust , Anna Schumaker , Steve French , linux-nfs@vger.kernel.org, linux-cifs@vger.kernel.org, linux-mm@kvack.org, Barry Song , Ryan Roberts Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 9037DC0017 X-Stat-Signature: q3qoaxdwtic9hni17he14waqf65kqjyf X-HE-Tag: 1718496982-768920 X-HE-Meta: U2FsdGVkX1+7YnTC/bWrnhzTK6iiIfDOjMfwpnAGDToxlsjekJGius4wrFH6jZuHMp+b9STQOb49J8qsIKFm+gqmmplqV21JiAwIALi+jcEz1XM4/gHwIsFphO9QlNm1ynOEHfYRrQl373YA5a/Vq31wuxfrX9Z1Y2pDXSTZgmLggkUmDDa2xVEatm4Uom4tuAYn7JVQ3xTZ/aWEYrqUQE8DcFJ0vhqDBz6fM+on+YTj3x4Epzv4rYNM2YY52u6+2gbCRXbSplci+QQHyL0p+k0IzMdtpRi++veKbsAnJh4AwgvvcVUB6N0bx8ubTNwWOCHuBcwZxq/jxNHuSs+Z2jKjpap9LeMc0AyHcOMQZjj+0IIuk1rkuMd6gqY5gHMpYBKbBYv3j9JSEbvfkcOvJKw6ZTis4s6CRxvZeekVwSWjTnv4eUNfu+MIrStgxDRY4uyp/9xoBafndNDcbFI/kNQZoC2vtfBVLq7RBhIR1wwFKsROmzUlH/PV5y/sbKwNm+onvpRZTXMwBUjdIjZNRlWqjlxznapeAZu4XNyoH65J1bbC3E+vLNM65NI2MMSFX+s/O5IEH1Z7Y3C08k25yytCQU3ZOlCt9jfJRVJ6l22NN/YyxHG82wwDwEwlMSrYoY/7s++upCpOExmIwRS7KQJpFbzNR7UhuXGjNGQ7jN9cdsjr91wWReezuiodFNQCnjmcMe5rgemgbl3ap8JXje+Oy3PsOehZsXbiAmNfF2BSjHI4wiP4ZqajyhcounvRKAvivtONszhl6nBgj30hyJjkChXko4L1HoW40MBUdZu1U/TG7MYMbxPA0rEGeCsOwwQEXDq/zVsQjXZv11DSqYC9Lb2Bb9sFq58PLkEYta0XZn1Tw0Kb/Q959Xvyn3ay1ccqf7kHKEmAq2cnYcdWIE9ASMScNaIhAL+Xp4ZYrxSIDYBUhsonfikMKm8DAsMrbsJDFIZG//iKPmLnVan 08RH3/XD 7+hI3LiXoc7T+bDC76X6tzuP/at7XiPS28Y65xGyEZmc7Nb8io6nu0UiwbZWVSK79nfgQAS/Nzl9tyFgOxOovT5OCvXuqj8Kg4aVWEpjR7NIhhtMHZ9sDkamyc4n80KFwUDkVjMFh4pBrFZpV8s7Nu/5xhAKhkVzX9Imiqluc1fJqjALAXwobv+2whHr2c1LjdiA+cf0/AgmVaSnms0OI5PfXq3hbTVbvlEcOFWkRhg+21at/dhLV2BCF7btPSOhZP220DmF1ZhSCV4W36RvtGc1MQVE+jHRZlVYY8ElxKCzEtlOMQ1bug/fnjZ6pHWVSLScfU21Td2ahWpchnuigHjKXN2nIcTNOi/6LyeX4fQMHd8dEesWdisKud2mIxpbRlW6uOrPUgDgx9L5x74t9R2j/mA== 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 Sun, Jun 16, 2024 at 5:55=E2=80=AFAM Andrew Morton wrote: > > On Fri, 14 Jun 2024 12:03:25 +0200 Christoph Hellwig wrote: > > > As of Linux 6.10-rc the MM can swap out larger than page size chunks. > > NFS has all code ready to handle this, but has a VM_BUG_ON that > > triggers when this happens. Simply remove the VM_BUG_ON to fix this > > use case. As I understand it, this isn't happening because we don't support mTHP swapping out to a swapfile, whether it's on NFS or any other filesystem. static int scan_swap_map_slots(struct swap_info_struct *si, unsigned char usage, int nr, swp_entry_t slots[], int order) { ... if (order > 0) { ... /* * Swapfile is not block device or not using clusters so un= able * to allocate large entries. */ if (!(si->flags & SWP_BLKDEV) || !si->cluster_info) return 0; } } However, I'm pleased to see this patch, as we might need it someday. > > > > ... > > > > --- a/fs/nfs/direct.c > > +++ b/fs/nfs/direct.c > > @@ -141,8 +141,6 @@ int nfs_swap_rw(struct kiocb *iocb, struct iov_iter= *iter) > > { > > ssize_t ret; > > > > - VM_BUG_ON(iov_iter_count(iter) !=3D PAGE_SIZE); > > - > > if (iov_iter_rw(iter) =3D=3D READ) > > ret =3D nfs_file_direct_read(iocb, iter, true); > > else > > I'm thinking this should precede "mm: swap: entirely map large folios > found in swapcache", or be a part of it. > > Barry/Chuanhua, any opinions? The patch =E2=80=9Cmm: swap: entirely map large folios found in swapcache= =E2=80=9D does not perform any I/O operations; it only maps the accessed large folio within th= e swapcache. Therefore, this patch can be considered independent. BTW, we haven't supported swapping out mTHP to nfs swapfile. So, this patch is future-proof and can serve as a precedent if we want to extend mthp swapout/swpin to non-blkdev systems. Please correct me if I'm wrong, Ryan. Thanks Barry