All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V4 0/6] 52-bit userspace VAs
@ 2018-12-05 16:41 ` Steve Capper
  0 siblings, 0 replies; 34+ messages in thread
From: Steve Capper @ 2018-12-05 16:41 UTC (permalink / raw)
  To: linux-mm, linux-arm-kernel
  Cc: catalin.marinas, will.deacon, ard.biesheuvel, jcm, Steve Capper

This patch series brings support for 52-bit userspace VAs to systems that
have ARMv8.2-LVA and are running with a 48-bit VA_BITS and a 64KB
PAGE_SIZE.

If no hardware support is present, the kernel runs with a 48-bit VA space
for userspace.

Userspace can exploit this feature by providing an address hint to mmap
where addr[51:48] != 0. Otherwise all the VA mappings will behave in the
same way as a 48-bit VA system (this is to maintain compatibility with
software that assumes the maximum VA size on arm64 is 48-bit).

This patch series applies to 4.20-rc1.

Testing was in a model with Trusted Firmware and UEFI for boot.

Changed in V4, pgd_index changes dropped in favour of offsetting the
ttbr1. This is performed in a new patch, #4.

Changed in V3, COMPAT fixes added (and tested with 32-bit userspace code).
Extra patch added to allow forcing all userspace allocations to come from
52-bits (to allow for debugging and testing).

The major change to V2 of the series is that mm/mmap.c is altered in the
first patch of the series (rather than copied over to arch/arm64).


Steve Capper (6):
  mm: mmap: Allow for "high" userspace addresses
  arm64: mm: Introduce DEFAULT_MAP_WINDOW
  arm64: mm: Define arch_get_mmap_end, arch_get_mmap_base
  arm64: mm: Offset TTBR1 to allow 52-bit PTRS_PER_PGD
  arm64: mm: introduce 52-bit userspace support
  arm64: mm: Allow forcing all userspace addresses to 52-bit

 arch/arm64/Kconfig                      | 17 ++++++++++++
 arch/arm64/include/asm/asm-uaccess.h    |  4 +++
 arch/arm64/include/asm/assembler.h      | 30 ++++++++++++++++++---
 arch/arm64/include/asm/elf.h            |  4 +++
 arch/arm64/include/asm/mmu_context.h    |  3 +++
 arch/arm64/include/asm/pgtable-hwdef.h  |  9 +++++++
 arch/arm64/include/asm/processor.h      | 36 ++++++++++++++++++++-----
 arch/arm64/include/asm/uaccess.h        |  4 +++
 arch/arm64/kernel/head.S                | 14 ++++++++++
 arch/arm64/kernel/hibernate-asm.S       |  1 +
 arch/arm64/mm/fault.c                   |  2 +-
 arch/arm64/mm/init.c                    |  2 +-
 arch/arm64/mm/mmu.c                     |  1 +
 arch/arm64/mm/proc.S                    | 14 +++++++++-
 drivers/firmware/efi/arm-runtime.c      |  2 +-
 drivers/firmware/efi/libstub/arm-stub.c |  2 +-
 mm/mmap.c                               | 25 ++++++++++++-----
 17 files changed, 148 insertions(+), 22 deletions(-)

-- 
2.19.2

^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2018-12-06 14:53 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-05 16:41 [PATCH V4 0/6] 52-bit userspace VAs Steve Capper
2018-12-05 16:41 ` Steve Capper
2018-12-05 16:41 ` [PATCH V4 1/6] mm: mmap: Allow for "high" userspace addresses Steve Capper
2018-12-05 16:41   ` Steve Capper
2018-12-05 16:41 ` [PATCH V4 2/6] arm64: mm: Introduce DEFAULT_MAP_WINDOW Steve Capper
2018-12-05 16:41   ` Steve Capper
2018-12-05 17:36   ` Catalin Marinas
2018-12-05 17:36     ` Catalin Marinas
2018-12-06 12:24     ` Steve Capper
2018-12-06 12:24       ` Steve Capper
2018-12-05 16:41 ` [PATCH V4 3/6] arm64: mm: Define arch_get_mmap_end, arch_get_mmap_base Steve Capper
2018-12-05 16:41   ` Steve Capper
2018-12-05 16:41 ` [PATCH V4 4/6] arm64: mm: Offset TTBR1 to allow 52-bit PTRS_PER_PGD Steve Capper
2018-12-05 16:41   ` Steve Capper
2018-12-06 11:50   ` Catalin Marinas
2018-12-06 11:50     ` Catalin Marinas
2018-12-06 12:27     ` Steve Capper
2018-12-06 12:27       ` Steve Capper
2018-12-05 16:41 ` [PATCH V4 5/6] arm64: mm: introduce 52-bit userspace support Steve Capper
2018-12-05 16:41   ` Steve Capper
2018-12-05 18:22   ` Suzuki K Poulose
2018-12-05 18:22     ` Suzuki K Poulose
2018-12-06 12:26     ` Steve Capper
2018-12-06 12:26       ` Steve Capper
2018-12-06 14:35       ` Suzuki K Poulose
2018-12-06 14:35         ` Suzuki K Poulose
2018-12-06 14:52         ` Steve Capper
2018-12-06 14:52           ` Steve Capper
2018-12-05 16:41 ` [PATCH V4 6/6] arm64: mm: Allow forcing all userspace addresses to 52-bit Steve Capper
2018-12-05 16:41   ` Steve Capper
2018-12-06 11:51   ` Catalin Marinas
2018-12-06 11:51     ` Catalin Marinas
2018-12-06 12:28     ` Steve Capper
2018-12-06 12:28       ` Steve Capper

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.