src/share/vm/gc_implementation/g1/vmStructs_g1.hpp

Tue, 21 Aug 2012 14:10:39 -0700

author
johnc
date
Tue, 21 Aug 2012 14:10:39 -0700
changeset 3998
7383557659bd
parent 3713
720b6a76dd9d
child 5726
69f26e8e09f9
permissions
-rw-r--r--

7185699: G1: Prediction model discrepancies
Summary: Correct the result value of G1CollectedHeap::pending_card_num(). Change the code that calculates the GC efficiency of a non-young heap region to use historical data from mixed GCs and the actual number of live bytes when predicting how long it would take to collect the region. Changes were also reviewed by Thomas Schatzl.
Reviewed-by: azeemj, brutisso

tonyp@3168 1 /*
tonyp@3457 2 * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
tonyp@3168 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
tonyp@3168 4 *
tonyp@3168 5 * This code is free software; you can redistribute it and/or modify it
tonyp@3168 6 * under the terms of the GNU General Public License version 2 only, as
tonyp@3168 7 * published by the Free Software Foundation.
tonyp@3168 8 *
tonyp@3168 9 * This code is distributed in the hope that it will be useful, but WITHOUT
tonyp@3168 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
tonyp@3168 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
tonyp@3168 12 * version 2 for more details (a copy is included in the LICENSE file that
tonyp@3168 13 * accompanied this code).
tonyp@3168 14 *
tonyp@3168 15 * You should have received a copy of the GNU General Public License version
tonyp@3168 16 * 2 along with this work; if not, write to the Free Software Foundation,
tonyp@3168 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
tonyp@3168 18 *
tonyp@3168 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
tonyp@3168 20 * or visit www.oracle.com if you need additional information or have any
tonyp@3168 21 * questions.
tonyp@3168 22 *
tonyp@3168 23 */
tonyp@3168 24
tonyp@3168 25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_VMSTRUCTS_G1_HPP
tonyp@3168 26 #define SHARE_VM_GC_IMPLEMENTATION_G1_VMSTRUCTS_G1_HPP
tonyp@3168 27
tonyp@3168 28 #include "gc_implementation/g1/heapRegion.hpp"
tonyp@3168 29 #include "gc_implementation/g1/heapRegionSeq.inline.hpp"
tonyp@3168 30 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
tonyp@3168 31
tonyp@3168 32 #define VM_STRUCTS_G1(nonstatic_field, static_field) \
tonyp@3168 33 \
johnc@3182 34 static_field(HeapRegion, GrainBytes, size_t) \
tonyp@3168 35 \
tonyp@3168 36 nonstatic_field(HeapRegionSeq, _regions, HeapRegion**) \
tonyp@3713 37 nonstatic_field(HeapRegionSeq, _length, uint) \
tonyp@3168 38 \
tonyp@3168 39 nonstatic_field(G1CollectedHeap, _hrs, HeapRegionSeq) \
tonyp@3168 40 nonstatic_field(G1CollectedHeap, _g1_committed, MemRegion) \
tonyp@3168 41 nonstatic_field(G1CollectedHeap, _summary_bytes_used, size_t) \
tonyp@3180 42 nonstatic_field(G1CollectedHeap, _g1mm, G1MonitoringSupport*) \
tonyp@3457 43 nonstatic_field(G1CollectedHeap, _old_set, HeapRegionSetBase) \
tonyp@3457 44 nonstatic_field(G1CollectedHeap, _humongous_set, HeapRegionSetBase) \
tonyp@3180 45 \
tonyp@3180 46 nonstatic_field(G1MonitoringSupport, _eden_committed, size_t) \
tonyp@3180 47 nonstatic_field(G1MonitoringSupport, _eden_used, size_t) \
tonyp@3180 48 nonstatic_field(G1MonitoringSupport, _survivor_committed, size_t) \
tonyp@3180 49 nonstatic_field(G1MonitoringSupport, _survivor_used, size_t) \
tonyp@3180 50 nonstatic_field(G1MonitoringSupport, _old_committed, size_t) \
tonyp@3180 51 nonstatic_field(G1MonitoringSupport, _old_used, size_t) \
tonyp@3457 52 \
tonyp@3713 53 nonstatic_field(HeapRegionSetBase, _length, uint) \
tonyp@3713 54 nonstatic_field(HeapRegionSetBase, _region_num, uint) \
tonyp@3457 55 nonstatic_field(HeapRegionSetBase, _total_used_bytes, size_t) \
tonyp@3168 56
tonyp@3168 57
tonyp@3168 58 #define VM_TYPES_G1(declare_type, declare_toplevel_type) \
tonyp@3168 59 \
tonyp@3168 60 declare_type(G1CollectedHeap, SharedHeap) \
tonyp@3168 61 \
tonyp@3168 62 declare_type(HeapRegion, ContiguousSpace) \
tonyp@3168 63 declare_toplevel_type(HeapRegionSeq) \
tonyp@3457 64 declare_toplevel_type(HeapRegionSetBase) \
tonyp@3180 65 declare_toplevel_type(G1MonitoringSupport) \
tonyp@3168 66 \
tonyp@3168 67 declare_toplevel_type(G1CollectedHeap*) \
tonyp@3168 68 declare_toplevel_type(HeapRegion*) \
tonyp@3180 69 declare_toplevel_type(G1MonitoringSupport*) \
tonyp@3180 70
tonyp@3168 71
tonyp@3168 72 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_VMSTRUCTS_G1_HPP

mercurial