RFR: 8152896: Convert PrintCompressedOopsMode to Unified Logging

Thomas Stüfe thomas.stuefe at gmail.com
Thu Apr 7 07:28:58 UTC 2016


Hi Rachel,

On Wed, Apr 6, 2016 at 5:53 PM, Rachel Protacio <rachel.protacio at oracle.com>
wrote:

> Hi,
>
> Thanks for the response. Yes, there is other gc+heap logging already
> present. As you can see from the grep below, there are a number of other
> messages, especially in the trace level (which is to be expected as verbose
> anyway). Additionally, there's the question of which level should be
> aliased to. Right now, I have it at the info level, which just prints the
> "Heap address" line but I could make it debug level to print the other ones
> from virtualspace.cpp.
>
> I'm fine with adding another tag, but I want to make sure we have a
> consensus before I do so. Does anyone else want to weigh in?
>
> Thanks,
> Rachel
>
>
Thank you for considering this. It would be nice to have but is not
terribly important.

Thomas


>
>
> src/share/vm/runtime/arguments.cpp:1766:    log_trace(gc, heap)("CMS ergo
> set MaxNewSize: " SIZE_FORMAT, MaxNewSize);
> src/share/vm/runtime/arguments.cpp:1769:    log_trace(gc, heap)("CMS set
> min_heap_size: " SIZE_FORMAT " initial_heap_size:  " SIZE_FORMAT "
> max_heap: " SIZE_FORMAT,
> src/share/vm/runtime/arguments.cpp:1781:        log_trace(gc, heap)("CMS
> ergo set NewSize: " SIZE_FORMAT, NewSize);
> src/share/vm/runtime/arguments.cpp:1788:          log_trace(gc, heap)("CMS
> ergo set OldSize: " SIZE_FORMAT, OldSize);
> src/share/vm/runtime/arguments.cpp:2189:          log_debug(gc,
> heap)("HeapBaseMinAddress must be at least " SIZE_FORMAT
> src/share/vm/runtime/arguments.cpp:2215:    log_trace(gc, heap)("  Maximum
> heap size " SIZE_FORMAT, (size_t) reasonable_max);
> src/share/vm/runtime/arguments.cpp:2236:      log_trace(gc, heap)("
> Initial heap size " SIZE_FORMAT, (size_t)reasonable_initial);
> src/share/vm/runtime/arguments.cpp:2243:      log_trace(gc, heap)("
> Minimum heap size " SIZE_FORMAT, min_heap_size());
> src/share/vm/gc/shared/collectorPolicy.cpp:144:  log_debug(gc,
> heap)("Minimum heap " SIZE_FORMAT "  Initial heap " SIZE_FORMAT "  Maximum
> heap " SIZE_FORMAT,
> src/share/vm/gc/shared/collectorPolicy.cpp:492:  log_trace(gc, heap)("1:
> Minimum young " SIZE_FORMAT "  Initial young " SIZE_FORMAT "  Maximum young
> " SIZE_FORMAT,
> src/share/vm/gc/shared/collectorPolicy.cpp:559:    log_trace(gc, heap)("2:
> Minimum young " SIZE_FORMAT "  Initial young " SIZE_FORMAT "  Maximum young
> " SIZE_FORMAT,
> src/share/vm/gc/shared/collectorPolicy.cpp:576:  log_trace(gc,
> heap)("Minimum old " SIZE_FORMAT "  Initial old " SIZE_FORMAT "  Maximum
> old " SIZE_FORMAT,
> src/share/vm/gc/shared/cardGeneration.cpp:102:    log_trace(gc,
> heap)("Expanding %s from " SIZE_FORMAT "K by " SIZE_FORMAT "K to "
> SIZE_FORMAT "K",
> src/share/vm/gc/shared/cardGeneration.cpp:135:    log_trace(gc,
> heap)("Garbage collection disabled, expanded heap instead");
> src/share/vm/gc/shared/cardGeneration.cpp:173:  log_trace(gc,
> heap)("Shrinking %s from " SIZE_FORMAT "K to " SIZE_FORMAT "K",
> src/share/vm/gc/shared/cardGeneration.cpp:210:    log_trace(gc,
> heap)("TenuredGeneration::compute_new_size:");
> src/share/vm/gc/shared/cardGeneration.cpp:211:    log_trace(gc, heap)("
> minimum_free_percentage: %6.2f  maximum_used_percentage: %6.2f",
> src/share/vm/gc/shared/cardGeneration.cpp:214:    log_trace(gc,
> heap)("     free_after_gc   : %6.1fK   used_after_gc   : %6.1fK
> capacity_after_gc   : %6.1fK",
> src/share/vm/gc/shared/cardGeneration.cpp:218:    log_trace(gc,
> heap)("     free_percentage: %6.2f", free_percentage);
> src/share/vm/gc/shared/cardGeneration.cpp:227:    log_trace(gc, heap)("
> expanding:  minimum_desired_capacity: %6.1fK  expand_bytes: %6.1fK
> _min_heap_delta_bytes: %6.1fK",
> src/share/vm/gc/shared/cardGeneration.cpp:245:    log_trace(gc, heap)("
> maximum_free_percentage: %6.2f  minimum_used_percentage: %6.2f",
> src/share/vm/gc/shared/cardGeneration.cpp:247:    log_trace(gc, heap)("
> _capacity_at_prologue: %6.1fK  minimum_desired_capacity: %6.1fK
> maximum_desired_capacity: %6.1fK",
> src/share/vm/gc/shared/cardGeneration.cpp:273:      log_trace(gc,
> heap)("    shrinking:  initSize: %.1fK  maximum_desired_capacity: %.1fK",
> src/share/vm/gc/shared/cardGeneration.cpp:275:      log_trace(gc,
> heap)("    shrink_bytes: %.1fK  current_shrink_factor: " SIZE_FORMAT "  new
> shrink factor: " SIZE_FORMAT "  _min_heap_delta_bytes: %.1fK",
> src/share/vm/gc/shared/cardGeneration.cpp:292:    log_trace(gc, heap)("
> aggressive shrinking:  _capacity_at_prologue: %.1fK  capacity_after_gc:
> %.1fK  expansion_for_promotion: %.1fK  shrink_bytes: %.1fK",
> src/share/vm/gc/shared/genCollectedHeap.cpp:1134:  log_info(gc, heap)("%s:
> " SIZE_FORMAT "K->" SIZE_FORMAT "K("  SIZE_FORMAT "K)",
> src/share/vm/gc/shared/genCollectedHeap.cpp:1136:  log_info(gc, heap)("%s:
> " SIZE_FORMAT "K->" SIZE_FORMAT "K("  SIZE_FORMAT "K)",
> src/share/vm/gc/parallel/psOldGen.cpp:432:  log_info(gc, heap)("%s: "
> SIZE_FORMAT "K->" SIZE_FORMAT "K("  SIZE_FORMAT "K)",
> src/share/vm/gc/parallel/psYoungGen.cpp:764:  log_info(gc, heap)("%s: "
> SIZE_FORMAT "K->" SIZE_FORMAT "K("  SIZE_FORMAT "K)",
> src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp:1608:  Log(gc, heap)
> log;
> src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp:1893:  log_info(gc,
> heap)("Old: " SIZE_FORMAT "K->" SIZE_FORMAT "K("  SIZE_FORMAT "K)",
> src/share/vm/gc/g1/heapRegion.cpp:148:  log_info(gc, heap)("Heap region
> size: " SIZE_FORMAT "M", GrainBytes / M);
> src/share/vm/gc/g1/g1HeapTransition.cpp:89:  if (log_is_enabled(Trace, gc,
> heap)) {
> src/share/vm/gc/g1/g1HeapTransition.cpp:102:  log_info(gc, heap)("Eden
> regions: " SIZE_FORMAT "->" SIZE_FORMAT "("  SIZE_FORMAT ")",
> src/share/vm/gc/g1/g1HeapTransition.cpp:104:  log_trace(gc, heap)(" Used:
> 0K, Waste: 0K");
> src/share/vm/gc/g1/g1HeapTransition.cpp:106:  log_info(gc, heap)("Survivor
> regions: " SIZE_FORMAT "->" SIZE_FORMAT "("  SIZE_FORMAT ")",
> src/share/vm/gc/g1/g1HeapTransition.cpp:108:  log_trace(gc, heap)(" Used:
> " SIZE_FORMAT "K, Waste: " SIZE_FORMAT "K",
> src/share/vm/gc/g1/g1HeapTransition.cpp:111:  log_info(gc, heap)("Old
> regions: " SIZE_FORMAT "->" SIZE_FORMAT,
> src/share/vm/gc/g1/g1HeapTransition.cpp:113:  log_trace(gc, heap)(" Used:
> " SIZE_FORMAT "K, Waste: " SIZE_FORMAT "K",
> src/share/vm/gc/g1/g1HeapTransition.cpp:116:  log_info(gc,
> heap)("Humongous regions: " SIZE_FORMAT "->" SIZE_FORMAT,
> src/share/vm/gc/g1/g1HeapTransition.cpp:118:  log_trace(gc, heap)(" Used:
> " SIZE_FORMAT "K, Waste: " SIZE_FORMAT "K",
> src/share/vm/memory/virtualspace.cpp:83:    log_debug(gc, heap)("Reserved
> memory not at requested address: " PTR_FORMAT " vs " PTR_FORMAT, p2i(base),
> p2i(requested_address));
> src/share/vm/memory/virtualspace.cpp:145:        log_debug(gc,
> heap)("Reserve regular memory without large pages");
> src/share/vm/memory/virtualspace.cpp:285:      log_debug(gc,
> heap)("Protected page at the reserved heap base: "
> src/share/vm/memory/virtualspace.cpp:319:  log_trace(gc, heap)("Trying to
> allocate at address " PTR_FORMAT
> src/share/vm/memory/virtualspace.cpp:341:      log_debug(gc,
> heap)("Reserve regular memory without large pages");
> src/share/vm/memory/virtualspace.cpp:553:      log_trace(gc, heap)("Trying
> to allocate at address NULL heap of size " SIZE_FORMAT_HEX, size +
> noaccess_prefix);
> src/share/vm/memory/universe.cpp:750:    if (log_is_enabled(Info, gc,
> heap)) {
> src/share/vm/memory/universe.cpp:752:      outputStream* logst = Log(gc,
> heap)::info_stream();
> src/share/vm/memory/universe.cpp:1088:  Log(gc, heap) log;
> src/share/vm/memory/universe.cpp:1097:  Log(gc, heap) log;
>
>
> On 4/6/2016 8:26 AM, Thomas Stüfe wrote:
>
> Hi Rachel,
>
> one question, does this change the output for -XX:PrintCompressedOopsMode
> much? It seems to be wired now to "LOG_TAGS(gc, heap)", which prints much
> more than just heap reservation for the compressed oops mode. Would it be
> possible to add a "coops" tag or similar to isolate this output?
>
> The reason I ask is that we used this flag extensively when optimizing
> heap reservation on AIX for compressed oops, and may want to continue using
> it or an alternative which gives the same output.
>
> Kind Regards, Thomas
>
>
> On Tue, Apr 5, 2016 at 8:00 PM, Rachel Protacio <
> rachel.protacio at oracle.com> wrote:
>
>> Hello,
>>
>> Please review this change, converting -XX:+PrintCompressedOopsMode to
>> -Xlog:gc+heap. The existing diagnostic flag has been aliased to the info
>> level of this tagset (for the "Heap address" message that for example
>> appears in the hs_err file), and there are both debug and trace levels of
>> logging available as well, as per our established schema for assigning
>> levels.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8152896
>> Open webrev: http://cr.openjdk.java.net/~rprotacio/8152896.00/
>>
>> Passes JPRT and RBT quick/non-colo tests.
>>
>> Thanks!
>> Rachel
>>
>
>
>


More information about the hotspot-runtime-dev mailing list