Wed, 20 Mar 2013 12:20:10 -0400
Merge
1.1 --- a/src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp Wed Mar 20 11:43:56 2013 -0400 1.2 +++ b/src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp Wed Mar 20 12:20:10 2013 -0400 1.3 @@ -46,7 +46,7 @@ 1.4 1.5 define_pd_global(uintx, JVMInvokeMethodSlack, 8192); 1.6 1.7 -// Used on 64 bit platforms for UseCompressedOops base address or CDS 1.8 +// Used on 64 bit platforms for UseCompressedOops base address 1.9 define_pd_global(uintx, HeapBaseMinAddress, 2*G); 1.10 1.11 #endif // OS_CPU_BSD_X86_VM_GLOBALS_BSD_X86_HPP
2.1 --- a/src/os_cpu/bsd_zero/vm/globals_bsd_zero.hpp Wed Mar 20 11:43:56 2013 -0400 2.2 +++ b/src/os_cpu/bsd_zero/vm/globals_bsd_zero.hpp Wed Mar 20 12:20:10 2013 -0400 2.3 @@ -41,7 +41,7 @@ 2.4 define_pd_global(intx, CompilerThreadStackSize, 0); 2.5 define_pd_global(uintx, JVMInvokeMethodSlack, 8192); 2.6 2.7 -// Used on 64 bit platforms for UseCompressedOops base address or CDS 2.8 +// Used on 64 bit platforms for UseCompressedOops base address 2.9 define_pd_global(uintx, HeapBaseMinAddress, 2*G); 2.10 2.11 #endif // OS_CPU_BSD_ZERO_VM_GLOBALS_BSD_ZERO_HPP
3.1 --- a/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp Wed Mar 20 11:43:56 2013 -0400 3.2 +++ b/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp Wed Mar 20 12:20:10 2013 -0400 3.3 @@ -33,7 +33,7 @@ 3.4 define_pd_global(uintx, JVMInvokeMethodSlack, 12288); 3.5 define_pd_global(intx, CompilerThreadStackSize, 0); 3.6 3.7 -// Used on 64 bit platforms for UseCompressedOops base address or CDS 3.8 +// Used on 64 bit platforms for UseCompressedOops base address 3.9 define_pd_global(uintx, HeapBaseMinAddress, CONST64(4)*G); 3.10 3.11 #endif // OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP
4.1 --- a/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp Wed Mar 20 11:43:56 2013 -0400 4.2 +++ b/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp Wed Mar 20 12:20:10 2013 -0400 4.3 @@ -44,7 +44,7 @@ 4.4 4.5 define_pd_global(uintx,JVMInvokeMethodSlack, 8192); 4.6 4.7 -// Used on 64 bit platforms for UseCompressedOops base address or CDS 4.8 +// Used on 64 bit platforms for UseCompressedOops base address 4.9 define_pd_global(uintx,HeapBaseMinAddress, 2*G); 4.10 4.11 #endif // OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP
5.1 --- a/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp Wed Mar 20 11:43:56 2013 -0400 5.2 +++ b/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp Wed Mar 20 12:20:10 2013 -0400 5.3 @@ -41,7 +41,7 @@ 5.4 define_pd_global(intx, CompilerThreadStackSize, 0); 5.5 define_pd_global(uintx, JVMInvokeMethodSlack, 8192); 5.6 5.7 -// Used on 64 bit platforms for UseCompressedOops base address or CDS 5.8 +// Used on 64 bit platforms for UseCompressedOops base address 5.9 define_pd_global(uintx, HeapBaseMinAddress, 2*G); 5.10 5.11 #endif // OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP
6.1 --- a/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp Wed Mar 20 11:43:56 2013 -0400 6.2 +++ b/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp Wed Mar 20 12:20:10 2013 -0400 6.3 @@ -33,7 +33,7 @@ 6.4 define_pd_global(uintx, JVMInvokeMethodSlack, 12288); 6.5 define_pd_global(intx, CompilerThreadStackSize, 0); 6.6 6.7 -// Used on 64 bit platforms for UseCompressedOops base address or CDS 6.8 +// Used on 64 bit platforms for UseCompressedOops base address 6.9 #ifdef _LP64 6.10 define_pd_global(uintx, HeapBaseMinAddress, CONST64(4)*G); 6.11 #else
7.1 --- a/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp Wed Mar 20 11:43:56 2013 -0400 7.2 +++ b/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp Wed Mar 20 12:20:10 2013 -0400 7.3 @@ -43,7 +43,7 @@ 7.4 7.5 define_pd_global(intx, CompilerThreadStackSize, 0); 7.6 7.7 -// Used on 64 bit platforms for UseCompressedOops base address or CDS 7.8 +// Used on 64 bit platforms for UseCompressedOops base address 7.9 define_pd_global(uintx,HeapBaseMinAddress, 256*M); 7.10 7.11 #endif // OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP
8.1 --- a/src/os_cpu/windows_x86/vm/globals_windows_x86.hpp Wed Mar 20 11:43:56 2013 -0400 8.2 +++ b/src/os_cpu/windows_x86/vm/globals_windows_x86.hpp Wed Mar 20 12:20:10 2013 -0400 8.3 @@ -45,7 +45,7 @@ 8.4 8.5 define_pd_global(uintx, JVMInvokeMethodSlack, 8192); 8.6 8.7 -// Used on 64 bit platforms for UseCompressedOops base address or CDS 8.8 +// Used on 64 bit platforms for UseCompressedOops base address 8.9 define_pd_global(uintx, HeapBaseMinAddress, 2*G); 8.10 8.11 #endif // OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP
9.1 --- a/src/share/vm/memory/filemap.cpp Wed Mar 20 11:43:56 2013 -0400 9.2 +++ b/src/share/vm/memory/filemap.cpp Wed Mar 20 12:20:10 2013 -0400 9.3 @@ -372,7 +372,7 @@ 9.4 // other reserved memory (like the code cache). 9.5 ReservedSpace rs(size, alignment, false, requested_addr); 9.6 if (!rs.is_reserved()) { 9.7 - fail_continue(err_msg("Unable to reserved shared space at required address " INTPTR_FORMAT, requested_addr)); 9.8 + fail_continue(err_msg("Unable to reserve shared space at required address " INTPTR_FORMAT, requested_addr)); 9.9 return rs; 9.10 } 9.11 // the reserved virtual memory is for mapping class data sharing archive
10.1 --- a/src/share/vm/memory/metaspace.cpp Wed Mar 20 11:43:56 2013 -0400 10.2 +++ b/src/share/vm/memory/metaspace.cpp Wed Mar 20 12:20:10 2013 -0400 10.3 @@ -337,27 +337,16 @@ 10.4 // align up to vm allocation granularity 10.5 byte_size = align_size_up(byte_size, os::vm_allocation_granularity()); 10.6 10.7 - // This allocates memory with mmap. For DumpSharedspaces, allocate the 10.8 - // space at low memory so that other shared images don't conflict. 10.9 - // This is the same address as memory needed for UseCompressedOops but 10.10 - // compressed oops don't work with CDS (offsets in metadata are wrong), so 10.11 - // borrow the same address. 10.12 + // This allocates memory with mmap. For DumpSharedspaces, try to reserve 10.13 + // configurable address, generally at the top of the Java heap so other 10.14 + // memory addresses don't conflict. 10.15 if (DumpSharedSpaces) { 10.16 - char* shared_base = (char*)HeapBaseMinAddress; 10.17 + char* shared_base = (char*)SharedBaseAddress; 10.18 _rs = ReservedSpace(byte_size, 0, false, shared_base, 0); 10.19 if (_rs.is_reserved()) { 10.20 - assert(_rs.base() == shared_base, "should match"); 10.21 + assert(shared_base == 0 || _rs.base() == shared_base, "should match"); 10.22 } else { 10.23 - // If we are dumping the heap, then allocate a wasted block of address 10.24 - // space in order to push the heap to a lower address. This extra 10.25 - // address range allows for other (or larger) libraries to be loaded 10.26 - // without them occupying the space required for the shared spaces. 10.27 - uintx reserved = 0; 10.28 - uintx block_size = 64*1024*1024; 10.29 - while (reserved < SharedDummyBlockSize) { 10.30 - char* dummy = os::reserve_memory(block_size); 10.31 - reserved += block_size; 10.32 - } 10.33 + // Get a mmap region anywhere if the SharedBaseAddress fails. 10.34 _rs = ReservedSpace(byte_size); 10.35 } 10.36 MetaspaceShared::set_shared_rs(&_rs);
11.1 --- a/src/share/vm/runtime/globals.hpp Wed Mar 20 11:43:56 2013 -0400 11.2 +++ b/src/share/vm/runtime/globals.hpp Wed Mar 20 12:20:10 2013 -0400 11.3 @@ -3573,8 +3573,9 @@ 11.4 product(uintx, SharedMiscCodeSize, 120*K, \ 11.5 "Size of the shared miscellaneous code area (in bytes)") \ 11.6 \ 11.7 - product(uintx, SharedDummyBlockSize, 0, \ 11.8 - "Size of dummy block used to shift heap addresses (in bytes)") \ 11.9 + product(uintx, SharedBaseAddress, LP64_ONLY(32*G) \ 11.10 + NOT_LP64(LINUX_ONLY(2*G) NOT_LINUX(0)), \ 11.11 + "Address to allocate shared memory region for class data") \ 11.12 \ 11.13 diagnostic(bool, EnableInvokeDynamic, true, \ 11.14 "support JSR 292 (method handles, invokedynamic, " \