[crac] RFR: Add debug flag to -XX:CREngine.
Radim Vansa
rvansa at openjdk.org
Mon Jan 8 09:15:14 UTC 2024
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
I meant diagnostic in the current state where all you can do is change output verbosity/destination. Had you added e.g. `--no-mmap-page-image` it would become more (and logging aside, this is really the only CRIU option that makes sense to change).
@yukikimmura I hope you're not offended by questioning the usefulness of your contribution; I simply feel that I made a mistake adding the CREngine params and therefore I am reluctant to build on top of that when I'd prefer to implement verbose logging in a different way.
-------------
PR Comment: https://git.openjdk.org/crac/pull/151#issuecomment-1880619254
More information about the crac-dev
mailing list