< prev index next >
src/hotspot/os/posix/os_posix.cpp
Print this page
rev 56978 : 8234397: add OS uptime information to os::print_os_info output
@@ -45,10 +45,11 @@
#include <sys/mman.h>
#include <sys/resource.h>
#include <sys/utsname.h>
#include <time.h>
#include <unistd.h>
+#include <utmpx.h>
// Todo: provide a os::get_max_process_id() or similar. Number of processes
// may have been configured, can be read more accurately from proc fs etc.
#ifndef MAX_PID
#define MAX_PID INT_MAX
@@ -375,10 +376,31 @@
st->print(" Unavailable");
}
st->cr();
}
+// boot/uptime information;
+// unfortunately it does not work on macOS because the utx chain has no entry
+// for reboot at least on my test machines
+void os::Posix::print_uptime_info(outputStream* st) {
+ int bootsec = -1;
+ int currsec = time(NULL);
+ struct utmpx* ent;
+ setutxent();
+ while ((ent = getutxent())) {
+ if (!strcmp("system boot", ent->ut_line)) {
+ bootsec = ent->ut_tv.tv_sec;
+ break;
+ }
+ }
+
+ if (bootsec != -1) {
+ st->print_cr("OS uptime (in days): %.2lf", (double) (currsec-bootsec)/(60*60*24));
+ }
+}
+
+
void os::Posix::print_rlimit_info(outputStream* st) {
st->print("rlimit:");
struct rlimit rlim;
st->print(" STACK ");
< prev index next >