Message ID | 20181206225042.11548-1-steve.capper@arm.com (mailing list archive) |
---|---|
Headers | show |
Series | 52-bit userspace VAs | expand |
On Thu, Dec 06, 2018 at 10:50:35PM +0000, Steve Capper wrote: > 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 V5, ttbr1 offsetting code simplified. Extra patch added to > check for VA space support mismatch between CPUs. I was all ready to push this out, but I spotted a build failure with allmodconfig because TASK_SIZE refers to the non-EXPORTed symbol vabits_user: ERROR: "vabits_user" [lib/test_user_copy.ko] undefined! ERROR: "vabits_user" [drivers/misc/lkdtm/lkdtm.ko] undefined! ERROR: "vabits_user" [drivers/infiniband/hw/mlx5/mlx5_ib.ko] undefined! So I've pushed an extra patch on top to fix that by exporting the symbol. Will
Hi Will, On Mon, Dec 10, 2018 at 07:34:46PM +0000, Will Deacon wrote: > On Thu, Dec 06, 2018 at 10:50:35PM +0000, Steve Capper wrote: > > 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 V5, ttbr1 offsetting code simplified. Extra patch added to > > check for VA space support mismatch between CPUs. > > I was all ready to push this out, but I spotted a build failure with > allmodconfig because TASK_SIZE refers to the non-EXPORTed symbol > vabits_user: > > ERROR: "vabits_user" [lib/test_user_copy.ko] undefined! > ERROR: "vabits_user" [drivers/misc/lkdtm/lkdtm.ko] undefined! > ERROR: "vabits_user" [drivers/infiniband/hw/mlx5/mlx5_ib.ko] undefined! Apologies for that, I'll be more careful with modules in future. > > So I've pushed an extra patch on top to fix that by exporting the symbol. > Thanks! Cheers,