<div dir="ltr">So by using the second option(as suggested by Dmitry) the following information is obtained(which is also obtained during a normal restore):<div>(A)</div><div>vdso: Runtime vdso/vvar matches dumpee, remap inplace<br>vdso: Remap rt-vdso 0x2a000 -> 0x7ffca6198000<br>vdso: Remap rt-vvar 0x27000 -> 0x7ffca6195000<br>vdso: Using gettimeofday() on vdso at 0x7ffca6198d40<br></div><div><br></div><div>Other information when restored normally like:</div><div>(B)</div><div>vdso: PT_LOAD p_vaddr: 0x0<br>vdso: DT_HASH: 0x120<br>vdso: DT_STRTAB: 0x298<br>vdso: DT_SYMTAB: 0x1a8<br>vdso: DT_STRSZ: 0x5e<br>vdso: DT_SYMENT: 0x18<br> vdso: nbucket 0x3 nchain 0xa bucket 0x7ffca6198128 chain 0x7ffca6198134<br>vdso: image [vdso] 0x7ffca6198000-0x7ffca619a000 [vvar] 0x7ffca6195000-0x7ffca6198000<br></div><div>is not available.<br></div><div><br></div><div>Is the information in (A) enough to decide that the restore process was successful?</div><div><br></div><div>Best,</div><div>Harsha</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Sep 27, 2019 at 7:14 PM Dmitry Safonov <<a href="mailto:0x7f454c46@gmail.com">0x7f454c46@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 9/27/19 2:41 PM, Dmitry Safonov wrote:<br>
> On 9/27/19 8:45 AM, Cyrill Gorcunov wrote:<br>
>> On Thu, Sep 26, 2019 at 10:48:24PM +0000, Pavel Emelianov wrote:<br>
>>> On 26.09.2019 18:37, Harshavardhan Unnibhavi wrote:<br>
>>>> Hi,<br>
>>>><br>
>>>> I am trying to restore images with pages*.img removed. When restore calls<br>
>>>> vdso_proxify there is a problem with the ELF headers and their associated<br>
>>>> addresses as they are not available. What should I do?<br>
>>><br>
>>> Cyrill, Dima, would you please help us on this. Briefly -- we want to<br>
>>> "emulate" the restoration from images with pages*.img files removed and<br>
>>> we hit this:<br>
>>><br>
>>> vdso: Parsing at 0x7ffca6198000 0x7ffca619a000<br>
>>> vdso: PT_LOAD p_vaddr: 0x0<br>
>>> vdso: DT_HASH: 0x120<br>
>>> vdso: DT_STRTAB: 0x298<br>
>>> vdso: DT_SYMTAB: 0x1a8<br>
>>> vdso: DT_STRSZ: 0x5e<br>
>>> vdso: DT_SYMENT: 0x18<br>
>>> vdso: nbucket 0x3 nchain 0xa bucket 0x7ffca6198128 chain 0x7ffca6198134<br>
>>> vdso: image [vdso] 0x7ffca6198000-0x7ffca619a000 [vvar] 0x7ffca6195000-0x7ffca6198000<br>
>>> vdso: Runtime vdso/vvar matches dumpee, remap inplace<br>
>>> vdso: Remap rt-vdso 0x2c000 -> 0x7ffca6198000<br>
>>> vdso: Remap rt-vvar 0x29000 -> 0x7ffca6195000<br>
>>> vdso: Using gettimeofday() on vdso at 0x7ffca6198d40<br>
>>><br>
>>> apparently, the parsed info is taken from pages images which are missing.<br>
>>> Does this parsing affects anything beyond the memory contents, or can we<br>
>>> just skip the whole parse code for our purposes?<br>
>><br>
>> I think when you're dropping content of pages you should not modify vdso page<br>
>> but leave it as is. Don't you?<br>
> <br>
> Either this or hack it under anonimization, something like this<br>
> (completely untested):<br>
<br>
[..]<br>
And a little self-correction:<br>
<br>
--->8---<br>
<br>
diff --git a/criu/pie/parasite-vdso.c b/criu/pie/parasite-vdso.c<br>
index 38da766804ab..3e48013b9e63 100644<br>
--- a/criu/pie/parasite-vdso.c<br>
+++ b/criu/pie/parasite-vdso.c<br>
@@ -292,6 +292,12 @@ int vdso_proxify(struct vdso_maps *rt, bool<br>
*added_proxy,<br>
return -1;<br>
}<br>
<br>
+ /* Anonymous images don't have vdso in pages*.img */<br>
+ if (opts.anonymize) {<br>
+ *added_proxy = false;<br>
+ return remap_rt_vdso(vma_vdso, vma_vvar, rt);<br>
+ }<br>
+<br>
/*<br>
* vDSO mark overwrites Elf program header of proxy vDSO thus<br>
* it must never ever be greater in size.<br>
</blockquote></div>