Please see updated webrev
http://cr.openjdk.java.net/~rprotacio/8139564.02/ with the following
changes:
- repositioned and deleted ResourceMark's, as per Harold's suggestions
- fixed copyright year in test file
- moved update_position() line in ostream.cpp because it was breaking
indentation in defaultmethods logging
Marcus, see reply inline.
On 10/19/2015 10:35 AM, Marcus Larsson wrote:
Hi,
On 2015-10-16 18:21, Coleen Phillimore wrote:
Hi,
I added the serviceability group so they can comment on this as
well. I think having logging in the PRODUCT build is requested so
that we can more easily debug customer problems. That said, we will
not enable logging in product if we see any performance problem.
Also for some options it's possible that these are strictly internal
debugging options and in that case we'll either remove them if
they're no longer useful, or make them Develop level options.
This seems like a good approach to me. The develop level was added to
accommodate internal or performance sensitive logging that shouldn't
be included in the product.
Printing default methods seems to be something that might be
borderline in the second case, but we've decided to make it product
level logging. We could change our minds about this though, so your
comments are welcome.
If it's borderline to internal wouldn't it be more fitting to use
trace level for this logging?
Since it's not a question of verbosity but of audience, we'll leave it
as it is.
Thanks,
Rachel
Thanks,
Marcus
Thanks,
Coleen
On 10/15/15 6:33 PM, Ioi Lam wrote:
On 10/15/15 10:51 AM, Rachel Protacio wrote:
Hi, Ioi,
Thanks for the comments. While all valid points, the decision by
the serviceability team with regards to the logging framework as a
whole is to move all the output to product mode. Because of this, I
ran performance tests to make sure that the newly-introduced
product code will not slow it down. So yes, all the "#ifndef
PRODUCT" sections that are necessary for this logging have been
liberated to product mode.
Thanks Rachel. This makes sense.
- Ioi
Also, I realized I did not remove the TraceDefaultMethods flag from
globals.hpp, so here is the link to the updated webrev:
http://cr.openjdk.java.net/~rprotacio/8139564.01/
Which builds appropriately. The change now encompasses all the
references to TraceDefaultMethods. A compatibility request has been
accepted with regards to this change.
Thanks,
Rachel
On 10/14/2015 11:58 PM, Ioi Lam wrote:
Hi Rachel,
Before your changes, this block of code would be excluded from
product builds:
684 #ifndef PRODUCT
685 if (TraceDefaultMethods) {
686 tty->print_cr("Slots that need filling:");
687 streamIndentor si(tty);
688 for (int i = 0; i < slots->length(); ++i) {
689 tty->indent();
690 slots->at(i)->print_on(tty);
691 tty->cr();
692 }
693 }
694 #endif // ndef PRODUCT
but after your change, it will be included in product builds. This
means product builds will have more verbose output than before. It
also means that the product builds will get bigger (because some
printing code, such as EmptyVtableSlot::print_on(), would need to
be enabled for product builds as well).
I am not very familiar with UL so maybe this is an FAQ ... while
doing the UL conversion, should we add all the old "ifndef
PRODUCT" logs into the product build?
Thanks
- Ioi
On 10/14/15 7:10 PM, Rachel Protacio wrote:
Hello! Please take a look at my enhancement, the first of the
runtime logging flags to be converted.
Summary: The former -XX:+TraceDefaultMethods flag is updated to
the unified logging framework and is now replaced with
-Xlog:defaultmethods.
open webrev: http://cr.openjdk.java.net/~rprotacio/8139564/
bug: https://bugs.openjdk.java.net/browse/JDK-8139564
testing: Passes JPRT, RBT, and RefWorkload performance testing.
Thank you,
Rachel