--- old/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp 2015-05-13 13:57:36.902028745 +0200 +++ /dev/null 2015-03-18 17:10:38.111854831 +0100 @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. 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 - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#include "precompiled.hpp" -#include "gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp" -#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" -#include "gc_implementation/parallelScavenge/psScavenge.hpp" -#include "gc_implementation/parallelScavenge/vmPSOperations.hpp" -#include "memory/gcLocker.inline.hpp" -#include "utilities/dtrace.hpp" - -// The following methods are used by the parallel scavenge collector -VM_ParallelGCFailedAllocation::VM_ParallelGCFailedAllocation(size_t word_size, - uint gc_count) : - VM_CollectForAllocation(word_size, gc_count, GCCause::_allocation_failure) { - assert(word_size != 0, "An allocation should always be requested with this operation."); -} - -void VM_ParallelGCFailedAllocation::doit() { - SvcGCMarker sgcm(SvcGCMarker::MINOR); - - ParallelScavengeHeap* heap = ParallelScavengeHeap::heap(); - - GCCauseSetter gccs(heap, _gc_cause); - _result = heap->failed_mem_allocate(_word_size); - - if (_result == NULL && GC_locker::is_active_and_needs_gc()) { - set_gc_locked(); - } -} - -// Only used for System.gc() calls -VM_ParallelGCSystemGC::VM_ParallelGCSystemGC(uint gc_count, - uint full_gc_count, - GCCause::Cause gc_cause) : - VM_GC_Operation(gc_count, gc_cause, full_gc_count, true /* full */) -{ -} - -void VM_ParallelGCSystemGC::doit() { - SvcGCMarker sgcm(SvcGCMarker::FULL); - - ParallelScavengeHeap* heap = ParallelScavengeHeap::heap(); - - GCCauseSetter gccs(heap, _gc_cause); - if (_gc_cause == GCCause::_gc_locker || _gc_cause == GCCause::_wb_young_gc - DEBUG_ONLY(|| _gc_cause == GCCause::_scavenge_alot)) { - // If (and only if) the scavenge fails, this will invoke a full gc. - heap->invoke_scavenge(); - } else { - heap->do_full_collection(false); - } -} --- /dev/null 2015-03-18 17:10:38.111854831 +0100 +++ new/src/share/vm/gc/parallel/vmPSOperations.cpp 2015-05-13 13:57:36.719021152 +0200 @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2007, 2015, Oracle and/or its affiliates. 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include "precompiled.hpp" +#include "gc/parallel/parallelScavengeHeap.inline.hpp" +#include "gc/parallel/psMarkSweep.hpp" +#include "gc/parallel/psScavenge.hpp" +#include "gc/parallel/vmPSOperations.hpp" +#include "gc/shared/gcLocker.inline.hpp" +#include "utilities/dtrace.hpp" + +// The following methods are used by the parallel scavenge collector +VM_ParallelGCFailedAllocation::VM_ParallelGCFailedAllocation(size_t word_size, + uint gc_count) : + VM_CollectForAllocation(word_size, gc_count, GCCause::_allocation_failure) { + assert(word_size != 0, "An allocation should always be requested with this operation."); +} + +void VM_ParallelGCFailedAllocation::doit() { + SvcGCMarker sgcm(SvcGCMarker::MINOR); + + ParallelScavengeHeap* heap = ParallelScavengeHeap::heap(); + + GCCauseSetter gccs(heap, _gc_cause); + _result = heap->failed_mem_allocate(_word_size); + + if (_result == NULL && GC_locker::is_active_and_needs_gc()) { + set_gc_locked(); + } +} + +// Only used for System.gc() calls +VM_ParallelGCSystemGC::VM_ParallelGCSystemGC(uint gc_count, + uint full_gc_count, + GCCause::Cause gc_cause) : + VM_GC_Operation(gc_count, gc_cause, full_gc_count, true /* full */) +{ +} + +void VM_ParallelGCSystemGC::doit() { + SvcGCMarker sgcm(SvcGCMarker::FULL); + + ParallelScavengeHeap* heap = ParallelScavengeHeap::heap(); + + GCCauseSetter gccs(heap, _gc_cause); + if (_gc_cause == GCCause::_gc_locker || _gc_cause == GCCause::_wb_young_gc + DEBUG_ONLY(|| _gc_cause == GCCause::_scavenge_alot)) { + // If (and only if) the scavenge fails, this will invoke a full gc. + heap->invoke_scavenge(); + } else { + heap->do_full_collection(false); + } +}