Re: [CRIU] [PATCH] Add VDSO time function support for x86 32-bitkernel

From: H. Peter Anvin
Date: Fri Dec 14 2012 - 13:48:08 EST


On 12/14/2012 10:44 AM, Andy Lutomirski wrote:
>>
>> mremap() should work. At the same time, the code itself is not going to
>> have any stability guarantees between kernel versions -- it obviously
>> cannot.
>
> We could guarantee that the symbols in the vdso resolve to particular
> offsets within the vdso. (Yes, this is ugly.)
>
> Does criu support checkpointing with one version of a shared library
> and restoring with another? If there are no textrels (or whatever the
> relocation type that actually modifies text as opposed to just the plt
> or got) then, in principle, it should be doable. Otherwise some
> kernel help will be needed to checkpoint reliably on one kernel and
> restore somewhere else.
>
> (This isn't a regression -- it's already broken.)
>

The real issue is that happens if the process is checkpointed while
inside the vdso and now eip/rip or a stack frame points into the vdso.
This is not impossible or even unlikely, especially on 32 bits it is
downright likely.

-hpa

--
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/