68 lines
2.8 KiB
Diff
68 lines
2.8 KiB
Diff
Subject: [PATCH][Huawei] Enhance SIGBUS and rlimit information in errlog
|
|
|
|
---
|
|
hotspot/src/os/posix/vm/os_posix.cpp | 26 ++++++++++++++++++++++
|
|
hotspot/src/share/vm/utilities/vmError.cpp | 2 +-
|
|
2 files changed, 27 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/hotspot/src/os/posix/vm/os_posix.cpp b/hotspot/src/os/posix/vm/os_posix.cpp
|
|
index f7dab3c7f..a83ae1476 100644
|
|
--- a/hotspot/src/os/posix/vm/os_posix.cpp
|
|
+++ b/hotspot/src/os/posix/vm/os_posix.cpp
|
|
@@ -207,6 +207,26 @@ void os::Posix::print_rlimit_info(outputStream* st) {
|
|
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
|
|
else st->print("%uk", rlim.rlim_cur >> 10);
|
|
|
|
+ st->print(", DATA ");
|
|
+ getrlimit(RLIMIT_DATA, &rlim);
|
|
+ if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
|
|
+ else st->print("%uk", rlim.rlim_cur >> 10);
|
|
+
|
|
+ st->print(", FSIZE ");
|
|
+ getrlimit(RLIMIT_FSIZE, &rlim);
|
|
+ if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
|
|
+ else st->print("%u", rlim.rlim_cur >> 10);
|
|
+
|
|
+ st->print(", CPU ");
|
|
+ getrlimit(RLIMIT_CPU, &rlim);
|
|
+ if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
|
|
+ else st->print("%uk seconds", rlim.rlim_cur >> 10);
|
|
+
|
|
+ st->print(", RSS ");
|
|
+ getrlimit(RLIMIT_RSS, &rlim);
|
|
+ if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
|
|
+ else st->print("%u", rlim.rlim_cur >> 10);
|
|
+
|
|
// Isn't there on solaris
|
|
#if !defined(TARGET_OS_FAMILY_solaris) && !defined(TARGET_OS_FAMILY_aix)
|
|
st->print(", NPROC ");
|
|
@@ -765,6 +785,12 @@ static bool get_signal_code_description(const siginfo_t* si, enum_sigcode_desc_t
|
|
{ SIGBUS, BUS_ADRALN, "BUS_ADRALN", "Invalid address alignment." },
|
|
{ SIGBUS, BUS_ADRERR, "BUS_ADRERR", "Nonexistent physical address." },
|
|
{ SIGBUS, BUS_OBJERR, "BUS_OBJERR", "Object-specific hardware error." },
|
|
+#ifdef BUS_MCEERR_AR
|
|
+ { SIGBUS, BUS_MCEERR_AR,"BUS_MCEERR_AR","hardware memory error consumed on a machine check: action required."},
|
|
+#endif
|
|
+#ifdef BUS_MCEERR_AO
|
|
+ { SIGBUS, BUS_MCEERR_AO,"BUS_MCEERR_AO","hardware memory error detected in process but not consumed: action optional."},
|
|
+#endif
|
|
{ SIGTRAP, TRAP_BRKPT, "TRAP_BRKPT", "Process breakpoint." },
|
|
{ SIGTRAP, TRAP_TRACE, "TRAP_TRACE", "Process trace trap." },
|
|
{ SIGCHLD, CLD_EXITED, "CLD_EXITED", "Child has exited." },
|
|
diff --git a/hotspot/src/share/vm/utilities/vmError.cpp b/hotspot/src/share/vm/utilities/vmError.cpp
|
|
index 0c5c955bf..3233e4b31 100644
|
|
--- a/hotspot/src/share/vm/utilities/vmError.cpp
|
|
+++ b/hotspot/src/share/vm/utilities/vmError.cpp
|
|
@@ -813,7 +813,7 @@ void VMError::report(outputStream* st) {
|
|
#if defined(AARCH64) || defined(X86)
|
|
STEP(207, "(printing file descriptor)" )
|
|
|
|
- if (ExtensiveErrorReports && _verbose) {
|
|
+ if (_verbose) {
|
|
// File Descriptor
|
|
os::print_file_descriptor(st);
|
|
st->cr();
|
|
--
|
|
2.19.1
|
|
|