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 B3CDCC25B0D for ; Mon, 8 Aug 2022 19:34:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 153EC8E0005; Mon, 8 Aug 2022 15:34:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F0A478E0002; Mon, 8 Aug 2022 15:34:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AEC378E0006; Mon, 8 Aug 2022 15:34:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 364BA6B0075 for ; Mon, 8 Aug 2022 15:34:50 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 13C7E1C5CB5 for ; Mon, 8 Aug 2022 19:34:50 +0000 (UTC) X-FDA: 79777427940.11.3E495C4 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf09.hostedemail.com (Postfix) with ESMTP id 48083140025 for ; Mon, 8 Aug 2022 19:34:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:In-Reply-To:References; bh=b1aYHgmVBDx196FBrfvpLxOOghp+C2Q88+Xe0k26hhE=; b=rAmPbj8Lx3NzZbOm2eR+5WkINt A9DLq9ziswL7TEGUkkPLAFl8MeyAGSM4sddgC3Fze5soujXnRW4ajyAHawuAcH5Q9ZCKGcItknI36 kNl6iYPm/eJBIU2VvUhcg+KrvcbOnmyNCDCGQoKk4289Rv3CulPlM+I29WUqGvKK7tmllWzqxy1vl 9ogZ/VIePH/Qq9H8KbAEs3cwSTj7fxMz3zHCN0kFahV6fprcSABdIYd4pQ3r+jiQuxSTe9YLSmcIj ZlBmp9aUxc314CzMz3oMtZ3MlLurSfN7aNm/FVXRjPVn0MbVaB+xmq+X1CgF2VEKce02bhxs5DHAs MrxwmjjA==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1oL8WG-00EArO-L4; Mon, 08 Aug 2022 19:34:40 +0000 From: "Matthew Wilcox (Oracle)" To: linux-mm@kvack.org Cc: "Matthew Wilcox (Oracle)" , hughd@google.com Subject: [PATCH 00/59] MM folio changes for 6.1 Date: Mon, 8 Aug 2022 20:33:28 +0100 Message-Id: <20220808193430.3378317-1-willy@infradead.org> X-Mailer: git-send-email 2.37.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1659987289; 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:references:dkim-signature; bh=b1aYHgmVBDx196FBrfvpLxOOghp+C2Q88+Xe0k26hhE=; b=QKdmJpfpSnBc48Ve8smRwVJbtwJFsXoZllr+oswXp3cKoh4BX2JU/fXaD8hJflVjebENLW dSOSYzQN9qFBSpoSpagQjgKg84mqxYB3RRE7OUU2/sIKq8UTc4+ypbrECrQNlNtAKcGi7Y GiMTyUaXf26VLo/BaSSBcknUSsQtZ54= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=rAmPbj8L; dmarc=none; spf=none (imf09.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1659987289; a=rsa-sha256; cv=none; b=Y2aYE4FZps41Xv6B3kCPYH7vlo6/HSGTMpoqqwQ6udXUYbVvCxeqUoGBIlz4UBjC8+08gk G5JTfSfzA4qL70SmQ/mhktkM7x9Oef9JkPIZuScKw6+Wtg5TMfl8e+LeNLVInPF4CK2oT8 i3F/FDTqzoPkRpan4GO10fQmpc1o2N4= X-Rspamd-Queue-Id: 48083140025 Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=rAmPbj8L; dmarc=none; spf=none (imf09.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: hy8d194tternp8ebe8opusjf9pyjq8fp X-HE-Tag: 1659987288-63884 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: 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. 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