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
--- 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. */ \