44 }
45
46 void GenerationSizer::initialize_flags() {
47 // Do basic sizing work
48 GenCollectorPolicy::initialize_flags();
49
50 // The survivor ratio's are calculated "raw", unlike the
51 // default gc, which adds 2 to the ratio value. We need to
52 // make sure the values are valid before using them.
53 if (MinSurvivorRatio < 3) {
54 FLAG_SET_ERGO(uintx, MinSurvivorRatio, 3);
55 }
56
57 if (InitialSurvivorRatio < 3) {
58 FLAG_SET_ERGO(uintx, InitialSurvivorRatio, 3);
59 }
60 }
61
62 void GenerationSizer::initialize_size_info() {
63 trace_gen_sizes("ps heap raw");
64 const size_t max_page_sz = os::page_size_for_region(_max_heap_byte_size, 8);
65 const size_t min_pages = 4; // 1 for eden + 1 for each survivor + 1 for old
66 const size_t min_page_sz = os::page_size_for_region(_min_heap_byte_size, min_pages);
67 const size_t page_sz = MIN2(max_page_sz, min_page_sz);
68
69 // Can a page size be something else than a power of two?
70 assert(is_power_of_2((intptr_t)page_sz), "must be a power of 2");
71 size_t new_alignment = round_to(page_sz, _gen_alignment);
72 if (new_alignment != _gen_alignment) {
73 _gen_alignment = new_alignment;
74 _space_alignment = new_alignment;
75 // Redo everything from the start
76 initialize_flags();
77 }
78 GenCollectorPolicy::initialize_size_info();
79
80 trace_gen_sizes("ps heap rnd");
81 }
|
44 }
45
46 void GenerationSizer::initialize_flags() {
47 // Do basic sizing work
48 GenCollectorPolicy::initialize_flags();
49
50 // The survivor ratio's are calculated "raw", unlike the
51 // default gc, which adds 2 to the ratio value. We need to
52 // make sure the values are valid before using them.
53 if (MinSurvivorRatio < 3) {
54 FLAG_SET_ERGO(uintx, MinSurvivorRatio, 3);
55 }
56
57 if (InitialSurvivorRatio < 3) {
58 FLAG_SET_ERGO(uintx, InitialSurvivorRatio, 3);
59 }
60 }
61
62 void GenerationSizer::initialize_size_info() {
63 trace_gen_sizes("ps heap raw");
64 const size_t max_page_sz = os::page_size_for_region_aligned(_max_heap_byte_size, 8);
65 const size_t min_pages = 4; // 1 for eden + 1 for each survivor + 1 for old
66 const size_t min_page_sz = os::page_size_for_region_aligned(_min_heap_byte_size, min_pages);
67 const size_t page_sz = MIN2(max_page_sz, min_page_sz);
68
69 // Can a page size be something else than a power of two?
70 assert(is_power_of_2((intptr_t)page_sz), "must be a power of 2");
71 size_t new_alignment = round_to(page_sz, _gen_alignment);
72 if (new_alignment != _gen_alignment) {
73 _gen_alignment = new_alignment;
74 _space_alignment = new_alignment;
75 // Redo everything from the start
76 initialize_flags();
77 }
78 GenCollectorPolicy::initialize_size_info();
79
80 trace_gen_sizes("ps heap rnd");
81 }
|