RFR: 8048093 - Explicitly setting := vs = in the -XX:+PrintFlagsFinal output

Jesper Wilhelmsson jesper.wilhelmsson at oracle.com
Tue Jun 21 19:09:50 UTC 2016


Hi,

Please review this change to make -XX:+PrintFlagsFinal distinguish between flags 
changed on the command line and flags changed by the ergonomics.

To enable us to remember if a flag was set on the command line or not after 
having been changed by the ergonomics I use another bit in the Flag struct.

The actual symbols printed by PrintFlagsFinal are chosen somewhat arbitrary and 
I'm open to suggestions (bike sheding) about how to visualize this the best.

The old decorations are:

' =' - Default value (no decoration)
':=' - Value was changed, either by command line or ergonomics or other

The new decorations are:

' =' - Default value (no decoration)
':=' - Set on the command line
'?=' - Changed by the ergonomics
'!=' - Set on the command line AND changed by the ergonomics
'-=' - Any other origin, like changed by management API or taken from a config file

My reasoning behind selecting these characters are that ':=' looks like a solid 
assignment and will therefore represent the command line. You never know what 
you get from the ergonomics, so '?=' seems appropriate. '!=' because you'd want 
to know that the ergonomics changed a value you had set on the command line.

Another option could be to use a colon ':=' for the command line, and a comma 
',=' for the ergonomics. That would naturally give us the semi-colon ';=' for 
something set on the command line and changed by the ergonomics. I didn't go 
with this because the colon and semi-colon can be hard to distinguish from each 
other.

As mentioned above there are other origins, the enum contains eight values. 
There is no mention of the other types in the bug and there are no is_...() for 
the other types in globals.cpp, so they didn't seem as important. If the general 
opinion is that these other origins are as important, or we might as well..., 
I'd suggest that we use letters as decorations. Let me know if you have an opinion.


Bug: https://bugs.openjdk.java.net/browse/JDK-8048093
Webrev: http://cr.openjdk.java.net/~jwilhelm/8048093/webrev.00/

Thanks,
/Jesper


More information about the hotspot-dev mailing list