[CRIU] Restarting ERESTART_RESTARTBLOCK

Rayson Ho raysonlogin at gmail.com
Mon Feb 5 10:04:59 MSK 2018


I'm trying to debug a GO lang restart deadlock in the GO runtime, and
I was narrowing down to the handling of ERESTART_RESTARTBLOCK.

According to the "Understanding the Linux Kernel" book:

============================================================================
... restart_block field in the current's thread_info structure with
the address of a special service routine to be used when restarting,
and returns -ERESTART_RESTARTBLOCK if interrupted. The
sys_restart_syscall( ) service routine just executes the special
nanosleep( )'s service routine, which adjusts the delay to consider
the time elapsed between the invocation of the original system call
and its restarting.
============================================================================

My question is, it does not seem like CRIU dumps the whole thread_info
structure in dump_thread_common(), so would the ERESTART_RESTARTBLOCK
mechanism still be correct during restore?

Thanks,
Rayson

==================================================
Open Grid Scheduler - The Official Open Source Grid Engine
http://gridscheduler.sourceforge.net/
http://gridscheduler.sourceforge.net/GridEngine/GridEngineCloud.html


More information about the CRIU mailing list