• Jason Gunthorpe's avatar
    Merge branch 'hmm-devmem-cleanup.4' into rdma.git hmm · cc5dfd59
    Jason Gunthorpe authored
    Christoph Hellwig says:
    
    ====================
    Below is a series that cleans up the dev_pagemap interface so that it is
    more easily usable, which removes the need to wrap it in hmm and thus
    allowing to kill a lot of code
    
    Changes since v3:
     - pull in "mm/swap: Fix release_pages() when releasing devmap pages" and
       rebase the other patches on top of that
     - fold the hmm_devmem_add_resource into the DEVICE_PUBLIC memory removal
       patch
     - remove _vm_normal_page as it isn't needed without DEVICE_PUBLIC memory
     - pick up various ACKs
    
    Changes since v2:
     - fix nvdimm kunit build
     - add a new memory type for device dax
     - fix a few issues in intermediate patches that didn't show up in the end
       result
     - incorporate feedback from Michal Hocko, including killing of
       the DEVICE_PUBLIC memory type entirely
    
    Changes since v1:
     - rebase
     - also switch p2pdma to the internal refcount
     - add type checking for pgmap->type
     - rename the migrate method to migrate_to_ram
     - cleanup the altmap_valid flag
     - various tidbits from the reviews
    ====================
    
    Conflicts resolved by:
     - Keeping Ira's version of the code in swap.c
     - Using the delete for the section in hmm.rst
     - Using the delete for the devmap code in hmm.c and .h
    
    * branch 'hmm-devmem-cleanup.4': (24 commits)
      mm: don't select MIGRATE_VMA_HELPER from HMM_MIRROR
      mm: remove the HMM config option
      mm: sort out the DEVICE_PRIVATE Kconfig mess
      mm: simplify ZONE_DEVICE page private data
      mm: remove hmm_devmem_add
      mm: remove hmm_vma_alloc_locked_page
      nouveau: use devm_memremap_pages directly
      nouveau: use alloc_page_vma directly
      PCI/P2PDMA: use the dev_pagemap internal refcount
      device-dax: use the dev_pagemap internal refcount
      memremap: provide an optional internal refcount in struct dev_pagemap
      memremap: replace the altmap_valid field with a PGMAP_ALTMAP_VALID flag
      memremap: remove the data field in struct dev_pagemap
      memremap: add a migrate_to_ram method to struct dev_pagemap_ops
      memremap: lift the devmap_enable manipulation into devm_memremap_pages
      memremap: pass a struct dev_pagemap to ->kill and ->cleanup
      memremap: move dev_pagemap callbacks into a separate structure
      memremap: validate the pagemap type passed to devm_memremap_pages
      mm: factor out a devm_request_free_mem_region helper
      mm: export alloc_pages_vma
      ...
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    cc5dfd59
hmm.rst 19.4 KB