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 C886CC00140 for ; Thu, 11 Aug 2022 02:17:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ECFB86B0073; Wed, 10 Aug 2022 22:17:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E7DE36B0074; Wed, 10 Aug 2022 22:17:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D45C78E0001; Wed, 10 Aug 2022 22:17:21 -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 C49416B0073 for ; Wed, 10 Aug 2022 22:17:21 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 9BF2A1206D5 for ; Thu, 11 Aug 2022 02:17:21 +0000 (UTC) X-FDA: 79785699882.17.921E35A Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) by imf01.hostedemail.com (Postfix) with ESMTP id 4200D4018D for ; Thu, 11 Aug 2022 02:17:21 +0000 (UTC) Received: by mail-qv1-f53.google.com with SMTP id b7so12388513qvq.2 for ; Wed, 10 Aug 2022 19:17:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc; bh=sK+TTF3p8wio9jbrKduCNeqmrsJ07tKYJMvgFL0tupg=; b=ZUsG+80hPj+cptmn4IZsl+xVmjSItL9IzZ0ZvJTnTQHGXHPniyIybB5bpYiZAnkg60 Ev1LxLUC3Uk2c22c0SCpc4PDRyjRxZr1dnifq6rLmqiMXlrRt80x+6ZLBoN6++SkbCd/ VJZzETOUDqWbhPqW6uiFMBYwTJ132NgCIWsxWZkAXxrRDhJBskmz3TGxF7Inh9tFRhgv 4dF36v5OqeugihBcjue/gGQw5N5fX7FEWaYCvDC7u2htj7X72rVkkdAiKbexdXQQOsbs rjReAQlEcj6JNC0HLEI0rKjqSj/qELnlc0XG6Yb6CMv7DvxhVVt8+IG4TsPl9ghENr3t gLGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc; bh=sK+TTF3p8wio9jbrKduCNeqmrsJ07tKYJMvgFL0tupg=; b=7Id9FVTaTt6pmAqqRF+1VZnXCzziR+o+o3ujhNgjZyRSIlTfKiOEX9ofOsYOv544XW fARw4zzJs1rUMF0U9hhxIMTipbxVPDl6aj/5zqKD/y9hQsJ00OV+H0S1rdaPPpg1LoRo /BThpSwO8rppfoyCId/VgAMPTFT68hDfor2Abnm7x+X6A3fhDTb81uTju0cqhlXNyuzr xHy1yg2SIgVKrf2qz8P5xUlZFRD2m64FmM5ecTLxqlhjUVe2kDcr5w1U8MZUEadQ/csp vexEBmW8arfhBnS+AsVPzW+ePVaGW/g6Wh2BHIr2t29vehGidOWGiI5sRqMAhhQsr4EK yudw== X-Gm-Message-State: ACgBeo2uSeXH//CEW3ztkUwe9I7Lt7z8SnH8vgRH1JOoirrrjoiFxmzW kKPWpYK+QnkAvAw3t8/BnZHJAw== X-Google-Smtp-Source: AA6agR6R0hYZ2jyfXvbdO6Lmjpc9twPnc2e5U60+UkB0BwAmUMoSfqsccV+1aqaAnUNeNjDOsa1syw== X-Received: by 2002:a05:6214:f27:b0:476:9d88:2597 with SMTP id iw7-20020a0562140f2700b004769d882597mr26356943qvb.45.1660184240024; Wed, 10 Aug 2022 19:17:20 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id ew14-20020a05622a514e00b00342f917444csm883484qtb.85.2022.08.10.19.17.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 19:17:19 -0700 (PDT) Date: Wed, 10 Aug 2022 19:17:04 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.anvils To: "Matthew Wilcox (Oracle)" cc: linux-mm@kvack.org, hughd@google.com, Andrew Morton Subject: Re: [PATCH 00/59] MM folio changes for 6.1 In-Reply-To: <20220808193430.3378317-1-willy@infradead.org> Message-ID: <94fcc199-a02b-ce2e-6736-4741c7e6b18@google.com> References: <20220808193430.3378317-1-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1660184241; a=rsa-sha256; cv=none; b=R0Tnzj9aLvSnXdAYbtc7TZmZscLgR9xG68lotnT8SzQUqigjCPKKoSvMgg+uEHN4O2xD2a N02929m9oaQJZhACmoHMtyKL+NG5NqRu+xB7s6P7q7aObL+aZ8WiJKozZt7YPcLQ7vZY0v lsZoDA+OPFMRtw0dcGfdDReRY50OUtI= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=ZUsG+80h; spf=pass (imf01.hostedemail.com: domain of hughd@google.com designates 209.85.219.53 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1660184241; 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=sK+TTF3p8wio9jbrKduCNeqmrsJ07tKYJMvgFL0tupg=; b=J7nat+tw5x3yDqT6DTyUZ5JXp5ZBcSAkAhfcz5S8SaX7nJ8qW8h8DmAJtSWUzaskUkOW9m sk+5RAYPps+3rpx5uLFEQVUFGw+uLpENzeY+6aP5TsM02SVgD2I8en8SLNQS3TEBdzV50m 8BTDyUkKaaRL2oxyJQf2OzirbqSDCrI= X-Rspamd-Queue-Id: 4200D4018D Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=ZUsG+80h; spf=pass (imf01.hostedemail.com: domain of hughd@google.com designates 209.85.219.53 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com X-Rspam-User: X-Rspamd-Server: rspam12 X-Stat-Signature: sanu78u8enf6jkmgcfcydy9mn5ayr9nn X-HE-Tag: 1660184241-187890 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 Mon, 8 Aug 2022, Matthew Wilcox (Oracle) wrote: > The first three patches I hope are added into 6.0 before release (and > the one cc:stable gets backported to 5.19). > > My focus this round has been on shmem. I believe it is now fully > converted to folios. Of course, shmem interacts with a lot of the swap > cache and other parts of the kernel, so there are patches all over the MM. > > This patch series survives a round of xfstests on tmpfs, which is nice, > but hardly an exhaustive test. Yes, xfstests fine on tmpfs (64-bit or 32-bit, huge or not). Just one line wrong, in do_swap_page(): I'll respond to 18/59 on that. I have not looked into the 59 patches at all, but did search through the total diff, to find the cause for that problem; and having got that far, thought I'd best look through the remainder too: I found nothing more that needs to be changed. Hugh > > Matthew Wilcox (Oracle) (59): > mm: Fix VM_BUG_ON in __delete_from_swap_cache() > shmem: Update folio if shmem_replace_page() updates the page > vmscan: Check folio_test_private(), not folio_get_private() > mm/vmscan: Fix a lot of comments > mm: Add the first tail page to struct folio > mm: Reimplement folio_order() and folio_nr_pages() > mm: Add split_folio() > mm: Add folio_add_lru_vma() > shmem: Convert shmem_writepage() to use a folio throughout > shmem: Convert shmem_delete_from_page_cache() to take a folio > shmem: Convert shmem_replace_page() to use folios throughout > mm/swapfile: Remove page_swapcount() > mm/swapfile: Convert try_to_free_swap() to folio_free_swap() > mm/swap: Convert __read_swap_cache_async() to use a folio > mm/swap: Convert add_to_swap_cache() to take a folio > mm/swap: Convert put_swap_page() to put_swap_folio() > mm: Convert do_swap_page() to use a folio > mm: Convert do_swap_page()'s swapcache variable to a folio > memcg: Convert mem_cgroup_swapin_charge_page() to > mem_cgroup_swapin_charge_folio() > shmem: Convert shmem_mfill_atomic_pte() to use a folio > shmem: Convert shmem_replace_page() to shmem_replace_folio() > swap: Add swap_cache_get_folio() > shmem: Eliminate struct page from shmem_swapin_folio() > shmem: Convert shmem_getpage_gfp() to shmem_get_folio_gfp() > shmem: Convert shmem_fault() to use shmem_get_folio_gfp() > shmem: Convert shmem_read_mapping_page_gfp() to use > shmem_get_folio_gfp() > shmem: Add shmem_get_folio() > shmem: Convert shmem_get_partial_folio() to use shmem_get_folio() > shmem: Convert shmem_write_begin() to use shmem_get_folio() > shmem: Convert shmem_file_read_iter() to use shmem_get_folio() > shmem: Convert shmem_fallocate() to use a folio > shmem: Convert shmem_symlink() to use a folio > shmem: Convert shmem_get_link() to use a folio > khugepaged: Call shmem_get_folio() > userfaultfd: Convert mcontinue_atomic_pte() to use a folio > shmem: Remove shmem_getpage() > swapfile: Convert try_to_unuse() to use a folio > swapfile: Convert __try_to_reclaim_swap() to use a folio > swapfile: Convert unuse_pte_range() to use a folio > mm: Convert do_swap_page() to use swap_cache_get_folio() > mm: Remove lookup_swap_cache() > swap_state: Convert free_swap_cache() to use a folio > swap: Convert swap_writepage() to use a folio > mm: Convert do_wp_page() to use a folio > huge_memory: Convert do_huge_pmd_wp_page() to use a folio > madvise: Convert madvise_free_pte_range() to use a folio > uprobes: Use folios more widely in __replace_page() > ksm: Use a folio in replace_page() > mm: Convert do_swap_page() to use folio_free_swap() > memcg: Convert mem_cgroup_swap_full() to take a folio > mm: Remove try_to_free_swap() > rmap: Convert page_move_anon_rmap() to use a folio > migrate: Convert __unmap_and_move() to use folios > migrate: Convert unmap_and_move_huge_page() to use folios > huge_memory: Convert split_huge_page_to_list() to use a folio > huge_memory: Convert unmap_page() to unmap_folio() > mm: Convert page_get_anon_vma() to folio_get_anon_vma() > rmap: Remove page_unlock_anon_vma_read() > uprobes: Use new_folio in __replace_page() > > include/linux/huge_mm.h | 5 + > include/linux/memcontrol.h | 4 +- > include/linux/mm.h | 12 +- > include/linux/mm_types.h | 30 ++- > include/linux/rmap.h | 7 +- > include/linux/shmem_fs.h | 6 +- > include/linux/swap.h | 35 ++-- > kernel/events/uprobes.c | 28 +-- > mm/folio-compat.c | 6 + > mm/huge_memory.c | 95 +++++----- > mm/khugepaged.c | 7 +- > mm/ksm.c | 8 +- > mm/madvise.c | 49 ++--- > mm/memcontrol.c | 21 +-- > mm/memory-failure.c | 2 +- > mm/memory.c | 151 ++++++++------- > mm/migrate.c | 107 ++++++----- > mm/page_io.c | 21 ++- > mm/rmap.c | 33 ++-- > mm/shmem.c | 374 ++++++++++++++++++------------------- > mm/swap.c | 19 +- > mm/swap.h | 16 +- > mm/swap_slots.c | 2 +- > mm/swap_state.c | 113 +++++------ > mm/swapfile.c | 159 ++++++++-------- > mm/truncate.c | 2 +- > mm/userfaultfd.c | 14 +- > mm/vmscan.c | 263 +++++++++++++------------- > 28 files changed, 810 insertions(+), 779 deletions(-) > > -- > 2.35.1