8180184: Add DATA and FSIZE to os::Posix::print_rlimit_info

Reviewed-by: dholmes, stuefe
This commit is contained in:
Mikael Vidstedt 2017-05-30 15:41:23 -07:00
parent 3a8c8edb86
commit 292ac89940
2 changed files with 20 additions and 38 deletions

View file

@ -1380,39 +1380,7 @@ void os::print_os_info(outputStream* st) {
st->print_cr("AIX kernel version %u.%u.%u.%u", st->print_cr("AIX kernel version %u.%u.%u.%u",
(ver >> 24) & 0xFF, (ver >> 16) & 0xFF, (ver >> 8) & 0xFF, ver & 0xFF); (ver >> 24) & 0xFF, (ver >> 16) & 0xFF, (ver >> 8) & 0xFF, ver & 0xFF);
// rlimit os::Posix::print_rlimit_info(st);
st->print("rlimit:");
struct rlimit rlim;
st->print(" STACK ");
getrlimit(RLIMIT_STACK, &rlim);
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
else st->print("%uk", rlim.rlim_cur >> 10);
st->print(", CORE ");
getrlimit(RLIMIT_CORE, &rlim);
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
else st->print("%uk", rlim.rlim_cur >> 10);
st->print(", NPROC ");
st->print("%d", sysconf(_SC_CHILD_MAX));
st->print(", NOFILE ");
getrlimit(RLIMIT_NOFILE, &rlim);
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
else st->print("%d", rlim.rlim_cur);
st->print(", AS ");
getrlimit(RLIMIT_AS, &rlim);
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
else st->print("%uk", rlim.rlim_cur >> 10);
// Print limits on DATA, because it limits the C-heap.
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->cr();
// load average // load average
st->print("load average:"); st->print("load average:");

View file

@ -84,7 +84,7 @@ void os::check_dump_limit(char* buffer, size_t bufferSize) {
success = false; success = false;
break; break;
default: default:
jio_snprintf(buffer, bufferSize, "%s (max size %lu kB). To ensure a full core dump, try \"ulimit -c unlimited\" before starting Java again", core_path, (unsigned long)(rlim.rlim_cur >> 10)); jio_snprintf(buffer, bufferSize, "%s (max size " UINT64_FORMAT " kB). To ensure a full core dump, try \"ulimit -c unlimited\" before starting Java again", core_path, uint64_t(rlim.rlim_cur) / 1024);
success = true; success = true;
break; break;
} }
@ -208,15 +208,18 @@ void os::Posix::print_rlimit_info(outputStream* st) {
st->print(" STACK "); st->print(" STACK ");
getrlimit(RLIMIT_STACK, &rlim); getrlimit(RLIMIT_STACK, &rlim);
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity"); if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
else st->print(UINT64_FORMAT "k", uint64_t(rlim.rlim_cur) >> 10); else st->print(UINT64_FORMAT "k", uint64_t(rlim.rlim_cur) / 1024);
st->print(", CORE "); st->print(", CORE ");
getrlimit(RLIMIT_CORE, &rlim); getrlimit(RLIMIT_CORE, &rlim);
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity"); if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
else st->print(UINT64_FORMAT "k", uint64_t(rlim.rlim_cur) >> 10); else st->print(UINT64_FORMAT "k", uint64_t(rlim.rlim_cur) / 1024);
// Isn't there on solaris // Isn't there on solaris
#if !defined(SOLARIS) && !defined(AIX) #if defined(AIX)
st->print(", NPROC ");
st->print("%d", sysconf(_SC_CHILD_MAX));
#elif !defined(SOLARIS)
st->print(", NPROC "); st->print(", NPROC ");
getrlimit(RLIMIT_NPROC, &rlim); getrlimit(RLIMIT_NPROC, &rlim);
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity"); if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
@ -231,7 +234,18 @@ void os::Posix::print_rlimit_info(outputStream* st) {
st->print(", AS "); st->print(", AS ");
getrlimit(RLIMIT_AS, &rlim); getrlimit(RLIMIT_AS, &rlim);
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity"); if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
else st->print(UINT64_FORMAT "k", uint64_t(rlim.rlim_cur) >> 10); else st->print(UINT64_FORMAT "k", uint64_t(rlim.rlim_cur) / 1024);
st->print(", DATA ");
getrlimit(RLIMIT_DATA, &rlim);
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
else st->print(UINT64_FORMAT "k", uint64_t(rlim.rlim_cur) / 1024);
st->print(", FSIZE ");
getrlimit(RLIMIT_FSIZE, &rlim);
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
else st->print(UINT64_FORMAT "k", uint64_t(rlim.rlim_cur) / 1024);
st->cr(); st->cr();
} }