[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20121214222517.GG6582@moon>
Date: Sat, 15 Dec 2012 02:25:17 +0400
From: Cyrill Gorcunov <gorcunov@...nvz.org>
To: "H. Peter Anvin" <hpa@...or.com>
Cc: Andy Lutomirski <luto@...capital.net>, aarcange@...hat.com,
ak@...ux.intel.com, Pavel Emelyanov <xemul@...allels.com>,
Stefani Seibold <stefani@...bold.net>, x86@...nel.org,
linux-kernel@...r.kernel.org, criu@...nvz.org, mingo@...hat.com,
john.stultz@...aro.org, tglx@...utronix.de
Subject: Re: [CRIU] [PATCH] Add VDSO time function support for x86 32-bit
kernel
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 majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists