提交 e39f1793 编写于 作者: Z zgu

Merge

...@@ -46,7 +46,7 @@ define_pd_global(uintx, SurvivorRatio, 8); ...@@ -46,7 +46,7 @@ define_pd_global(uintx, SurvivorRatio, 8);
define_pd_global(uintx, JVMInvokeMethodSlack, 8192); define_pd_global(uintx, JVMInvokeMethodSlack, 8192);
// Used on 64 bit platforms for UseCompressedOops base address or CDS // Used on 64 bit platforms for UseCompressedOops base address
define_pd_global(uintx, HeapBaseMinAddress, 2*G); define_pd_global(uintx, HeapBaseMinAddress, 2*G);
#endif // OS_CPU_BSD_X86_VM_GLOBALS_BSD_X86_HPP #endif // OS_CPU_BSD_X86_VM_GLOBALS_BSD_X86_HPP
...@@ -41,7 +41,7 @@ define_pd_global(intx, VMThreadStackSize, 512); ...@@ -41,7 +41,7 @@ define_pd_global(intx, VMThreadStackSize, 512);
define_pd_global(intx, CompilerThreadStackSize, 0); define_pd_global(intx, CompilerThreadStackSize, 0);
define_pd_global(uintx, JVMInvokeMethodSlack, 8192); define_pd_global(uintx, JVMInvokeMethodSlack, 8192);
// Used on 64 bit platforms for UseCompressedOops base address or CDS // Used on 64 bit platforms for UseCompressedOops base address
define_pd_global(uintx, HeapBaseMinAddress, 2*G); define_pd_global(uintx, HeapBaseMinAddress, 2*G);
#endif // OS_CPU_BSD_ZERO_VM_GLOBALS_BSD_ZERO_HPP #endif // OS_CPU_BSD_ZERO_VM_GLOBALS_BSD_ZERO_HPP
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
define_pd_global(uintx, JVMInvokeMethodSlack, 12288); define_pd_global(uintx, JVMInvokeMethodSlack, 12288);
define_pd_global(intx, CompilerThreadStackSize, 0); define_pd_global(intx, CompilerThreadStackSize, 0);
// Used on 64 bit platforms for UseCompressedOops base address or CDS // Used on 64 bit platforms for UseCompressedOops base address
define_pd_global(uintx, HeapBaseMinAddress, CONST64(4)*G); define_pd_global(uintx, HeapBaseMinAddress, CONST64(4)*G);
#endif // OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP #endif // OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP
...@@ -44,7 +44,7 @@ define_pd_global(intx, CompilerThreadStackSize, 0); ...@@ -44,7 +44,7 @@ define_pd_global(intx, CompilerThreadStackSize, 0);
define_pd_global(uintx,JVMInvokeMethodSlack, 8192); define_pd_global(uintx,JVMInvokeMethodSlack, 8192);
// Used on 64 bit platforms for UseCompressedOops base address or CDS // Used on 64 bit platforms for UseCompressedOops base address
define_pd_global(uintx,HeapBaseMinAddress, 2*G); define_pd_global(uintx,HeapBaseMinAddress, 2*G);
#endif // OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP #endif // OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP
...@@ -41,7 +41,7 @@ define_pd_global(intx, VMThreadStackSize, 512); ...@@ -41,7 +41,7 @@ define_pd_global(intx, VMThreadStackSize, 512);
define_pd_global(intx, CompilerThreadStackSize, 0); define_pd_global(intx, CompilerThreadStackSize, 0);
define_pd_global(uintx, JVMInvokeMethodSlack, 8192); define_pd_global(uintx, JVMInvokeMethodSlack, 8192);
// Used on 64 bit platforms for UseCompressedOops base address or CDS // Used on 64 bit platforms for UseCompressedOops base address
define_pd_global(uintx, HeapBaseMinAddress, 2*G); define_pd_global(uintx, HeapBaseMinAddress, 2*G);
#endif // OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP #endif // OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
define_pd_global(uintx, JVMInvokeMethodSlack, 12288); define_pd_global(uintx, JVMInvokeMethodSlack, 12288);
define_pd_global(intx, CompilerThreadStackSize, 0); define_pd_global(intx, CompilerThreadStackSize, 0);
// Used on 64 bit platforms for UseCompressedOops base address or CDS // Used on 64 bit platforms for UseCompressedOops base address
#ifdef _LP64 #ifdef _LP64
define_pd_global(uintx, HeapBaseMinAddress, CONST64(4)*G); define_pd_global(uintx, HeapBaseMinAddress, CONST64(4)*G);
#else #else
......
...@@ -43,7 +43,7 @@ define_pd_global(uintx,JVMInvokeMethodSlack, 10*K); ...@@ -43,7 +43,7 @@ define_pd_global(uintx,JVMInvokeMethodSlack, 10*K);
define_pd_global(intx, CompilerThreadStackSize, 0); define_pd_global(intx, CompilerThreadStackSize, 0);
// Used on 64 bit platforms for UseCompressedOops base address or CDS // Used on 64 bit platforms for UseCompressedOops base address
define_pd_global(uintx,HeapBaseMinAddress, 256*M); define_pd_global(uintx,HeapBaseMinAddress, 256*M);
#endif // OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP #endif // OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP
...@@ -45,7 +45,7 @@ define_pd_global(intx, CompilerThreadStackSize, 0); ...@@ -45,7 +45,7 @@ define_pd_global(intx, CompilerThreadStackSize, 0);
define_pd_global(uintx, JVMInvokeMethodSlack, 8192); define_pd_global(uintx, JVMInvokeMethodSlack, 8192);
// Used on 64 bit platforms for UseCompressedOops base address or CDS // Used on 64 bit platforms for UseCompressedOops base address
define_pd_global(uintx, HeapBaseMinAddress, 2*G); define_pd_global(uintx, HeapBaseMinAddress, 2*G);
#endif // OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP #endif // OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP
...@@ -372,7 +372,7 @@ ReservedSpace FileMapInfo::reserve_shared_memory() { ...@@ -372,7 +372,7 @@ ReservedSpace FileMapInfo::reserve_shared_memory() {
// other reserved memory (like the code cache). // other reserved memory (like the code cache).
ReservedSpace rs(size, alignment, false, requested_addr); ReservedSpace rs(size, alignment, false, requested_addr);
if (!rs.is_reserved()) { if (!rs.is_reserved()) {
fail_continue(err_msg("Unable to reserved shared space at required address " INTPTR_FORMAT, requested_addr)); fail_continue(err_msg("Unable to reserve shared space at required address " INTPTR_FORMAT, requested_addr));
return rs; return rs;
} }
// the reserved virtual memory is for mapping class data sharing archive // the reserved virtual memory is for mapping class data sharing archive
......
...@@ -337,27 +337,16 @@ VirtualSpaceNode::VirtualSpaceNode(size_t byte_size) : _top(NULL), _next(NULL), ...@@ -337,27 +337,16 @@ VirtualSpaceNode::VirtualSpaceNode(size_t byte_size) : _top(NULL), _next(NULL),
// align up to vm allocation granularity // align up to vm allocation granularity
byte_size = align_size_up(byte_size, os::vm_allocation_granularity()); byte_size = align_size_up(byte_size, os::vm_allocation_granularity());
// This allocates memory with mmap. For DumpSharedspaces, allocate the // This allocates memory with mmap. For DumpSharedspaces, try to reserve
// space at low memory so that other shared images don't conflict. // configurable address, generally at the top of the Java heap so other
// This is the same address as memory needed for UseCompressedOops but // memory addresses don't conflict.
// compressed oops don't work with CDS (offsets in metadata are wrong), so
// borrow the same address.
if (DumpSharedSpaces) { if (DumpSharedSpaces) {
char* shared_base = (char*)HeapBaseMinAddress; char* shared_base = (char*)SharedBaseAddress;
_rs = ReservedSpace(byte_size, 0, false, shared_base, 0); _rs = ReservedSpace(byte_size, 0, false, shared_base, 0);
if (_rs.is_reserved()) { if (_rs.is_reserved()) {
assert(_rs.base() == shared_base, "should match"); assert(shared_base == 0 || _rs.base() == shared_base, "should match");
} else { } else {
// If we are dumping the heap, then allocate a wasted block of address // Get a mmap region anywhere if the SharedBaseAddress fails.
// space in order to push the heap to a lower address. This extra
// address range allows for other (or larger) libraries to be loaded
// without them occupying the space required for the shared spaces.
uintx reserved = 0;
uintx block_size = 64*1024*1024;
while (reserved < SharedDummyBlockSize) {
char* dummy = os::reserve_memory(block_size);
reserved += block_size;
}
_rs = ReservedSpace(byte_size); _rs = ReservedSpace(byte_size);
} }
MetaspaceShared::set_shared_rs(&_rs); MetaspaceShared::set_shared_rs(&_rs);
......
...@@ -1722,7 +1722,7 @@ JVM_ENTRY(jobjectArray, JVM_GetClassDeclaredMethods(JNIEnv *env, jclass ofClass, ...@@ -1722,7 +1722,7 @@ JVM_ENTRY(jobjectArray, JVM_GetClassDeclaredMethods(JNIEnv *env, jclass ofClass,
int i; int i;
for (i = 0; i < methods_length; i++) { for (i = 0; i < methods_length; i++) {
methodHandle method(THREAD, methods->at(i)); methodHandle method(THREAD, methods->at(i));
if (!method->is_initializer()) { if (!method->is_initializer() && !method->is_overpass()) {
if (!publicOnly || method->is_public()) { if (!publicOnly || method->is_public()) {
++num_methods; ++num_methods;
} }
...@@ -1736,7 +1736,7 @@ JVM_ENTRY(jobjectArray, JVM_GetClassDeclaredMethods(JNIEnv *env, jclass ofClass, ...@@ -1736,7 +1736,7 @@ JVM_ENTRY(jobjectArray, JVM_GetClassDeclaredMethods(JNIEnv *env, jclass ofClass,
int out_idx = 0; int out_idx = 0;
for (i = 0; i < methods_length; i++) { for (i = 0; i < methods_length; i++) {
methodHandle method(THREAD, methods->at(i)); methodHandle method(THREAD, methods->at(i));
if (!method->is_initializer()) { if (!method->is_initializer() && !method->is_overpass()) {
if (!publicOnly || method->is_public()) { if (!publicOnly || method->is_public()) {
oop m = Reflection::new_method(method, UseNewReflection, false, CHECK_NULL); oop m = Reflection::new_method(method, UseNewReflection, false, CHECK_NULL);
result->obj_at_put(out_idx, m); result->obj_at_put(out_idx, m);
......
...@@ -3578,8 +3578,9 @@ class CommandLineFlags { ...@@ -3578,8 +3578,9 @@ class CommandLineFlags {
product(uintx, SharedMiscCodeSize, 120*K, \ product(uintx, SharedMiscCodeSize, 120*K, \
"Size of the shared miscellaneous code area (in bytes)") \ "Size of the shared miscellaneous code area (in bytes)") \
\ \
product(uintx, SharedDummyBlockSize, 0, \ product(uintx, SharedBaseAddress, LP64_ONLY(32*G) \
"Size of dummy block used to shift heap addresses (in bytes)") \ NOT_LP64(LINUX_ONLY(2*G) NOT_LINUX(0)), \
"Address to allocate shared memory region for class data") \
\ \
diagnostic(bool, EnableInvokeDynamic, true, \ diagnostic(bool, EnableInvokeDynamic, true, \
"support JSR 292 (method handles, invokedynamic, " \ "support JSR 292 (method handles, invokedynamic, " \
......
...@@ -577,15 +577,15 @@ void verify_block(void* memblock) { ...@@ -577,15 +577,15 @@ void verify_block(void* memblock) {
// condition without really running the system out of memory. // condition without really running the system out of memory.
// //
static u_char* testMalloc(size_t alloc_size) { static u_char* testMalloc(size_t alloc_size) {
assert(MallocMaxTestWords > 0, "sanity check");
if (MallocMaxTestWords > 0 && if ((cur_malloc_words + (alloc_size / BytesPerWord)) > MallocMaxTestWords) {
(cur_malloc_words + (alloc_size / BytesPerWord)) > MallocMaxTestWords) {
return NULL; return NULL;
} }
u_char* ptr = (u_char*)::malloc(alloc_size); u_char* ptr = (u_char*)::malloc(alloc_size);
if (MallocMaxTestWords > 0 && (ptr != NULL)) { if (ptr != NULL) {
Atomic::add(((jint) (alloc_size / BytesPerWord)), Atomic::add(((jint) (alloc_size / BytesPerWord)),
(volatile jint *) &cur_malloc_words); (volatile jint *) &cur_malloc_words);
} }
......
...@@ -33,17 +33,17 @@ import com.oracle.java.testlibrary.*; ...@@ -33,17 +33,17 @@ import com.oracle.java.testlibrary.*;
public class BooleanFlagWithInvalidValue { public class BooleanFlagWithInvalidValue {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
"-XX:+UseLargePages=8", "-version"); "-XX:+PrintWarnings=8", "-version");
OutputAnalyzer output = new OutputAnalyzer(pb.start()); OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldContain("Improperly specified VM option 'UseLargePages=8'"); output.shouldContain("Improperly specified VM option 'PrintWarnings=8'");
output.shouldHaveExitValue(1); output.shouldHaveExitValue(1);
pb = ProcessTools.createJavaProcessBuilder( pb = ProcessTools.createJavaProcessBuilder(
"-XX:-UseLargePages=8", "-version"); "-XX:-PrintWarnings=8", "-version");
output = new OutputAnalyzer(pb.start()); output = new OutputAnalyzer(pb.start());
output.shouldContain("Improperly specified VM option 'UseLargePages=8'"); output.shouldContain("Improperly specified VM option 'PrintWarnings=8'");
output.shouldHaveExitValue(1); output.shouldHaveExitValue(1);
} }
} }
...@@ -33,10 +33,10 @@ import com.oracle.java.testlibrary.*; ...@@ -33,10 +33,10 @@ import com.oracle.java.testlibrary.*;
public class FlagWithInvalidValue { public class FlagWithInvalidValue {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
"-XX:ObjectAlignmentInBytes=v", "-version"); "-XX:MaxRAMFraction=v", "-version");
OutputAnalyzer output = new OutputAnalyzer(pb.start()); OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldContain("Improperly specified VM option 'ObjectAlignmentInBytes=v'"); output.shouldContain("Improperly specified VM option 'MaxRAMFraction=v'");
output.shouldHaveExitValue(1); output.shouldHaveExitValue(1);
} }
} }
...@@ -33,17 +33,17 @@ import com.oracle.java.testlibrary.*; ...@@ -33,17 +33,17 @@ import com.oracle.java.testlibrary.*;
public class NonBooleanFlagWithInvalidBooleanPrefix { public class NonBooleanFlagWithInvalidBooleanPrefix {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
"-XX:-ObjectAlignmentInBytes=16", "-version"); "-XX:-MaxRAMFraction=16", "-version");
OutputAnalyzer output = new OutputAnalyzer(pb.start()); OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldContain("Unexpected +/- setting in VM option 'ObjectAlignmentInBytes=16'"); output.shouldContain("Unexpected +/- setting in VM option 'MaxRAMFraction=16'");
output.shouldHaveExitValue(1); output.shouldHaveExitValue(1);
pb = ProcessTools.createJavaProcessBuilder( pb = ProcessTools.createJavaProcessBuilder(
"-XX:+ObjectAlignmentInBytes=16", "-version"); "-XX:+MaxRAMFraction=16", "-version");
output = new OutputAnalyzer(pb.start()); output = new OutputAnalyzer(pb.start());
output.shouldContain("Unexpected +/- setting in VM option 'ObjectAlignmentInBytes=16'"); output.shouldContain("Unexpected +/- setting in VM option 'MaxRAMFraction=16'");
output.shouldHaveExitValue(1); output.shouldHaveExitValue(1);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册