RFR: 8142506: Reimplement TraceClassUnloading with Unified Logging. (original) (raw)
Ioi Lam ioi.lam at oracle.com
Sun Nov 29 11:02:34 UTC 2015
- Previous message: RFR: 8142506: Reimplement TraceClassUnloading with Unified Logging.
- Next message: (S) RFR: 8139300: Internal Error (vm/utilities/debug.cpp:399), # Error: ShouldNotReachHere()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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 parseeachvminitarg 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 parseeachvminitarg, 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
- Previous message: RFR: 8142506: Reimplement TraceClassUnloading with Unified Logging.
- Next message: (S) RFR: 8139300: Internal Error (vm/utilities/debug.cpp:399), # Error: ShouldNotReachHere()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]