[CRIU] [PATCH 0/8] vdso: Use gettimeofday() from vdso for timings

Andrei Vagin avagin at gmail.com
Tue Aug 6 07:30:38 MSK 2019


Applied, thanks!

On Thu, Jul 25, 2019 at 11:01:06PM +0100, Dmitry Safonov wrote:
> Historically, PIE uses syscalls for printing timings.
> The idea was written a while ago here:
> https://github.com/checkpoint-restore/criu/issues/346
> 
> While at it, I've found that we print timings only in restorer blob, but
> not in parasite. It may be intentional or just missed
> std_log_set_start() call in parasite_init_daemon().
> Anyway, I've decided to keep it as-is for now.
> 
> Also, adding support for timings from vdso in ia32 turned to be more
> complex (see a comment in the last patch), so I decided to start from
> native applications.
> 
> I've measured the gain on zdtm tests:
> https://gist.github.com/0x7f454c46/7147b519e49f9ad01706c27ab1334fa7
> It seems that criu is really voluble on restoring mappings :)
> 
> Anyway, the gain is not as huge as I've expected (I thought we print
> much more), but still removes 50-100 syscalls per most of zdtm tests.
> And it doesn't bring much complexity as we already have all information
> about vdso mappings and symbol tables in restorer.
> So, remove syscalls for free and keep being the same informative.
> 
> Cc: Cyrill Gorcunov <gorcunov at gmail.com>
> 
> Dmitry Safonov (8):
>   compel/log: Use enum as parameter for std_log_set_loglevel()
>   compel/std/uapi: Provide setter for gettimeofday()
>   vdso/restorer: Try best to preserve vdso during restore
>   vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt
>   restorer/parasite-vdso: Don't move vvar if failed to move vdso
>   seccomp/restorer: Disable gtod from vdso in strict mode
>   vdso: Add compatible property to vdso_maps
>   restorer: Use gettimeofday() from rt-vdso for log timings
> 
>  compel/plugins/include/uapi/std/log.h |  16 ++-
>  compel/plugins/std/log.c              |  18 ++-
>  criu/arch/aarch64/include/asm/vdso.h  |   1 +
>  criu/arch/arm/include/asm/vdso.h      |   1 +
>  criu/arch/ppc64/include/asm/vdso.h    |   1 +
>  criu/arch/s390/include/asm/vdso.h     |   3 +-
>  criu/arch/x86/include/asm/vdso.h      |   3 +-
>  criu/include/parasite-vdso.h          |   4 +-
>  criu/include/util-vdso.h              |   1 +
>  criu/pie/parasite-vdso.c              | 164 +++++++++++++++-----------
>  criu/pie/restorer.c                   | 115 ++++++++++++++----
>  criu/vdso.c                           |   6 +-
>  12 files changed, 227 insertions(+), 106 deletions(-)
> 
> -- 
> 2.22.0
> 
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu


More information about the CRIU mailing list