lkml.org 
[lkml]   [2023]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCHv15 00/17] Linear Address Masking enabling
From

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
>

\
 
 \ /
  Last update: 2023-03-27 00:55    [W:0.450 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site