mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-23 20:44:41 +02:00
6557851: CMS: ergonomics defaults are not set with FLAG_SET_ERGO
Default values set by cms ergonomics are set with FLAG_SET_DEFAULT so down stream the values look like the default values and affect how later parameters are set. Set these values with FLAG_SET_ERGO instead and adjust how later parameters are interpreted. Reviewed-by: iveresov, apetrusenko, pbk, ysr
This commit is contained in:
parent
a6d8fca876
commit
6c0c606249
10 changed files with 376 additions and 97 deletions
|
@ -86,7 +86,7 @@ size_t ASPSYoungGen::available_for_contraction() {
|
|||
if (eden_space()->is_empty()) {
|
||||
// Respect the minimum size for eden and for the young gen as a whole.
|
||||
ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap();
|
||||
const size_t eden_alignment = heap->intra_generation_alignment();
|
||||
const size_t eden_alignment = heap->intra_heap_alignment();
|
||||
const size_t gen_alignment = heap->young_gen_alignment();
|
||||
|
||||
assert(eden_space()->capacity_in_bytes() >= eden_alignment,
|
||||
|
@ -124,7 +124,7 @@ size_t ASPSYoungGen::available_for_contraction() {
|
|||
// to_space can be.
|
||||
size_t ASPSYoungGen::available_to_live() {
|
||||
ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap();
|
||||
const size_t alignment = heap->intra_generation_alignment();
|
||||
const size_t alignment = heap->intra_heap_alignment();
|
||||
|
||||
// Include any space that is committed but is not in eden.
|
||||
size_t available = pointer_delta(eden_space()->bottom(),
|
||||
|
@ -275,7 +275,7 @@ void ASPSYoungGen::resize_spaces(size_t requested_eden_size,
|
|||
assert(eden_start < from_start, "Cannot push into from_space");
|
||||
|
||||
ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap();
|
||||
const size_t alignment = heap->intra_generation_alignment();
|
||||
const size_t alignment = heap->intra_heap_alignment();
|
||||
|
||||
// Check whether from space is below to space
|
||||
if (from_start < to_start) {
|
||||
|
|
|
@ -173,7 +173,7 @@ jint ParallelScavengeHeap::initialize() {
|
|||
new PSAdaptiveSizePolicy(eden_capacity,
|
||||
initial_promo_size,
|
||||
young_gen()->to_space()->capacity_in_bytes(),
|
||||
intra_generation_alignment(),
|
||||
intra_heap_alignment(),
|
||||
max_gc_pause_sec,
|
||||
max_gc_minor_pause_sec,
|
||||
GCTimeRatio
|
||||
|
|
|
@ -58,9 +58,9 @@ class ParallelScavengeHeap : public CollectedHeap {
|
|||
|
||||
public:
|
||||
ParallelScavengeHeap() : CollectedHeap() {
|
||||
set_alignment(_perm_gen_alignment, intra_generation_alignment());
|
||||
set_alignment(_young_gen_alignment, intra_generation_alignment());
|
||||
set_alignment(_old_gen_alignment, intra_generation_alignment());
|
||||
set_alignment(_perm_gen_alignment, intra_heap_alignment());
|
||||
set_alignment(_young_gen_alignment, intra_heap_alignment());
|
||||
set_alignment(_old_gen_alignment, intra_heap_alignment());
|
||||
}
|
||||
|
||||
// For use by VM operations
|
||||
|
@ -92,14 +92,14 @@ class ParallelScavengeHeap : public CollectedHeap {
|
|||
|
||||
void post_initialize();
|
||||
void update_counters();
|
||||
|
||||
// The alignment used for the various generations.
|
||||
size_t perm_gen_alignment() const { return _perm_gen_alignment; }
|
||||
size_t young_gen_alignment() const { return _young_gen_alignment; }
|
||||
size_t old_gen_alignment() const { return _old_gen_alignment; }
|
||||
|
||||
// The alignment used for eden and survivors within the young gen.
|
||||
size_t intra_generation_alignment() const { return 64 * K; }
|
||||
// The alignment used for eden and survivors within the young gen
|
||||
// and for boundary between young gen and old gen.
|
||||
size_t intra_heap_alignment() const { return 64 * K; }
|
||||
|
||||
size_t capacity() const;
|
||||
size_t used() const;
|
||||
|
@ -217,6 +217,6 @@ class ParallelScavengeHeap : public CollectedHeap {
|
|||
inline size_t ParallelScavengeHeap::set_alignment(size_t& var, size_t val)
|
||||
{
|
||||
assert(is_power_of_2((intptr_t)val), "must be a power of 2");
|
||||
var = round_to(val, intra_generation_alignment());
|
||||
var = round_to(val, intra_heap_alignment());
|
||||
return var;
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ void PSYoungGen::initialize_work() {
|
|||
|
||||
// Compute maximum space sizes for performance counters
|
||||
ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap();
|
||||
size_t alignment = heap->intra_generation_alignment();
|
||||
size_t alignment = heap->intra_heap_alignment();
|
||||
size_t size = _virtual_space->reserved_size();
|
||||
|
||||
size_t max_survivor_size;
|
||||
|
@ -141,7 +141,7 @@ void PSYoungGen::compute_initial_space_boundaries() {
|
|||
assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity");
|
||||
|
||||
// Compute sizes
|
||||
size_t alignment = heap->intra_generation_alignment();
|
||||
size_t alignment = heap->intra_heap_alignment();
|
||||
size_t size = _virtual_space->committed_size();
|
||||
|
||||
size_t survivor_size = size / InitialSurvivorRatio;
|
||||
|
@ -192,7 +192,7 @@ void PSYoungGen::set_space_boundaries(size_t eden_size, size_t survivor_size) {
|
|||
#ifndef PRODUCT
|
||||
void PSYoungGen::space_invariants() {
|
||||
ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap();
|
||||
const size_t alignment = heap->intra_generation_alignment();
|
||||
const size_t alignment = heap->intra_heap_alignment();
|
||||
|
||||
// Currently, our eden size cannot shrink to zero
|
||||
guarantee(eden_space()->capacity_in_bytes() >= alignment, "eden too small");
|
||||
|
@ -392,7 +392,7 @@ void PSYoungGen::resize_spaces(size_t requested_eden_size,
|
|||
char* to_end = (char*)to_space()->end();
|
||||
|
||||
ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap();
|
||||
const size_t alignment = heap->intra_generation_alignment();
|
||||
const size_t alignment = heap->intra_heap_alignment();
|
||||
const bool maintain_minimum =
|
||||
(requested_eden_size + 2 * requested_survivor_size) <= min_gen_size();
|
||||
|
||||
|
@ -708,7 +708,7 @@ size_t PSYoungGen::available_to_min_gen() {
|
|||
size_t PSYoungGen::available_to_live() {
|
||||
size_t delta_in_survivor = 0;
|
||||
ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap();
|
||||
const size_t space_alignment = heap->intra_generation_alignment();
|
||||
const size_t space_alignment = heap->intra_heap_alignment();
|
||||
const size_t gen_alignment = heap->young_gen_alignment();
|
||||
|
||||
MutableSpace* space_shrinking = NULL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue