RFR: 8142506: Reimplement TraceClassUnloading with Unified Logging.

Max Ockner max.ockner at oracle.com
Wed Nov 11 20:23:00 UTC 2015


Hello,
Please review my change.

Bug:  https://bugs.openjdk.java.net/browse/JDK-8142506
Webrev:  http://cr.openjdk.java.net/~mockner/classunload/

Testing:
Hotspot jtreg tests with and without "-Xlog:classunload=trace"
runthese tests with "-Xlog:classunload=trace"
new jtreg test for classunload output.

Summary:

There are two parts to this fix.

(1) Existing logic for TraceClassUnloading has been replaced with 
commands from Unified Logging.

(2) Logging Alias Table. "-XX:+TraceClassUnloading" is now mapped to 
"-Xlog:classunload=debug" in the new logging alias table in 
arguments.cpp. Arguments are checked in the beginning of 
parse_each_vm_init_arg and if an argument (such as 
-XX:+TraceClassUnloading") is found in the alias table, the optionString 
is substituted for the value found in the logging alias table.

I had to make a few decisions along that might raise questions, so I 
will knock a few of them out now.

Why didn't I use the existing alias table?
- Existing alias table only stores the flag name (TraceClassUnloading) 
and is meant for substituting one "-XX:" argument for another. This does 
not solve our problem.

Why didn't I process the logging aliases later in 
parse_each_vm_init_arg, next to the rest of the "-XX:" argument processing?
- The main processing for "-XX:" options happens after processing of 
"-Xlog" options. If we want the unified logging alias to be handled, it 
needs to be substituted in before "-Xlog:" is handled.

Why does "-XX:+TraceClassUnloading" get aliased to 
"-Xlog:classunload=debug" and not "-Xlog:classunload=trace"?
- logging statements that contained the develop-only flag "WizardMode" 
were converted to "-Xlog:classunload=trace". The logging statements that 
could have been previously been triggered in Product mode are all now 
accessed by "-Xlog:classunload=debug". (We are updating logging, but we 
are not updating the functionality of the old logging options. Old 
options such as TraceClassUnloading are being aliased so they may 
continue to work in *exactly* the way they did before.)

Thanks,
Max



More information about the hotspot-runtime-dev mailing list