[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