[crac] RFR: Add debug flag to -XX:CREngine.
Kimura Yukihiro
kyukihiro at openjdk.org
Wed Dec 27 01:35: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
Hello simonis,
Thank you for your comment.
The debug flag I propose is purely for tracing and debugging the internal operation of the ciruengine.
I understand that CRAC_CRIU_OPTS is an environment variable for specifying options for criu.
Printing the ciru command sequence when the debug flag is set to true is one example.
However, the purpose of using the debug flag is not limited to this.
Thank you,
Kimura Yukihiro
-------------
PR Comment: https://git.openjdk.org/crac/pull/151#issuecomment-1869863665
More information about the crac-dev
mailing list