Re: [PATCHv15 00/17] Linear Address Masking enabling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 1/24/2023 6:04 AM, Kirill A. Shutemov wrote:
Linear Address Masking[1] (LAM) modifies the checking that is applied to
64-bit linear addresses, allowing software to use of the untranslated
address bits for metadata.

The capability can be used for efficient address sanitizers (ASAN)
implementation and for optimizations in JITs and virtual machines.

The patchset brings support for LAM for userspace addresses. Only LAM_U57 at
this time.

Please review and consider applying.

git://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git lam

...

[1] ISE, Chapter 10. https://cdrdv2.intel.com/v1/dl/getContent/671368

It is Chapter 7. Or maybe use the name of the chapter instead.


Kirill A. Shutemov (12):
   x86/mm: Rework address range check in get_user() and put_user()
   x86: Allow atomic MM_CONTEXT flags setting
   x86: CPUID and CR3/CR4 flags for Linear Address Masking
   x86/mm: Handle LAM on context switch
   mm: Introduce untagged_addr_remote()
   x86/uaccess: Provide untagged_addr() and remove tags before address
     check
   x86/mm: Reduce untagged_addr() overhead for systems without LAM
   x86/mm: Provide arch_prctl() interface for LAM
   mm: Expose untagging mask in /proc/$PID/status
   iommu/sva: Replace pasid_valid() helper with mm_valid_pasid()
   x86/mm/iommu/sva: Make LAM and SVA mutually exclusive
   selftests/x86/lam: Add test cases for LAM vs thread creation

Weihong Zhang (5):
   selftests/x86/lam: Add malloc and tag-bits test cases for
     linear-address masking
   selftests/x86/lam: Add mmap and SYSCALL test cases for linear-address
     masking
   selftests/x86/lam: Add io_uring test cases for linear-address masking
   selftests/x86/lam: Add inherit test cases for linear-address masking
   selftests/x86/lam: Add ARCH_FORCE_TAGGED_SVA test cases for
     linear-address masking

  arch/arm64/include/asm/mmu_context.h        |    6 +
  arch/sparc/include/asm/mmu_context_64.h     |    6 +
  arch/sparc/include/asm/uaccess_64.h         |    2 +
  arch/x86/Kconfig                            |   11 +
  arch/x86/entry/vsyscall/vsyscall_64.c       |    2 +-
  arch/x86/include/asm/cpufeatures.h          |    1 +
  arch/x86/include/asm/disabled-features.h    |    8 +-
  arch/x86/include/asm/mmu.h                  |   18 +-
  arch/x86/include/asm/mmu_context.h          |   49 +-
  arch/x86/include/asm/processor-flags.h      |    2 +
  arch/x86/include/asm/tlbflush.h             |   48 +-
  arch/x86/include/asm/uaccess.h              |   58 +-
  arch/x86/include/uapi/asm/prctl.h           |    5 +
  arch/x86/include/uapi/asm/processor-flags.h |    6 +
  arch/x86/kernel/process.c                   |    6 +
  arch/x86/kernel/process_64.c                |   66 +-
  arch/x86/kernel/traps.c                     |    6 +-
  arch/x86/lib/getuser.S                      |   83 +-
  arch/x86/lib/putuser.S                      |   54 +-
  arch/x86/mm/init.c                          |    5 +
  arch/x86/mm/tlb.c                           |   53 +-
  drivers/iommu/iommu-sva.c                   |    8 +-
  drivers/vfio/vfio_iommu_type1.c             |    2 +-
  fs/proc/array.c                             |    6 +
  fs/proc/task_mmu.c                          |    9 +-
  include/linux/ioasid.h                      |    9 -
  include/linux/mm.h                          |   11 -
  include/linux/mmu_context.h                 |   14 +
  include/linux/sched/mm.h                    |    8 +-
  include/linux/uaccess.h                     |   22 +
  mm/debug.c                                  |    1 +
  mm/gup.c                                    |    4 +-
  mm/madvise.c                                |    5 +-
  mm/migrate.c                                |   11 +-
  tools/testing/selftests/x86/Makefile        |    2 +-
  tools/testing/selftests/x86/lam.c           | 1241 +++++++++++++++++++
  36 files changed, 1699 insertions(+), 149 deletions(-)
  create mode 100644 tools/testing/selftests/x86/lam.c

--
2.39.1





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux