Messages in this thread | | | From | Andy Lutomirski <> | Date | Tue, 11 Mar 2014 23:09:11 -0700 | Subject | Re: [PATCH v2 0/2] x86: Relocate the compat vdso per process |
| |
On Mar 11, 2014 10:02 PM, "H. Peter Anvin" <hpa@zytor.com> 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
| |