[crac] RFR: Add debug flag to -XX:CREngine.

Kimura Yukihiro kyukihiro at openjdk.org
Thu Dec 28 03:03:02 UTC 2023


On Sun, 24 Dec 2023 23:45:29 GMT, Kimura Yukihiro <kyukihiro at openjdk.org> wrote:

> Hello everyone,
> 
> This is my first PR for the CRAC project. I propose three modifications to the criuengine.
> 
> Firstly, I suggest adding a debug flag to the criuengine, as some JDK C/C++ native codes have the debug flag. 
> My proposal is to pass the debug flag using "-XX:CREngine=criuengine,debug,true".
> 
> Secondly, the criuengine has a useful function, print_command_args_to_stderr(), which prints the criu command line. 
> However, it is only called when an error occurs. I believe it would be beneficial if the criu command line is printed when the debug flag is specified.
> 
> The criu command line is built from the parameter of -XX:CREngine and environment variables such as CRAC_CRIU_PATH and CRAC_CRIU_OPT. 
> It would be helpful to see how it is actually assembled.
> 
> For example:
>  $ export CRAC_CRIU_PATH=/work/criu-crac-release-1.4/sbin/criu
>  $ ./jdk/bin/java -XX:CREngine=/work/jdk/lib/criuengine,-v,3,-o,output3.log,-d,true -XX:CRaCCheckpointTo=cr Test
> 
>  Command: /work/criu-crac-release-1.4/sbin/criu dump -t 3232214 -D cr --shell-job '--verbosity=3' -o output3.log
> 
> Thirdly, I propose that the criuengine command line, which is executed by the JavaVM, be printed when "-XX:CREngine=criuengine,debug,true" is specified. 
> For example, 
>  CRaC info executing: /work/jdk/lib/criuengine checkpoint -v 3 -o output3.log -d true cr
> 
> Testing:
> I have verified the jdk/crac/VMOptionsTest.java, which is a test for -XX:CREngine. I believe it's unnecessary to add a test for the debug flag to it.
> 
> Could you please review these modifications?
> 
> Thank you,
> Kimura Yukihiro

To clarify, this is not a feature to pass debug flags to the criu command. 
It is for tracing or debugging criuengine.c. 
There may be an argument that criuengine is not so complex as to require debug flags. 
The log output by ciru --verbosity does not display the criu command sequence, 
so I would like a feature to print the criu command sequence when the debug flag is specified.

Sorry, I'm on vacation so I won't be able to reply for a while.

Thank you,
Kimura Yukihiro

-------------

PR Comment: https://git.openjdk.org/crac/pull/151#issuecomment-1870778284


More information about the crac-dev mailing list