OpenJDK / jdk / jdk10
changeset 3580:55775b48f5e5
6862295: JDWP threadid changes during debugging session (leading to ingored breakpoints)
Summary: Correctly count full GC operations for framework collectors. Add ForceFullGCJVMTIEpilogues as a future work around if needed.
Reviewed-by: jcoomes, alanb, ysr
author | dcubed |
---|---|
date | Tue, 28 Jul 2009 13:35:00 -0600 |
parents | 215ca3a22a92 |
children | c84159af60dd 467c462a4525 |
files | hotspot/src/share/vm/memory/genCollectedHeap.cpp hotspot/src/share/vm/prims/jvmtiExport.cpp hotspot/src/share/vm/runtime/globals.hpp |
diffstat | 3 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/hotspot/src/share/vm/memory/genCollectedHeap.cpp Sat Dec 20 09:58:36 2008 -0800 +++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp Tue Jul 28 13:35:00 2009 -0600 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -456,6 +456,12 @@ int max_level_collected = starting_level; for (int i = starting_level; i <= max_level; i++) { if (_gens[i]->should_collect(full, size, is_tlab)) { + if (i == n_gens() - 1) { // a major collection is to happen + if (!complete) { + // The full_collections increment was missed above. + increment_total_full_collections(); + } + } // Timer for individual generations. Last argument is false: no CR TraceTime t1(_gens[i]->short_name(), PrintGCDetails, false, gclog_or_tty); TraceCollectorStats tcs(_gens[i]->counters());
--- a/hotspot/src/share/vm/prims/jvmtiExport.cpp Sat Dec 20 09:58:36 2008 -0800 +++ b/hotspot/src/share/vm/prims/jvmtiExport.cpp Tue Jul 28 13:35:00 2009 -0600 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -2421,6 +2421,11 @@ return; } + if (ForceFullGCJVMTIEpilogues) { + // force 'Full GC' was done semantics for JVMTI GC epilogues + _full = true; + } + // GarbageCollectionStart event posted from VM thread - okay because // JVMTI is clear that the "world is stopped" and callback shouldn't // try to call into the VM.
--- a/hotspot/src/share/vm/runtime/globals.hpp Sat Dec 20 09:58:36 2008 -0800 +++ b/hotspot/src/share/vm/runtime/globals.hpp Tue Jul 28 13:35:00 2009 -0600 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1053,6 +1053,9 @@ product(ccstr, TraceJVMTI, NULL, \ "Trace flags for JVMTI functions and events") \ \ + product(bool, ForceFullGCJVMTIEpilogues, false, \ + "Force 'Full GC' was done semantics for JVMTI GC epilogues") \ + \ /* This option can change an EMCP method into an obsolete method. */ \ /* This can affect tests that except specific methods to be EMCP. */ \ /* This option should be used with caution. */ \