[CRIU] Dealing with VDSO remap
Cyrill Gorcunov
gorcunov at gmail.com
Wed Mar 11 09:50:33 PDT 2015
On Wed, Mar 11, 2015 at 05:42:29PM +0100, Laurent Dufour wrote:
>
> Hi Cyrill,
>
> Thanks for the details.
Sure thing, you're welcome!
> VDSO is quite similar on PPC, it's a real pie piece of code which is
> mapped on each process at a randomized address. As I guess it is on x86,
> this not a real map but a page sharing.
> Moving the VDSO is not breaking it and if the VDSO is the same between
> restarted and checkpointed process I guess we can safely move it.
>
> I did a *ugly* hack in the kernel's remap code to update the
> reference the kernel keep to the process's VDSO base address when it is
> moved and restart of a simple process tree is fine. So that seems to be
> the way to do that.
>
> Now the next step will be to get such a feature accepted upstream in the
> kernel. I'll send a RFC to the dedicated kernel list soon. Hoping this
> will not be a too long story.
:-)
> Regarding the VDSO trampoline used when the VDSO is different at restart
> compared to the checkpointed one, I had to study it further.
> If you have any tips there, you're welcome ;-)
You can take a look into x86 piece arch/x86/vdso-pie.c:vdso_proxify
that's where we proxify symbols (if that's what you need).
More information about the CRIU
mailing list