All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@infradead.org>
To: David Hildenbrand <david@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Hugh Dickins <hughd@google.com>,
	Alex Sierra <alex.sierra@amd.com>,
	Alistair Popple <apopple@nvidia.com>,
	Miaohe Lin <linmiaohe@huawei.com>,
	Mike Rapoport <rppt@kernel.org>,
	William Kucharski <william.kucharski@oracle.com>
Subject: Re: [GIT PULL] Folio patches for 5.18 (MM part)
Date: Mon, 21 Mar 2022 17:49:26 +0000	[thread overview]
Message-ID: <Yji6plPgEAeWuq38@casper.infradead.org> (raw)
In-Reply-To: <74cd5e99-a52b-610c-89aa-a5fac43cdab6@redhat.com>

On Mon, Mar 21, 2022 at 06:03:11PM +0100, David Hildenbrand wrote:
> > OK, so you object to the last 12 patches from Alistair and Alex?  And
> > you're OK with the preceeding 15 patches from Christoph?  I can put
> > together a pull request for that combination.
> > 
> 
> Yes, I'm only concerned about the new feature (DEVICE_COHERENT),
> essentially what is still under discussion in [1] and [2]
>   [PATCH v6 00/10] Add MEMORY_DEVICE_COHERENT for coherent device memory
>   mapping
>   [PATCH v2 0/3] Migrate device coherent pages on get_user_pages()
> 
> I think these should be the patches from Alex and Alistair. I'm happy to
> see Christoph's ZONE_DEVICE refocunt changes upstream ;)

OK.  I've pushed out folio-5.18c:

The following changes since commit f71077a4d84bbe8c7b91b7db7c4ef815755ac5e3:

  Merge tag 'mmc-v5.17-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc (2022-02-16 12:09:22 -0800)

are available in the Git repository at:

  git://git.infradead.org/users/willy/pagecache.git tags/folio-5.18c

for you to fetch changes up to 2a3c4bce3edb0d54983384aa8a88c0da330638f4:

  mm/damon: minor cleanup for damon_pa_young (2022-03-21 13:01:36 -0400)

----------------------------------------------------------------
Folio changes for 5.18

 - Rewrite how munlock works to massively reduce the contention
   on i_mmap_rwsem (Hugh Dickins):
   https://lore.kernel.org/linux-mm/8e4356d-9622-a7f0-b2c-f116b5f2efea@google.com/
 - Sort out the page refcount mess for ZONE_DEVICE pages (Christoph Hellwig):
   https://lore.kernel.org/linux-mm/20220210072828.2930359-1-hch@lst.de/
 - Convert GUP to use folios and make pincount available for order-1
   pages. (Matthew Wilcox)
 - Convert a few more truncation functions to use folios (Matthew Wilcox)
 - Convert page_vma_mapped_walk to use PFNs instead of pages (Matthew Wilcox)
 - Convert rmap_walk to use folios (Matthew Wilcox)
 - Convert most of shrink_page_list() to use a folio (Matthew Wilcox)
 - Add support for creating large folios in readahead (Matthew Wilcox)

----------------------------------------------------------------
Christoph Hellwig (14):
      mm: remove a pointless CONFIG_ZONE_DEVICE check in memremap_pages
      mm: remove the __KERNEL__ guard from <linux/mm.h>
      mm: remove pointless includes from <linux/hmm.h>
      mm: move free_devmap_managed_page to memremap.c
      mm: simplify freeing of devmap managed pages
      mm: don't include <linux/memremap.h> in <linux/mm.h>
      mm: remove the extra ZONE_DEVICE struct page refcount
      fsdax: depend on ZONE_DEVICE || FS_DAX_LIMITED
      mm: generalize the pgmap based page_free infrastructure
      mm: refactor check_and_migrate_movable_pages
      mm: refactor the ZONE_DEVICE handling in migrate_vma_insert_page
      mm: refactor the ZONE_DEVICE handling in migrate_vma_pages
      mm: move the migrate_vma_* device migration code into its own file
      mm: build migrate_vma_* for all configs with ZONE_DEVICE support

Hugh Dickins (14):
      mm/munlock: delete page_mlock() and all its works
      mm/munlock: delete FOLL_MLOCK and FOLL_POPULATE
      mm/munlock: delete munlock_vma_pages_all(), allow oomreap
      mm/munlock: rmap call mlock_vma_page() munlock_vma_page()
      mm/munlock: replace clear_page_mlock() by final clearance
      mm/munlock: maintain page->mlock_count while unevictable
      mm/munlock: mlock_pte_range() when mlocking or munlocking
      mm/migrate: __unmap_and_move() push good newpage to LRU
      mm/munlock: delete smp_mb() from __pagevec_lru_add_fn()
      mm/munlock: mlock_page() munlock_page() batch by pagevec
      mm/munlock: page migration needs mlock pagevec drained
      mm/thp: collapse_file() do try_to_unmap(TTU_BATCH_FLUSH)
      mm/thp: shrink_page_list() avoid splitting VM_LOCKED THP
      mm/munlock: mlock_vma_page() check against VM_SPECIAL

Matthew Wilcox (Oracle) (83):
      mm/gup: Increment the page refcount before the pincount
      mm/gup: Remove for_each_compound_range()
      mm/gup: Remove for_each_compound_head()
      mm/gup: Change the calling convention for compound_range_next()
      mm/gup: Optimise compound_range_next()
      mm/gup: Change the calling convention for compound_next()
      mm/gup: Fix some contiguous memmap assumptions
      mm/gup: Remove an assumption of a contiguous memmap
      mm/gup: Handle page split race more efficiently
      mm/gup: Remove hpage_pincount_add()
      mm/gup: Remove hpage_pincount_sub()
      mm: Make compound_pincount always available
      mm: Add folio_pincount_ptr()
      mm: Turn page_maybe_dma_pinned() into folio_maybe_dma_pinned()
      mm/gup: Add try_get_folio() and try_grab_folio()
      mm/gup: Convert try_grab_page() to use a folio
      mm: Remove page_cache_add_speculative() and page_cache_get_speculative()
      mm/gup: Add gup_put_folio()
      mm/hugetlb: Use try_grab_folio() instead of try_grab_compound_head()
      mm/gup: Convert gup_pte_range() to use a folio
      mm/gup: Convert gup_hugepte() to use a folio
      mm/gup: Convert gup_huge_pmd() to use a folio
      mm/gup: Convert gup_huge_pud() to use a folio
      mm/gup: Convert gup_huge_pgd() to use a folio
      mm/gup: Turn compound_next() into gup_folio_next()
      mm/gup: Turn compound_range_next() into gup_folio_range_next()
      mm: Turn isolate_lru_page() into folio_isolate_lru()
      mm: Add three folio wrappers
      mm/gup: Convert check_and_migrate_movable_pages() to use a folio
      mm/workingset: Convert workingset_eviction() to take a folio
      mm/memcg: Convert mem_cgroup_swapout() to take a folio
      mm: Add lru_to_folio()
      mm: Turn putback_lru_page() into folio_putback_lru()
      mm/vmscan: Convert __remove_mapping() to take a folio
      splice: Use a folio in page_cache_pipe_buf_try_steal()
      mm/truncate: Inline invalidate_complete_page() into its one caller
      mm/truncate: Convert invalidate_inode_page() to use a folio
      mm/truncate: Replace page_mapped() call in invalidate_inode_page()
      mm: Convert remove_mapping() to take a folio
      mm/truncate: Split invalidate_inode_page() into mapping_evict_folio()
      mm/truncate: Convert __invalidate_mapping_pages() to use a folio
      mm: Turn deactivate_file_page() into deactivate_file_folio()
      mm/truncate: Combine invalidate_mapping_pagevec() and __invalidate_mapping_pages()
      fs: Move many prototypes to pagemap.h
      mm/vmscan: Turn page_check_dirty_writeback() into folio_check_dirty_writeback()
      mm: Turn head_compound_mapcount() into folio_entire_mapcount()
      mm: Add folio_mapcount()
      mm: Add split_folio_to_list()
      mm: Add folio_pgoff()
      mm: Add DEFINE_PAGE_VMA_WALK and DEFINE_FOLIO_VMA_WALK
      mips: Make pmd_pfn() available in all configurations
      powerpc: Add pmd_pfn()
      sparc32: Add pmd_pfn()
      mm: Convert page_vma_mapped_walk to work on PFNs
      mm/page_idle: Convert page_idle_clear_pte_refs() to use a folio
      mm/rmap: Use a folio in page_mkclean_one()
      mm/mlock: Add mlock_vma_folio()
      mm/rmap: Turn page_referenced() into folio_referenced()
      mm/huge_memory: Convert __split_huge_pmd() to take a folio
      mm/rmap: Convert try_to_unmap() to take a folio
      mm/rmap: Convert try_to_migrate() to folios
      mm/rmap: Convert make_device_exclusive_range() to use folios
      mm/migrate: Convert remove_migration_ptes() to folios
      mm/damon: Convert damon_pa_mkold() to use a folio
      mm/damon: Convert damon_pa_young() to use a folio
      mm/rmap: Turn page_lock_anon_vma_read() into folio_lock_anon_vma_read()
      mm: Turn page_anon_vma() into folio_anon_vma()
      mm/rmap: Convert rmap_walk() to take a folio
      mm/rmap: Constify the rmap_walk_control argument
      mm/vmscan: Free non-shmem folios without splitting them
      mm/vmscan: Optimise shrink_page_list for non-PMD-sized folios
      mm/vmscan: Account large folios correctly
      mm/vmscan: Turn page_check_references() into folio_check_references()
      mm/vmscan: Convert pageout() to take a folio
      mm: Turn can_split_huge_page() into can_split_folio()
      mm/filemap: Allow large folios to be added to the page cache
      mm: Fix READ_ONLY_THP warning
      mm: Make large folios depend on THP
      mm: Support arbitrary THP sizes
      mm/readahead: Add large folio readahead
      mm/readahead: Switch to page_cache_ra_order
      mm/filemap: Support VM_HUGEPAGE for file mappings
      selftests/vm/transhuge-stress: Support file-backed PMD folios

Miaohe Lin (1):
      mm/damon: minor cleanup for damon_pa_young

Mike Rapoport (1):
      arch: Add pmd_pfn() where it is missing

William Kucharski (1):
      mm/readahead: Align file mappings for non-DAX

 Documentation/core-api/pin_user_pages.rst     |  18 +-
 arch/alpha/include/asm/pgtable.h              |   1 +
 arch/arc/include/asm/hugepage.h               |   1 -
 arch/arc/include/asm/pgtable-levels.h         |   1 +
 arch/arm/include/asm/pgtable-2level.h         |   2 +
 arch/arm64/mm/mmu.c                           |   1 +
 arch/csky/include/asm/pgtable.h               |   1 +
 arch/hexagon/include/asm/pgtable.h            |   5 +
 arch/ia64/include/asm/pgtable.h               |   1 +
 arch/m68k/include/asm/mcf_pgtable.h           |   1 +
 arch/m68k/include/asm/motorola_pgtable.h      |   1 +
 arch/m68k/include/asm/sun3_pgtable.h          |   1 +
 arch/microblaze/include/asm/pgtable.h         |   3 +
 arch/mips/include/asm/pgtable.h               |  10 +-
 arch/nds32/include/asm/pgtable.h              |   1 +
 arch/nios2/include/asm/pgtable.h              |   1 +
 arch/openrisc/include/asm/pgtable.h           |   1 +
 arch/parisc/include/asm/pgtable.h             |   1 +
 arch/powerpc/include/asm/book3s/32/pgtable.h  |   4 +-
 arch/powerpc/include/asm/mmu_context.h        |   1 -
 arch/powerpc/include/asm/nohash/32/pgtable.h  |   7 +-
 arch/powerpc/include/asm/nohash/64/pgtable.h  |   1 +
 arch/powerpc/kvm/book3s_hv_uvmem.c            |   2 +-
 arch/powerpc/mm/book3s64/pgtable.c            |   1 +
 arch/sh/include/asm/pgtable_32.h              |   1 +
 arch/sparc/include/asm/pgtable_32.h           |   7 +-
 arch/um/include/asm/pgtable.h                 |   1 +
 arch/xtensa/include/asm/pgtable.h             |   1 +
 drivers/block/xen-blkback/xenbus.c            |   1 +
 drivers/gpu/drm/amd/amdkfd/kfd_migrate.c      |   2 +-
 drivers/gpu/drm/amd/amdkfd/kfd_priv.h         |   1 +
 drivers/gpu/drm/drm_cache.c                   |   2 +-
 drivers/gpu/drm/nouveau/nouveau_dmem.c        |   3 +-
 drivers/gpu/drm/nouveau/nouveau_svm.c         |   1 +
 drivers/infiniband/core/rw.c                  |   1 +
 drivers/nvdimm/pmem.h                         |   1 +
 drivers/nvme/host/pci.c                       |   1 +
 drivers/nvme/target/io-cmd-bdev.c             |   1 +
 drivers/usb/gadget/function/f_mass_storage.c  |   1 +
 fs/Kconfig                                    |   2 +-
 fs/coda/file.c                                |   1 +
 fs/fuse/virtio_fs.c                           |   1 +
 fs/iomap/fiemap.c                             |   1 +
 fs/nfsd/filecache.c                           |   1 +
 fs/nfsd/vfs.c                                 |   1 +
 fs/proc/page.c                                |   1 +
 fs/splice.c                                   |  24 +-
 fs/vboxsf/utils.c                             |   1 +
 include/linux/fs.h                            | 120 ----
 include/linux/hmm.h                           |   9 +-
 include/linux/huge_mm.h                       |  59 +-
 include/linux/hugetlb.h                       |   5 +
 include/linux/ksm.h                           |   6 +-
 include/linux/memremap.h                      |  27 +-
 include/linux/mm.h                            | 296 ++++-----
 include/linux/mm_inline.h                     |  11 +-
 include/linux/mm_types.h                      |  26 +-
 include/linux/pagemap.h                       | 146 ++++-
 include/linux/rmap.h                          |  76 ++-
 include/linux/swap.h                          |   9 +-
 include/trace/events/vmscan.h                 |  10 +-
 kernel/events/uprobes.c                       |  13 +-
 kernel/futex/core.c                           |   2 +-
 lib/test_hmm.c                                |   4 +-
 mm/Kconfig                                    |   7 +-
 mm/Makefile                                   |   1 +
 mm/damon/paddr.c                              |  62 +-
 mm/debug.c                                    |  18 +-
 mm/filemap.c                                  |  59 +-
 mm/folio-compat.c                             |  13 +
 mm/gup.c                                      | 486 ++++++--------
 mm/huge_memory.c                              | 178 ++----
 mm/hugetlb.c                                  |  15 +-
 mm/internal.h                                 | 117 ++--
 mm/khugepaged.c                               |  15 +-
 mm/ksm.c                                      |  32 +-
 mm/madvise.c                                  |   5 +
 mm/memcontrol.c                               |  37 +-
 mm/memory-failure.c                           |  14 +-
 mm/memory.c                                   |  45 +-
 mm/memory_hotplug.c                           |  13 +-
 mm/memremap.c                                 |  65 +-
 mm/migrate.c                                  | 870 ++------------------------
 mm/migrate_device.c                           | 773 +++++++++++++++++++++++
 mm/mlock.c                                    | 638 ++++++++-----------
 mm/mmap.c                                     |  32 +-
 mm/mmzone.c                                   |   7 +
 mm/oom_kill.c                                 |   2 +-
 mm/page_alloc.c                               |   3 +-
 mm/page_idle.c                                |  30 +-
 mm/page_vma_mapped.c                          |  58 +-
 mm/readahead.c                                | 108 +++-
 mm/rmap.c                                     | 582 +++++++----------
 mm/swap.c                                     | 173 ++---
 mm/truncate.c                                 | 111 ++--
 mm/userfaultfd.c                              |  14 +-
 mm/util.c                                     |  36 +-
 mm/vmscan.c                                   | 305 ++++-----
 mm/workingset.c                               |  25 +-
 tools/testing/selftests/vm/transhuge-stress.c |  35 +-
 100 files changed, 2903 insertions(+), 3025 deletions(-)
 create mode 100644 mm/migrate_device.c


  reply	other threads:[~2022-03-21 17:49 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-21 13:30 [GIT PULL] Folio patches for 5.18 (MM part) Matthew Wilcox
2022-03-21 15:16 ` David Hildenbrand
2022-03-21 15:24   ` David Hildenbrand
2022-03-21 15:31     ` Matthew Wilcox
2022-03-21 15:38       ` David Hildenbrand
2022-03-21 16:54         ` Matthew Wilcox
2022-03-21 17:03           ` David Hildenbrand
2022-03-21 17:49             ` Matthew Wilcox [this message]
2022-03-23  2:27               ` pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Yji6plPgEAeWuq38@casper.infradead.org \
    --to=willy@infradead.org \
    --cc=akpm@linux-foundation.org \
    --cc=alex.sierra@amd.com \
    --cc=apopple@nvidia.com \
    --cc=david@redhat.com \
    --cc=hch@lst.de \
    --cc=hughd@google.com \
    --cc=linmiaohe@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rppt@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=william.kucharski@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.