comparison src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp @ 18041:52b4284cb496

Merge with jdk8u20-b26
author Gilles Duboscq <duboscq@ssw.jku.at>
date Wed, 15 Oct 2014 16:02:50 +0200
parents 4ca6dc0799b6 8e20ef014b08
children 7848fc12602b
comparison
equal deleted inserted replaced
17606:45d7b2c7029d 18041:52b4284cb496
1 /* 1 /*
2 * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
59 #include "utilities/events.hpp" 59 #include "utilities/events.hpp"
60 #include "utilities/stack.inline.hpp" 60 #include "utilities/stack.inline.hpp"
61 61
62 #include <math.h> 62 #include <math.h>
63 63
64 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
65
64 // All sizes are in HeapWords. 66 // All sizes are in HeapWords.
65 const size_t ParallelCompactData::Log2RegionSize = 16; // 64K words 67 const size_t ParallelCompactData::Log2RegionSize = 16; // 64K words
66 const size_t ParallelCompactData::RegionSize = (size_t)1 << Log2RegionSize; 68 const size_t ParallelCompactData::RegionSize = (size_t)1 << Log2RegionSize;
67 const size_t ParallelCompactData::RegionSizeBytes = 69 const size_t ParallelCompactData::RegionSizeBytes =
68 RegionSize << LogHeapWordSize; 70 RegionSize << LogHeapWordSize;
849 ParallelRefProcEnabled && (ParallelGCThreads > 1), // mt processing 851 ParallelRefProcEnabled && (ParallelGCThreads > 1), // mt processing
850 (int) ParallelGCThreads, // mt processing degree 852 (int) ParallelGCThreads, // mt processing degree
851 true, // mt discovery 853 true, // mt discovery
852 (int) ParallelGCThreads, // mt discovery degree 854 (int) ParallelGCThreads, // mt discovery degree
853 true, // atomic_discovery 855 true, // atomic_discovery
854 &_is_alive_closure, // non-header is alive closure 856 &_is_alive_closure); // non-header is alive closure
855 false); // write barrier for next field updates
856 _counters = new CollectorCounters("PSParallelCompact", 1); 857 _counters = new CollectorCounters("PSParallelCompact", 1);
857 858
858 // Initialize static fields in ParCompactionManager. 859 // Initialize static fields in ParCompactionManager.
859 ParCompactionManager::initialize(mark_bitmap()); 860 ParCompactionManager::initialize(mark_bitmap());
860 } 861 }
925 926
926 void fill(ParallelScavengeHeap* heap) { 927 void fill(ParallelScavengeHeap* heap) {
927 _heap_used = heap->used(); 928 _heap_used = heap->used();
928 _young_gen_used = heap->young_gen()->used_in_bytes(); 929 _young_gen_used = heap->young_gen()->used_in_bytes();
929 _old_gen_used = heap->old_gen()->used_in_bytes(); 930 _old_gen_used = heap->old_gen()->used_in_bytes();
930 _metadata_used = MetaspaceAux::allocated_used_bytes(); 931 _metadata_used = MetaspaceAux::used_bytes();
931 }; 932 };
932 933
933 size_t heap_used() const { return _heap_used; } 934 size_t heap_used() const { return _heap_used; }
934 size_t young_gen_used() const { return _young_gen_used; } 935 size_t young_gen_used() const { return _young_gen_used; }
935 size_t old_gen_used() const { return _old_gen_used; } 936 size_t old_gen_used() const { return _old_gen_used; }