Re: [PATCH v2 0/2] x86: Relocate the compat vdso per process

From: Andy Lutomirski
Date: Wed Mar 12 2014 - 02:10:12 EST


On Mar 11, 2014 10:02 PM, "H. Peter Anvin" <hpa@xxxxxxxxx> wrote:
>
> On 03/11/2014 03:15 PM, Andy Lutomirski wrote:
>>
>> The meat of this patch series is in patch 1. Patch 2 is split out for
>> improved bisectability.
>>
>> Changes from v1: Split into two patches and fixed a comment.
>>
>> Andy Lutomirski (2):
>> x86: Dynamically relocate the compat vdso
>> x86_32: Remove user bit from identity map PDE
>>
>> Documentation/kernel-parameters.txt | 18 +++-
>> arch/x86/Kconfig | 24 +++--
>> arch/x86/include/asm/elf.h | 4 -
>> arch/x86/include/asm/fixmap.h | 8 --
>> arch/x86/include/asm/pgtable_types.h | 7 +-
>> arch/x86/include/asm/vdso.h | 5 +-
>> arch/x86/vdso/vdso-layout.lds.S | 2 +-
>> arch/x86/vdso/vdso32-setup.c | 173 ++++++++++++++++-------------------
>> arch/x86/vdso/vdso32/vdso32.lds.S | 2 -
>> 9 files changed, 111 insertions(+), 132 deletions(-)
>>
>
> Why per process? *If* we have compat vdso turned on, can't we just put it in one place system-wide?

My machine has ASLR turned on, and the vma really does end up
somewhere different each time. I suspect that most (?) ASLR users
would happily accept the 4k hit to keep ASLR working fully.

Another downside of trying to have a common address for all processes:
someone needs to figure out what that address is. What happens if an
ELF binary (or interpreter) wants to load something at the chosen
address?

--Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/