[CRIU] [PATCH] Add VDSO time function support for x86 32-bit kernel
H. Peter Anvin
hpa at zytor.com
Fri Dec 14 17:00:17 EST 2012
On 12/14/2012 01:27 PM, Andy Lutomirski wrote:
>
> I don't know all that much about the linux vm. Can we create a
> special vdso address_space or struct inode or something so that a
> single vma can contain pages with different flags?
>
No, that is still different vmas, but it probably isn't a big deal.
The advantage of having an inode/namespace is that it lets you use
mmap() as opposed to mremap() with it, which might be useful, I don't know.
One option for the checkpoint people might actually be to not use the
vdso for a process that needs to be checkpointed and restarted on a
different machine or different kernel version. Instead they can install
a pseudo-vdso which just calls normal system calls, and is simply a
static piece of code that makes normal system calls ... since the
internals of the kernel are hidden from userspace it is "clean" that way.
With any actual vdso you risk something like:
-> vdso entry
-> signal received, transfer to signal handler
-> checkpoint
-> restart
-> signal handler exit
... and now you return to the address in the old vdso, but the internals
of the vdso may have changed.
-hpa
More information about the CRIU
mailing list