8224230: [PPC64, s390] Support AsyncGetCallTrace
Reviewed-by: goetz, jcbeyler, sspitsyn
This commit is contained in:
parent
c053e706a9
commit
6b2615be6a
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||||
* Copyright (c) 2012, 2014 SAP SE. All rights reserved.
|
* Copyright (c) 2012, 2019 SAP SE. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -92,9 +92,8 @@ bool JavaThread::pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Forte Analyzer AsyncGetCallTrace profiling support is not implemented on Linux/PPC.
|
// Forte Analyzer AsyncGetCallTrace profiling support.
|
||||||
bool JavaThread::pd_get_top_frame_for_signal_handler(frame* fr_addr, void* ucontext, bool isInJava) {
|
bool JavaThread::pd_get_top_frame_for_signal_handler(frame* fr_addr, void* ucontext, bool isInJava) {
|
||||||
assert(this->is_Java_thread(), "must be JavaThread");
|
|
||||||
return pd_get_top_frame_for_profiling(fr_addr, ucontext, isInJava);
|
return pd_get_top_frame_for_profiling(fr_addr, ucontext, isInJava);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,10 +90,9 @@ bool JavaThread::pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Forte Analyzer AsyncGetCallTrace profiling support is not implemented on Linux/S390x.
|
// Forte Analyzer AsyncGetCallTrace profiling support.
|
||||||
bool JavaThread::pd_get_top_frame_for_signal_handler(frame* fr_addr, void* ucontext, bool isInJava) {
|
bool JavaThread::pd_get_top_frame_for_signal_handler(frame* fr_addr, void* ucontext, bool isInJava) {
|
||||||
Unimplemented();
|
return pd_get_top_frame_for_profiling(fr_addr, ucontext, isInJava);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JavaThread::cache_global_variables() { }
|
void JavaThread::cache_global_variables() { }
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -70,7 +70,7 @@ enum {
|
|||||||
// Native interfaces for use by Forte tools.
|
// Native interfaces for use by Forte tools.
|
||||||
|
|
||||||
|
|
||||||
#if !defined(IA64) && !defined(PPC64)
|
#if !defined(IA64)
|
||||||
|
|
||||||
class vframeStreamForte : public vframeStreamCommon {
|
class vframeStreamForte : public vframeStreamCommon {
|
||||||
public:
|
public:
|
||||||
@ -639,16 +639,16 @@ void collector_func_load(char* name,
|
|||||||
#endif // !_WINDOWS
|
#endif // !_WINDOWS
|
||||||
|
|
||||||
} // end extern "C"
|
} // end extern "C"
|
||||||
#endif // !IA64 && !PPC64
|
#endif // !IA64
|
||||||
|
|
||||||
void Forte::register_stub(const char* name, address start, address end) {
|
void Forte::register_stub(const char* name, address start, address end) {
|
||||||
#if !defined(_WINDOWS) && !defined(IA64) && !defined(PPC64)
|
#if !defined(_WINDOWS) && !defined(IA64)
|
||||||
assert(pointer_delta(end, start, sizeof(jbyte)) < INT_MAX,
|
assert(pointer_delta(end, start, sizeof(jbyte)) < INT_MAX,
|
||||||
"Code size exceeds maximum range");
|
"Code size exceeds maximum range");
|
||||||
|
|
||||||
collector_func_load((char*)name, NULL, NULL, start,
|
collector_func_load((char*)name, NULL, NULL, start,
|
||||||
pointer_delta(end, start, sizeof(jbyte)), 0, NULL);
|
pointer_delta(end, start, sizeof(jbyte)), 0, NULL);
|
||||||
#endif // !_WINDOWS && !IA64 && !PPC64
|
#endif // !_WINDOWS && !IA64
|
||||||
}
|
}
|
||||||
|
|
||||||
#else // INCLUDE_JVMTI
|
#else // INCLUDE_JVMTI
|
||||||
|
@ -29,7 +29,7 @@ package MyPackage;
|
|||||||
* @summary Verifies that AsyncGetCallTrace is call-able and provides sane information.
|
* @summary Verifies that AsyncGetCallTrace is call-able and provides sane information.
|
||||||
* @compile ASGCTBaseTest.java
|
* @compile ASGCTBaseTest.java
|
||||||
* @requires os.family == "linux"
|
* @requires os.family == "linux"
|
||||||
* @requires os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64" | os.arch=="arm" | os.arch=="sparc" | os.arch=="aarch64"
|
* @requires os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64" | os.arch=="arm" | os.arch=="sparc" | os.arch=="aarch64" | os.arch=="ppc64" | os.arch=="s390"
|
||||||
* @run main/othervm/native -agentlib:AsyncGetCallTraceTest MyPackage.ASGCTBaseTest
|
* @run main/othervm/native -agentlib:AsyncGetCallTraceTest MyPackage.ASGCTBaseTest
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user