On Fri, Dec 14, 2012 at 02:00:17PM -0800, H. Peter Anvin wrote: > 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: >
Is there a chance to make it something like that (assuming the dumpee is ptraced) > -> vdso entry mark task as vdso-entered > -> signal received, transfer to signal handler > -> signal handler exit before task leave vdso the task mark vdso-entered get cleaned and if ptraced, the ptracing task is notified > ... and now you return to the address in the old vdso, but the internals > of the vdso may have changed. this would allow us to defer checkpoint until task finish vdso code. Peter, if I understand you correctly you propose we provide some own proxy-vdso which would redirect calls to real ones, right? But the main problem is that is exactly the idea to be able to c/r existing programs without recompiling and such (or I miss something here?). Cyrill -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/