Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1390466
| From | Andy Lutomirski <luto@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: VDSO unmap and remap support for additional architectures |
| Date | 2016-04-28 21:00 +0200 |
| Message-ID | <rsZkn-mr-33@gated-at.bofh.it> (permalink) |
| References | <qBey6-72N-37@gated-at.bofh.it> <rsW37-5Ij-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On 04/28/2016 08:18 AM, Christopher Covington wrote:
> Please take a look at the following prototype of sharing the PowerPC
> VDSO unmap and remap code with other architectures. I've only hooked
> up arm64 to begin with. If folks think this is a reasonable approach I
> can work on 32 bit ARM as well. Not hearing back from an earlier
> request for guidance [1], I simply dove in and started hacking.
> Laurent's test case [2][3] is a compelling illustration of whether VDSO
> remap works or not on a given architecture.
I think there's a much nicer way:
https://lkml.kernel.org/r/1461584223-9418-1-git-send-email-dsafonov@virtuozzo.com
Could arm64 and ppc use this approach? These arch_xyz hooks are gross.
Also, at some point, possibly quite soon, x86 will want a way for user code to ask the kernel to map a specific vdso variant at a specific address. Could we perhaps add a new pair of syscalls:
struct vdso_info {
unsigned long space_needed_before;
unsigned long space_needed_after;
unsigned long alignment;
};
long vdso_get_info(unsigned int vdso_type, struct vdso_info *info);
long vdso_remap(unsigned int vdso_type, unsigned long addr, unsigned int flags);
#define VDSO_X86_I386 0
#define VDSO_X86_64 1
#define VDSO_X86_X32 2
// etc.
vdso_remap will map the vdso of the chosen type such at AT_SYSINFO_EHDR lines up with addr. It will use up to space_needed_before bytes before that address and space_needed_after after than address. It will also unmap the old vdso (or maybe only do that if some flag is set).
On x86, mremap is *not* sufficient for everything that's needed, because some programs will need to change the vdso type.
--Andy
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
VDSO unmap and remap support for additional architectures Christopher Covington <cov@codeaurora.org> - 2016-04-28 17:30 +0200
[RFC 5/5] arm64: Gain VDSO unmap and remap powers Christopher Covington <cov@codeaurora.org> - 2016-04-28 17:30 +0200
[RFC 2/5] mm/powerpc: Make VDSO unmap generic Christopher Covington <cov@codeaurora.org> - 2016-04-28 17:30 +0200
Re: VDSO unmap and remap support for additional architectures Andy Lutomirski <luto@kernel.org> - 2016-04-28 21:00 +0200
Re: VDSO unmap and remap support for additional architectures Christopher Covington <cov@codeaurora.org> - 2016-04-29 15:30 +0200
Re: VDSO unmap and remap support for additional architectures Christopher Covington <cov@codeaurora.org> - 2016-05-03 23:40 +0200
csiph-web