lkml.org 
[lkml]   [2012]   [Dec]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [CRIU] [PATCH] Add VDSO time function support for x86 32-bit kernel
    On 12/14/2012 01:20 PM, Cyrill Gorcunov wrote:
    > On Fri, Dec 14, 2012 at 01:08:35PM -0800, H. Peter Anvin wrote:
    >> On 12/14/2012 12:12 PM, Cyrill Gorcunov wrote:
    >>>>>
    >>>> The real issue is that happens if the process is checkpointed while
    >>>> inside the vdso and now eip/rip or a stack frame points into the vdso.
    >>>> This is not impossible or even unlikely, especially on 32 bits it is
    >>>> downright likely.
    >>>
    >>> I fear if there are stacked ip which point to vdso -- we simply won't
    >>> be able to restore properly if vdso internal format changed significantly
    >>> between kernel versions. (At moment we restore vdso exactly at same position
    >>> it was on checkpoint stage with same content, iirc).
    >>>
    >>
    >> I don't think there is a way around that. It is completely unreasonable
    >> to say that the vdso cannot change between kernel versions, for obvious
    >> reasons. It's worse than "significantly"... changing even one
    >> instruction makes it plausible your eip/rip will point into the middle
    >> of an instruction.
    >
    > Well, one idea was to try to escape dumping when a dumpee inside vdso area
    > and wait until it leaves this zone, then proceed dumping. Then, if vdso is
    > changed (say some new instructions were added) we zap original prologues
    > with jmp to new symbols from fresh vdso provided us by a kernel. I'm not
    > really sure if this would help us much but just saying (I must admit I
    > didn't looked yet into vdso implementation details, so sorry if it sounds
    > stupid).
    >

    Well, if the vdso contains a system call you may be waiting indefinitely.

    -hpa




    \
     
     \ /
      Last update: 2012-12-14 23:01    [W:3.380 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site