48 // CollectorPolicy methods.
49
50 // Align down. If the aligning result in 0, return 'alignment'.
51 static size_t restricted_align_down(size_t size, size_t alignment) {
52 return MAX2(alignment, align_size_down_(size, alignment));
53 }
54
55 void CollectorPolicy::initialize_flags() {
56 assert(max_alignment() >= min_alignment(),
57 err_msg("max_alignment: " SIZE_FORMAT " less than min_alignment: " SIZE_FORMAT,
58 max_alignment(), min_alignment()));
59 assert(max_alignment() % min_alignment() == 0,
60 err_msg("max_alignment: " SIZE_FORMAT " not aligned by min_alignment: " SIZE_FORMAT,
61 max_alignment(), min_alignment()));
62
63 if (MaxHeapSize < InitialHeapSize) {
64 vm_exit_during_initialization("Incompatible initial and maximum heap sizes specified");
65 }
66
67 if (!is_size_aligned(MaxMetaspaceSize, max_alignment())) {
68 FLAG_SET_ERGO(uintx, MaxMetaspaceSize,
69 restricted_align_down(MaxMetaspaceSize, max_alignment()));
70 }
71
72 if (MetaspaceSize > MaxMetaspaceSize) {
73 FLAG_SET_ERGO(uintx, MetaspaceSize, MaxMetaspaceSize);
74 }
75
76 if (!is_size_aligned(MetaspaceSize, min_alignment())) {
77 FLAG_SET_ERGO(uintx, MetaspaceSize,
78 restricted_align_down(MetaspaceSize, min_alignment()));
79 }
80
81 assert(MetaspaceSize <= MaxMetaspaceSize, "Must be");
82
83 MinMetaspaceExpansion = restricted_align_down(MinMetaspaceExpansion, min_alignment());
84 MaxMetaspaceExpansion = restricted_align_down(MaxMetaspaceExpansion, min_alignment());
85
86 MinHeapDeltaBytes = align_size_up(MinHeapDeltaBytes, min_alignment());
87
88 assert(MetaspaceSize % min_alignment() == 0, "metapace alignment");
89 assert(MaxMetaspaceSize % max_alignment() == 0, "maximum metaspace alignment");
|
48 // CollectorPolicy methods.
49
50 // Align down. If the aligning result in 0, return 'alignment'.
51 static size_t restricted_align_down(size_t size, size_t alignment) {
52 return MAX2(alignment, align_size_down_(size, alignment));
53 }
54
55 void CollectorPolicy::initialize_flags() {
56 assert(max_alignment() >= min_alignment(),
57 err_msg("max_alignment: " SIZE_FORMAT " less than min_alignment: " SIZE_FORMAT,
58 max_alignment(), min_alignment()));
59 assert(max_alignment() % min_alignment() == 0,
60 err_msg("max_alignment: " SIZE_FORMAT " not aligned by min_alignment: " SIZE_FORMAT,
61 max_alignment(), min_alignment()));
62
63 if (MaxHeapSize < InitialHeapSize) {
64 vm_exit_during_initialization("Incompatible initial and maximum heap sizes specified");
65 }
66
67 if (!is_size_aligned(MaxMetaspaceSize, max_alignment())) {
68 MaxMetaspaceSize = restricted_align_down(MaxMetaspaceSize, max_alignment());
69 }
70
71 if (MetaspaceSize > MaxMetaspaceSize) {
72 FLAG_SET_ERGO(uintx, MetaspaceSize, MaxMetaspaceSize);
73 }
74
75 if (!is_size_aligned(MetaspaceSize, min_alignment())) {
76 FLAG_SET_ERGO(uintx, MetaspaceSize,
77 restricted_align_down(MetaspaceSize, min_alignment()));
78 }
79
80 assert(MetaspaceSize <= MaxMetaspaceSize, "Must be");
81
82 MinMetaspaceExpansion = restricted_align_down(MinMetaspaceExpansion, min_alignment());
83 MaxMetaspaceExpansion = restricted_align_down(MaxMetaspaceExpansion, min_alignment());
84
85 MinHeapDeltaBytes = align_size_up(MinHeapDeltaBytes, min_alignment());
86
87 assert(MetaspaceSize % min_alignment() == 0, "metapace alignment");
88 assert(MaxMetaspaceSize % max_alignment() == 0, "maximum metaspace alignment");
|