RFR: 8142506: Reimplement TraceClassUnloading with Unified Logging.

Ioi Lam ioi.lam at oracle.com
Sun Nov 29 11:02:34 UTC 2015


Not a full review, but I think the "[" and "]" should be removed from 
the output, such as

1322   if (log_is_enabled(Trace, classunload)) {
1323     outputStream* log = LogHandle(classunload)::trace_stream();
1324     log->print_cr("[Class unloading: Making nmethod " INTPTR_FORMAT
1325                   " unloadable], Method*(" INTPTR_FORMAT
1326                   "), cause(" INTPTR_FORMAT ")",

The "[" and "]" were used as markers for grouping related output, but UL 
already provides a new way for group the information (per line with the 
logTag). That's why I have removed the "[" and "]" in my class loading 
log UL fix:

http://cr.openjdk.java.net/~iklam/8079408-improve-class-load-log/

"Class unloading: " and other similar strings should also be removed.

Thanks
- Ioi

On 11/11/15 12:23 PM, Max Ockner wrote:
> 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