[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