Re: [PATCHv8 resend 2/2] selftest/x86: add mremap vdso test

From: Andy Lutomirski
Date: Mon May 16 2016 - 14:25:44 EST


On Mon, May 16, 2016 at 9:24 AM, Dmitry Safonov <dsafonov@xxxxxxxxxxxxx> wrote:
> On 05/16/2016 04:54 PM, Ingo Molnar wrote:
>>
>>
>> * Dmitry Safonov <dsafonov@xxxxxxxxxxxxx> wrote:
>>
>>> Should print on success:
>>> [root@localhost ~]# ./test_mremap_vdso_32
>>> AT_SYSINFO_EHDR is 0xf773f000
>>> [NOTE] Moving vDSO: [f773f000, f7740000] -> [a000000, a001000]
>>> [OK]
>>> Or segfault if landing was bad (before patches):
>>> [root@localhost ~]# ./test_mremap_vdso_32
>>> AT_SYSINFO_EHDR is 0xf774f000
>>> [NOTE] Moving vDSO: [f774f000, f7750000] -> [a000000, a001000]
>>> Segmentation fault (core dumped)
>>
>>
>> Can the segfault be caught and recovered from, to print a proper failure
>> message?
>
>
> Will add segfault handler, thanks.
>

It may be more complicated that that. Glibc is likely to explode if
this happens, and the headers are sufficiently screwed up that it's
awkward to bypass glibc and call rt_sigaction directly. I have a test
that does the latter, though, so it's at least possible, but I'm
unconvinced it's worth it just for an error message.

--
Andy Lutomirski
AMA Capital Management, LLC