6979458: VM crashes when -XX:ObjectAlignmentInBytes is too big
Set upper limit 256 for ObjectAlignmentInBytes value. Reviewed-by: never, iveresov
This commit is contained in:
parent
32ebbc92ec
commit
c5191a8103
@ -1261,12 +1261,30 @@ bool verify_object_alignment() {
|
||||
// Object alignment.
|
||||
if (!is_power_of_2(ObjectAlignmentInBytes)) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
"error: ObjectAlignmentInBytes=%d must be power of 2", (int)ObjectAlignmentInBytes);
|
||||
"error: ObjectAlignmentInBytes=%d must be power of 2\n",
|
||||
(int)ObjectAlignmentInBytes);
|
||||
return false;
|
||||
}
|
||||
if ((int)ObjectAlignmentInBytes < BytesPerLong) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
"error: ObjectAlignmentInBytes=%d must be greater or equal %d", (int)ObjectAlignmentInBytes, BytesPerLong);
|
||||
"error: ObjectAlignmentInBytes=%d must be greater or equal %d\n",
|
||||
(int)ObjectAlignmentInBytes, BytesPerLong);
|
||||
return false;
|
||||
}
|
||||
// It does not make sense to have big object alignment
|
||||
// since a space lost due to alignment will be greater
|
||||
// then a saved space from compressed oops.
|
||||
if ((int)ObjectAlignmentInBytes > 256) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
"error: ObjectAlignmentInBytes=%d must not be greater then 256\n",
|
||||
(int)ObjectAlignmentInBytes);
|
||||
return false;
|
||||
}
|
||||
// In case page size is very small.
|
||||
if ((int)ObjectAlignmentInBytes >= os::vm_page_size()) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
"error: ObjectAlignmentInBytes=%d must be less then page size %d\n",
|
||||
(int)ObjectAlignmentInBytes, os::vm_page_size());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user