[Devel] [PATCH rh7 00/12] replace remap_file_pages() syscall with emulation

Andrey Ryabinin aryabinin at virtuozzo.com
Mon Oct 3 06:20:48 PDT 2016


Backported patchset "Workaround for Xeon Phi PTE A/D bits erratum"
caused - kernel BUG at mm/rmap.c:1305!

_PAGE_BIT_FILE is not present in upstream but still present
in RHEL7 kernel, so they did this:
   /* Pick a bit unaffected by the "KNL4 erratum": */
   #define _PAGE_BIT_FILE      _PAGE_BIT_PSE

This conflicts with ours code:
   #define _PAGE_SWP_SOFT_DIRTY	_PAGE_PSE

It seems that the best way to fix this is to get rid of _PAGE_FILE alltogether.

NOTE! I didn't bother to backport all "$(ARCH): drop _PAGE_FILE and pte_file()-related helpers"
except for asm-generic and x86. This seems unnecessary, plus might help to avoid additional
conflicts in future rebases.

https://jira.sw.ru/browse/PSBM-52992


Kirill A. Shutemov (12):
  ms/mm: replace remap_file_pages() syscall with emulation
  ms/mm: drop support of non-linear mapping from unmap/zap codepath
  ms/mm: drop support of non-linear mapping from fault codepath
  ms/mm: drop vm_ops->remap_pages and generic_file_remap_pages() stub
  ms/proc: drop handling non-linear mappings
  ms/rmap: drop support of non-linear mappings
  ms/mm: replace vma->sharead.linear with vma->shared
  ms/mm: remove rest usage of VM_NONLINEAR and pte_file()
  ms/mm: fix regression in remap_file_pages() emulation
  ms/ipc/shm: handle removed segments gracefully in shm_mmap()
  ms/asm-generic: drop unused pte_file* helpers
  ms/x86: drop _PAGE_FILE and pte_file()-related helpers

 Documentation/cachetlb.txt            |   8 +-
 Documentation/vm/remap_file_pages.txt |  27 ++++
 arch/x86/include/asm/pgtable-2level.h |  86 +----------
 arch/x86/include/asm/pgtable-3level.h |  12 --
 arch/x86/include/asm/pgtable.h        |  20 ---
 arch/x86/include/asm/pgtable_64.h     |   9 --
 arch/x86/include/asm/pgtable_types.h  |   8 --
 fs/9p/vfs_file.c                      |   1 -
 fs/btrfs/file.c                       |   1 -
 fs/ceph/addr.c                        |   1 -
 fs/cifs/file.c                        |   1 -
 fs/ext4/file.c                        |   1 -
 fs/f2fs/file.c                        |   1 -
 fs/fuse/file.c                        |   1 -
 fs/gfs2/file.c                        |   1 -
 fs/inode.c                            |   1 -
 fs/nfs/file.c                         |   1 -
 fs/nilfs2/file.c                      |   1 -
 fs/ocfs2/mmap.c                       |   1 -
 fs/proc/task_mmu.c                    |  15 --
 fs/ubifs/file.c                       |   1 -
 fs/xfs/xfs_file.c                     |   1 -
 include/asm-generic/pgtable.h         |  15 --
 include/linux/fs.h                    |   6 +-
 include/linux/mm.h                    |  27 +---
 include/linux/mm_types.h              |  12 +-
 include/linux/rmap.h                  |   3 -
 include/linux/swapops.h               |   4 +-
 ipc/shm.c                             |  51 +++++--
 kernel/fork.c                         |   8 +-
 mm/Makefile                           |   2 +-
 mm/filemap.c                          |   1 -
 mm/filemap_xip.c                      |   1 -
 mm/fremap.c                           | 264 ----------------------------------
 mm/interval_tree.c                    |  34 ++---
 mm/ksm.c                              |   2 +-
 mm/madvise.c                          |  13 +-
 mm/memcontrol.c                       |   7 +-
 mm/memory.c                           | 220 +++++++++-------------------
 mm/mincore.c                          |   9 +-
 mm/mmap.c                             | 117 ++++++++++++---
 mm/mprotect.c                         |   2 +-
 mm/mremap.c                           |   2 -
 mm/msync.c                            |   5 +-
 mm/nommu.c                            |   8 --
 mm/rmap.c                             | 214 +--------------------------
 mm/shmem.c                            |   1 -
 mm/swap.c                             |   4 +-
 48 files changed, 286 insertions(+), 945 deletions(-)
 create mode 100644 Documentation/vm/remap_file_pages.txt
 delete mode 100644 mm/fremap.c

-- 
2.7.3



More information about the Devel mailing list