hotspot/src/share/vm/gc/g1/g1CollectedHeap_ext.cpp
author tschatzl
Thu, 20 Aug 2015 15:17:43 +0200
changeset 32381 b750fd963056
parent 32185 49a57ff2c3cb
child 32736 755024a84282
permissions -rw-r--r--
8040162: Avoid reallocating PLABs between GC phases in G1 Summary: Allocate G1ParScanThreadState at the start of GC and only deallocate at the end of GC. This automatically keeps the current PLAB intact without flushing it (and loosing lots of memory) for every reallocation. Reviewed-by: david, mgerdin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26842
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
     1
/*
30764
fec48bf5a827 8079792: GC directory structure cleanup
pliden
parents: 27623
diff changeset
     2
 * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
26842
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
     4
 *
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
     7
 * published by the Free Software Foundation.
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
     8
 *
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    13
 * accompanied this code).
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    14
 *
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    18
 *
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    21
 * questions.
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    22
 *
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    23
 */
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    24
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    25
#include "precompiled.hpp"
30764
fec48bf5a827 8079792: GC directory structure cleanup
pliden
parents: 27623
diff changeset
    26
#include "gc/g1/g1CollectedHeap.hpp"
32381
b750fd963056 8040162: Avoid reallocating PLABs between GC phases in G1
tschatzl
parents: 32185
diff changeset
    27
#include "gc/g1/g1ParScanThreadState.hpp"
32185
49a57ff2c3cb 8073052: Rename and clean up the allocation manager hierarchy in g1Allocator.?pp
tschatzl
parents: 30764
diff changeset
    28
#include "gc/g1/heapRegion.inline.hpp"
26842
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    29
27623
3f190bd7182f 8061234: ResourceContext.requestAccurateUpdate() is unreliable
sjohanss
parents: 26842
diff changeset
    30
bool G1CollectedHeap::copy_allocation_context_stats(const jint* contexts,
26842
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    31
                                                    jlong* totals,
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    32
                                                    jbyte* accuracy,
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    33
                                                    jint len) {
27623
3f190bd7182f 8061234: ResourceContext.requestAccurateUpdate() is unreliable
sjohanss
parents: 26842
diff changeset
    34
  return false;
26842
5081db39f634 8057824: methods to copy allocation context statistics
jcoomes
parents:
diff changeset
    35
}
32185
49a57ff2c3cb 8073052: Rename and clean up the allocation manager hierarchy in g1Allocator.?pp
tschatzl
parents: 30764
diff changeset
    36
49a57ff2c3cb 8073052: Rename and clean up the allocation manager hierarchy in g1Allocator.?pp
tschatzl
parents: 30764
diff changeset
    37
HeapRegion* G1CollectedHeap::new_heap_region(uint hrs_index,
49a57ff2c3cb 8073052: Rename and clean up the allocation manager hierarchy in g1Allocator.?pp
tschatzl
parents: 30764
diff changeset
    38
                                             MemRegion mr) {
49a57ff2c3cb 8073052: Rename and clean up the allocation manager hierarchy in g1Allocator.?pp
tschatzl
parents: 30764
diff changeset
    39
  return new HeapRegion(hrs_index, bot_shared(), mr);
49a57ff2c3cb 8073052: Rename and clean up the allocation manager hierarchy in g1Allocator.?pp
tschatzl
parents: 30764
diff changeset
    40
}
32381
b750fd963056 8040162: Avoid reallocating PLABs between GC phases in G1
tschatzl
parents: 32185
diff changeset
    41
b750fd963056 8040162: Avoid reallocating PLABs between GC phases in G1
tschatzl
parents: 32185
diff changeset
    42
G1ParScanThreadState* G1CollectedHeap::new_par_scan_state(uint worker_id) {
b750fd963056 8040162: Avoid reallocating PLABs between GC phases in G1
tschatzl
parents: 32185
diff changeset
    43
  return new G1ParScanThreadState(this, worker_id);
b750fd963056 8040162: Avoid reallocating PLABs between GC phases in G1
tschatzl
parents: 32185
diff changeset
    44
}