RFR: 8269022: Put evacuation failure string directly into gc=info log message

Leo Korinth lkorinth at openjdk.java.net
Wed Jun 30 10:44:03 UTC 2021


On Mon, 21 Jun 2021 13:18:11 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

> Hi all,
> 
>   can I have reviews for this change that puts the evacuation failure marker from a separate log line into the GC timing message. I.e. instead of
> 
> 
> Pause Young (Normal) (G1 Evacuation Pause)
> To-space exhausted
> 
> into
> 
> 
> Pause Young (Normal) (Evacuation Failure) (G1 Evacuation Pause) 
> 
> 
> This is imho easier to read, better to process and less wasteful with log space.
> 
> Testing: tier1, gc/g1 tests

I have some comments, but otherwise it looks good to me.

src/hotspot/share/gc/g1/g1CollectedHeap.cpp line 2917:

> 2915:   GCTraceTime(Info, gc) _tt;
> 2916: 
> 2917:   char* update_young_gc_name() {

this can be made a const char*, right?

src/hotspot/share/gc/g1/g1CollectedHeap.cpp line 2938:

> 2936:   ~G1YoungGCTraceTime() {
> 2937:     update_young_gc_name();
> 2938:   }

Do I understand correctly that we update the name in _young_gc_name_data in the destructor, and then depend on that _tt does not  copy that value earlier --- only the pointer? This seems quite fragile if GCTraceTimeWrapper would change, and I think would at least warrant a comment in the constructor that the string *will* be updated in the destructor.

test/hotspot/jtreg/gc/g1/TestEvacuationFailure.java line 70:

> 68: 
> 69:         public static void main(String [] args) {
> 70:             largeObject = new byte[16*1024*1024];

space around asterisks

-------------

Marked as reviewed by lkorinth (Committer).

PR: https://git.openjdk.java.net/jdk/pull/4539


More information about the hotspot-gc-dev mailing list