/hg/icedtea8-forest/hotspot: 7 new changesets
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Fri Jun 5 00:32:24 UTC 2015
changeset 74654e3651a9 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=74654e3651a9
author: andrew
date: Thu Jun 04 18:52:58 2015 +0100
PR1975: SystemTap probes for the garbage collector.
Contributed-by: Lukas Berk <lberk at redhat.com>
changeset 1da8d6e3bcfe in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=1da8d6e3bcfe
author: sgehwolf
date: Wed Apr 29 12:23:48 2015 -0700
8078666, PR2325: JVM fastdebug build compiled with GCC 5 asserts with "widen increases"
Summary: do the math on the unsigned type where overflows are well defined
Reviewed-by: kvn, aph
changeset c4bfba1711ba in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=c4bfba1711ba
author: goetz
date: Wed Apr 29 11:22:15 2015 +0200
8078482, PR2398, RH1201393: ppc: pass thread to throw_AbstractMethodError
Summary: Also improve check for Safepoints in signal handler.
Reviewed-by: kvn, simonis
changeset 2c3837236644 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=2c3837236644
author: andrew
date: Thu Jun 04 20:08:02 2015 +0100
PR2400: Zero JVM crashes on startup when built with GCC 5
changeset 746efa1d4492 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=746efa1d4492
author: andrew
date: Thu Jun 04 20:11:35 2015 +0100
PR2237: ppc64le should report its os.arch as ppc64le so tools can detect it
Summary: Use ppc64le as the arch directory on that platform and report it in os.arch
changeset 9fba4ee6c40a in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=9fba4ee6c40a
author: roland
date: Mon Dec 15 09:36:46 2014 +0100
8067231, PR2401: Zero builds fails after JDK-6898462
Summary: Interpreter::remove_activation_entry() is not defined for the C++ interpreter
Reviewed-by: roland, coleenp
Contributed-by: Severin Gehwolf <sgehwolf at redhat.com>
changeset 7e5a87c79d69 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=7e5a87c79d69
author: ysuenaga
date: Tue Apr 28 19:04:39 2015 +0900
8076212, PR2402: AllocateHeap() and ReallocateHeap() should be inlined.
Summary: NMT with detail option reports incorrect caller address on Linux.
Reviewed-by: dholmes, coleenp
diffstat:
make/defs.make | 7 ++
src/cpu/ppc/vm/interpreter_ppc.cpp | 7 +-
src/os/linux/vm/os_linux.cpp | 4 +
src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp | 10 ++-
src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 4 +-
src/share/vm/compiler/oopMap.cpp | 7 ++
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp | 12 ++++
src/share/vm/gc_implementation/g1/g1MarkSweep.cpp | 11 +++
src/share/vm/gc_implementation/parNew/parNewGeneration.cpp | 13 ++++
src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp | 12 ++++
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp | 16 +++++
src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp | 28 ++++++++++
src/share/vm/interpreter/interpreterRuntime.cpp | 4 +
src/share/vm/memory/allocation.inline.hpp | 7 ++
src/share/vm/memory/defNewGeneration.cpp | 13 ++++
src/share/vm/memory/generation.cpp | 12 ++++
src/share/vm/memory/tenuredGeneration.cpp | 12 ++++
src/share/vm/opto/type.cpp | 16 ++--
18 files changed, 179 insertions(+), 16 deletions(-)
diffs (truncated from 557 to 500 lines):
diff -r 9b0cf2504591 -r 7e5a87c79d69 make/defs.make
--- a/make/defs.make Thu Jun 04 03:02:52 2015 +0100
+++ b/make/defs.make Tue Apr 28 19:04:39 2015 +0900
@@ -319,6 +319,13 @@
LIBARCH/arm = arm
LIBARCH/zero = $(ZERO_LIBARCH)
+ # Override LIBARCH for ppc64le
+ ifeq ($(ARCH), ppc64)
+ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN), little)
+ LIBARCH = ppc64le
+ endif
+ endif
+
LP64_ARCH = sparcv9 amd64 ia64 ppc64 aarch64 zero
endif
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/cpu/ppc/vm/interpreter_ppc.cpp
--- a/src/cpu/ppc/vm/interpreter_ppc.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/cpu/ppc/vm/interpreter_ppc.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -1,6 +1,6 @@
/*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2012, 2014 SAP AG. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2012, 2015 SAP AG. 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
@@ -459,7 +459,8 @@
// This is not a leaf but we have a JavaFrameAnchor now and we will
// check (create) exceptions afterward so this is ok.
- __ call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError));
+ __ call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError),
+ R16_thread);
// Pop the C frame and restore LR.
__ pop_frame();
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/os/linux/vm/os_linux.cpp
--- a/src/os/linux/vm/os_linux.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/os/linux/vm/os_linux.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -265,7 +265,11 @@
#elif defined(PPC32)
static char cpu_arch[] = "ppc";
#elif defined(PPC64)
+#if defined(VM_LITTLE_ENDIAN)
+static char cpu_arch[] = "ppc64le";
+#else
static char cpu_arch[] = "ppc64";
+#endif
#elif defined(SPARC)
# ifdef _LP64
static char cpu_arch[] = "sparcv9";
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
--- a/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -1,6 +1,6 @@
/*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2012, 2014 SAP AG. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2012, 2015 SAP AG. 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
@@ -290,6 +290,7 @@
goto report_and_die;
}
+ CodeBlob *cb = NULL;
// Handle signal from NativeJump::patch_verified_entry().
if (( TrapBasedNotEntrantChecks && sig == SIGTRAP && nativeInstruction_at(pc)->is_sigtrap_zombie_not_entrant()) ||
(!TrapBasedNotEntrantChecks && sig == SIGILL && nativeInstruction_at(pc)->is_sigill_zombie_not_entrant())) {
@@ -305,7 +306,10 @@
// especially when we try to read from the safepoint polling page. So the check
// (address)info->si_addr == os::get_standard_polling_page()
// doesn't work for us. We use:
- ((NativeInstruction*)pc)->is_safepoint_poll()) {
+ ((NativeInstruction*)pc)->is_safepoint_poll() &&
+ CodeCache::contains((void*) pc) &&
+ ((cb = CodeCache::find_blob(pc)) != NULL) &&
+ cb->is_nmethod()) {
if (TraceTraps) {
tty->print_cr("trap: safepoint_poll at " INTPTR_FORMAT " (SIGSEGV)", p2i(pc));
}
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/os_cpu/linux_zero/vm/os_linux_zero.cpp
--- a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -55,8 +55,8 @@
#include "utilities/vmError.hpp"
address os::current_stack_pointer() {
- address dummy = (address) &dummy;
- return dummy;
+ // return the address of the current function
+ return (address)__builtin_frame_address(0);
}
frame os::get_sender_for_C_frame(frame* fr) {
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/compiler/oopMap.cpp
--- a/src/share/vm/compiler/oopMap.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/compiler/oopMap.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -33,9 +33,13 @@
#include "memory/resourceArea.hpp"
#include "runtime/frame.inline.hpp"
#include "runtime/signature.hpp"
+#include "utilities/dtrace.hpp"
#ifdef COMPILER1
#include "c1/c1_Defs.hpp"
#endif
+#ifndef USDT2
+ HS_DTRACE_PROBE_DECL1(provider, gc__collection__delete, *uintptr_t);
+#endif /* !USDT2 */
// OopMapStream
@@ -664,6 +668,9 @@
" - Derived: " INTPTR_FORMAT " Base: " INTPTR_FORMAT " (Offset: " INTX_FORMAT ")",
p2i(derived_loc), p2i((address)*derived_loc), p2i((address)base), offset);
}
+#ifndef USDT2
+ HS_DTRACE_PROBE1(hotspot, gc__collection__delete, entry);
+#endif /* !USDT2 */
// Delete entry
delete entry;
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
--- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -63,6 +63,12 @@
#include "runtime/vmThread.hpp"
#include "services/memoryService.hpp"
#include "services/runtimeService.hpp"
+#include "utilities/dtrace.hpp"
+
+#ifndef USDT2
+ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__begin, bool, bool, size_t, bool);
+ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__end, bool, bool, size_t, bool);
+#endif /* !USDT2 */
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
@@ -1668,7 +1674,13 @@
size_t size,
bool tlab)
{
+#ifndef USDT2
+ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__begin, full, clear_all_soft_refs, size, tlab);
+#endif /* !USDT2 */
collector()->collect(full, clear_all_soft_refs, size, tlab);
+#ifndef USDT2
+ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__end, full, clear_all_soft_refs, size, tlab);
+#endif /* !USDT2 */
}
void CMSCollector::collect(bool full,
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/gc_implementation/g1/g1MarkSweep.cpp
--- a/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -50,8 +50,13 @@
#include "runtime/thread.hpp"
#include "runtime/vmThread.hpp"
#include "utilities/copy.hpp"
+#include "utilities/dtrace.hpp"
#include "utilities/events.hpp"
+#ifndef USDT2
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__begin, *uintptr_t, *uintptr_t);
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__end, *uintptr_t, *uintptr_t);
+ #endif /* !USDT2 */
class HeapRegion;
void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp,
@@ -85,6 +90,9 @@
// The marking doesn't preserve the marks of biased objects.
BiasedLocking::preserve_marks();
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__G1__begin, &sh, sh->gc_cause());
+#endif /* !USDT2 */
mark_sweep_phase1(marked_for_unloading, clear_all_softrefs);
mark_sweep_phase2();
@@ -100,6 +108,9 @@
BiasedLocking::restore_marks();
GenMarkSweep::deallocate_stacks();
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__G1__end, &sh, sh->gc_cause());
+#endif /* !USDT2 */
// "free at last gc" is calculated from these.
// CHF: cheating for now!!!
// Universe::set_heap_capacity_at_last_gc(Universe::heap()->capacity());
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
--- a/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -54,6 +54,12 @@
#include "utilities/copy.hpp"
#include "utilities/globalDefinitions.hpp"
#include "utilities/workgroup.hpp"
+#include "utilities/dtrace.hpp"
+
+#ifndef USDT2
+ HS_DTRACE_PROBE_DECL4(provider, gc__collection__parnew__begin, bool, bool, size_t, bool);
+ HS_DTRACE_PROBE_DECL4(provider, gc__collection__parnew__end, bool, bool, size_t, bool);
+#endif /* !USDT2 */
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
@@ -914,6 +920,9 @@
bool clear_all_soft_refs,
size_t size,
bool is_tlab) {
+#ifndef USDT2
+ HS_DTRACE_PROBE4(hotspot, gc__collection__parnew__begin, full, clear_all_soft_refs, size, is_tlab);
+#endif /* !USDT2 */
assert(full || size > 0, "otherwise we don't want to collect");
GenCollectedHeap* gch = GenCollectedHeap::heap();
@@ -1064,6 +1073,10 @@
gch->print_heap_change(gch_prev_used);
}
+#ifndef USDT2
+ HS_DTRACE_PROBE4(hotspot, gc__collection__parnew__end, full, clear_all_soft_refs, size, is_tlab);
+#endif /* !USDT2 */
+
if (PrintGCDetails && ParallelGCVerbose) {
TASKQUEUE_STATS_ONLY(thread_state_set.print_termination_stats());
TASKQUEUE_STATS_ONLY(thread_state_set.print_taskqueue_stats());
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
--- a/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -43,8 +43,14 @@
#include "runtime/java.hpp"
#include "runtime/vmThread.hpp"
#include "services/memTracker.hpp"
+#include "utilities/dtrace.hpp"
#include "utilities/vmError.hpp"
+#ifndef USDT2
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__parscavenge__heap__begin, *uintptr_t, *uintptr_t);
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__parscavenge__heap__end, *uintptr_t, *uintptr_t);
+#endif /* !USDT2 */
+
PSYoungGen* ParallelScavengeHeap::_young_gen = NULL;
PSOldGen* ParallelScavengeHeap::_old_gen = NULL;
PSAdaptiveSizePolicy* ParallelScavengeHeap::_size_policy = NULL;
@@ -531,7 +537,13 @@
}
VM_ParallelGCSystemGC op(gc_count, full_gc_count, cause);
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__parscavenge__heap__begin, &op, cause);
+#endif /* !USDT2 */
VMThread::execute(&op);
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__parscavenge__heap__end, &op, cause);
+#endif /* !USDT2 */
}
void ParallelScavengeHeap::oop_iterate(ExtendedOopClosure* cl) {
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
--- a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -56,6 +56,7 @@
#include "services/management.hpp"
#include "services/memoryService.hpp"
#include "services/memTracker.hpp"
+#include "utilities/dtrace.hpp"
#include "utilities/events.hpp"
#include "utilities/stack.inline.hpp"
@@ -63,6 +64,12 @@
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
+#ifndef USDT2
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__ParallelCompact__clear, *uintptr_t, *uintptr_t);
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__parallel__collect, *uintptr_t, *uintptr_t);
+ HS_DTRACE_PROBE_DECL4(provider, gc__collection__move, *uintptr_t, *uintptr_t, *uintptr_t, *uintptr_t);
+#endif /* !USDT2 */
+
// All sizes are in HeapWords.
const size_t ParallelCompactData::Log2RegionSize = 16; // 64K words
const size_t ParallelCompactData::RegionSize = (size_t)1 << Log2RegionSize;
@@ -453,6 +460,9 @@
void ParallelCompactData::clear()
{
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__ParallelCompact__clear, &_region_data, _region_data->data_location());
+#endif /* !USDT2 */
memset(_region_data, 0, _region_vspace->committed_size());
memset(_block_data, 0, _block_vspace->committed_size());
}
@@ -1978,6 +1988,9 @@
"should be in vm thread");
ParallelScavengeHeap* heap = gc_heap();
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__parallel__collect, heap, heap->gc_cause());
+#endif /* !USDT2 */
GCCause::Cause gc_cause = heap->gc_cause();
assert(!heap->is_gc_active(), "not reentrant");
@@ -3270,6 +3283,9 @@
// past the end of the partial object entering the region (if any).
HeapWord* const dest_addr = sd.partial_obj_end(dp_region);
HeapWord* const new_top = _space_info[space_id].new_top();
+#ifndef USDT2
+ HS_DTRACE_PROBE4(hotspot, gc__collection__move, &beg_addr, &end_addr, &dest_addr, &new_top);
+#endif /* !USDT2 */
assert(new_top >= dest_addr, "bad new_top value");
const size_t words = pointer_delta(new_top, dest_addr);
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
--- a/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -54,10 +54,20 @@
#include "runtime/vmThread.hpp"
#include "runtime/vm_operations.hpp"
#include "services/memoryService.hpp"
+#include "utilities/dtrace.hpp"
#include "utilities/stack.inline.hpp"
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
+#ifndef USDT2
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSScavenge__begin, *uintptr_t, *uintptr_t);
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSScavenge__end, *uintptr_t, *uintptr_t);
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSParallelCompact__begin, *uintptr_t, *uintptr_t);
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSParallelCompact__end, *uintptr_t, *uintptr_t);
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSMarkSweep__begin, *uintptr_t, *uintptr_t);
+ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSMarkSweep__end, *uintptr_t, *uintptr_t);
+#endif /* !USDT2 */
+
HeapWord* PSScavenge::_to_space_top_before_gc = NULL;
int PSScavenge::_consecutive_skipped_scavenges = 0;
ReferenceProcessor* PSScavenge::_ref_processor = NULL;
@@ -229,7 +239,13 @@
PSAdaptiveSizePolicy* policy = heap->size_policy();
IsGCActiveMark mark;
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__PSScavenge__begin, &heap, heap->gc_cause());
+#endif /* !USDT2 */
const bool scavenge_done = PSScavenge::invoke_no_policy();
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__PSScavenge__end, &heap, heap->gc_cause());
+#endif /* !USDT2 */
const bool need_full_gc = !scavenge_done ||
policy->should_full_GC(heap->old_gen()->free_in_bytes());
bool full_gc_done = false;
@@ -246,9 +262,21 @@
const bool clear_all_softrefs = cp->should_clear_all_soft_refs();
if (UseParallelOldGC) {
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__PSParallelCompact__begin, &heap, heap->gc_cause());
+#endif /* !USDT2 */
full_gc_done = PSParallelCompact::invoke_no_policy(clear_all_softrefs);
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__PSParallelCompact__end, &heap, heap->gc_cause());
+#endif /* !USDT2 */
} else {
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__PSMarkSweep__begin, &heap, heap->gc_cause());
+#endif /* !USDT2 */
full_gc_done = PSMarkSweep::invoke_no_policy(clear_all_softrefs);
+#ifndef USDT2
+ HS_DTRACE_PROBE2(hotspot, gc__collection__PSMarkSweep__end, &heap, heap->gc_cause());
+#endif /* !USDT2 */
}
}
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/interpreter/interpreterRuntime.cpp
--- a/src/share/vm/interpreter/interpreterRuntime.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/interpreter/interpreterRuntime.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -410,7 +410,11 @@
// during deoptimization so the interpreter needs to skip it when
// the frame is popped.
thread->set_do_not_unlock_if_synchronized(true);
+#ifdef CC_INTERP
+ return (address) -1;
+#else
return Interpreter::remove_activation_entry();
+#endif
}
// Need to do this check first since when _do_not_unlock_if_synchronized
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/memory/allocation.inline.hpp
--- a/src/share/vm/memory/allocation.inline.hpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/memory/allocation.inline.hpp Tue Apr 28 19:04:39 2015 +0900
@@ -62,11 +62,18 @@
}
return p;
}
+
+#ifdef __GNUC__
+__attribute__((always_inline))
+#endif
inline char* AllocateHeap(size_t size, MEMFLAGS flags,
AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) {
return AllocateHeap(size, flags, CURRENT_PC, alloc_failmode);
}
+#ifdef __GNUC__
+__attribute__((always_inline))
+#endif
inline char* ReallocateHeap(char *old, size_t size, MEMFLAGS flag,
AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) {
char* p = (char*) os::realloc(old, size, flag, CURRENT_PC);
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/memory/defNewGeneration.cpp
--- a/src/share/vm/memory/defNewGeneration.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/memory/defNewGeneration.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -45,10 +45,16 @@
#include "runtime/prefetch.inline.hpp"
#include "runtime/thread.inline.hpp"
#include "utilities/copy.hpp"
+#include "utilities/dtrace.hpp"
#include "utilities/stack.inline.hpp"
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
+#ifndef USDT2
+ HS_DTRACE_PROBE_DECL4(provider, gc__collection__defnew__begin, bool, bool, size_t, bool);
+ HS_DTRACE_PROBE_DECL4(provider, gc__collection__defnew__end, bool, bool, size_t, bool);
+#endif /* !USDT2 */
+
//
// DefNewGeneration functions.
@@ -561,6 +567,9 @@
bool clear_all_soft_refs,
size_t size,
bool is_tlab) {
+#ifndef USDT2
+ HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__begin, full, clear_all_soft_refs, size, is_tlab);
+#endif /* !USDT2 */
assert(full || size > 0, "otherwise we don't want to collect");
GenCollectedHeap* gch = GenCollectedHeap::heap();
@@ -709,6 +718,10 @@
jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
update_time_of_last_gc(now);
+#ifndef USDT2
+ HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__end, full, clear_all_soft_refs, size, is_tlab);
+#endif /* !USDT2 */
+
gch->trace_heap_after_gc(&gc_tracer);
gc_tracer.report_tenuring_threshold(tenuring_threshold());
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/memory/generation.cpp
--- a/src/share/vm/memory/generation.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/memory/generation.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -41,10 +41,16 @@
#include "oops/oop.inline.hpp"
#include "runtime/java.hpp"
#include "utilities/copy.hpp"
+#include "utilities/dtrace.hpp"
#include "utilities/events.hpp"
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
+#ifndef USDT2
+ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__begin, bool, bool, size_t, bool);
+ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__end, bool, bool, size_t, bool);
+#endif /* !USDT2 */
+
Generation::Generation(ReservedSpace rs, size_t initial_size, int level) :
_level(level),
_ref_processor(NULL) {
@@ -636,7 +642,13 @@
SerialOldTracer* gc_tracer = GenMarkSweep::gc_tracer();
gc_tracer->report_gc_start(gch->gc_cause(), gc_timer->gc_start());
+#ifndef USDT2
+ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__begin, full, clear_all_soft_refs, size, is_tlab);
+#endif /* !USDT2 */
GenMarkSweep::invoke_at_safepoint(_level, ref_processor(), clear_all_soft_refs);
+#ifndef USDT2
+ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__end, full, clear_all_soft_refs, size, is_tlab);
+#endif /* !USDT2 */
gc_timer->register_gc_end();
diff -r 9b0cf2504591 -r 7e5a87c79d69 src/share/vm/memory/tenuredGeneration.cpp
--- a/src/share/vm/memory/tenuredGeneration.cpp Thu Jun 04 03:02:52 2015 +0100
+++ b/src/share/vm/memory/tenuredGeneration.cpp Tue Apr 28 19:04:39 2015 +0900
@@ -33,8 +33,14 @@
#include "memory/tenuredGeneration.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/java.hpp"
+#include "utilities/dtrace.hpp"
#include "utilities/macros.hpp"
+#ifndef USDT2
More information about the distro-pkg-dev
mailing list