Messages in this thread | | | Date | Mon, 13 Mar 2023 11:23:55 +0800 | Subject | Re: [PATCHv15 00/17] Linear Address Masking enabling | From | Binbin Wu <> |
| |
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 >
| |