8009614: nsk/split_verifier/stress/ifelse/ifelse002_30 fails with 'assert((size & (granularity - 1)) == 0) failed: size not aligned to os::vm_allocation_granularity()
authorzgu
Fri, 15 Mar 2013 11:53:28 -0400
changeset 16353 d9984db1bba2
parent 16351 032b310a3e2f
child 16354 369d42f431d6
8009614: nsk/split_verifier/stress/ifelse/ifelse002_30 fails with 'assert((size & (granularity - 1)) == 0) failed: size not aligned to os::vm_allocation_granularity() Summary: Align up vm allocation size to os defined granularity Reviewed-by: dholmes, coleenp
hotspot/src/share/vm/memory/metaspace.cpp
--- a/hotspot/src/share/vm/memory/metaspace.cpp	Thu Mar 14 00:33:08 2013 -0700
+++ b/hotspot/src/share/vm/memory/metaspace.cpp	Fri Mar 15 11:53:28 2013 -0400
@@ -334,6 +334,9 @@
 
   // byte_size is the size of the associated virtualspace.
 VirtualSpaceNode::VirtualSpaceNode(size_t byte_size) : _top(NULL), _next(NULL), _rs(0) {
+  // align up to vm allocation granularity
+  byte_size = align_size_up(byte_size, os::vm_allocation_granularity());
+
   // This allocates memory with mmap.  For DumpSharedspaces, allocate the
   // space at low memory so that other shared images don't conflict.
   // This is the same address as memory needed for UseCompressedOops but