< prev index next >

src/hotspot/os/bsd/os_bsd.cpp

Print this page
rev 56978 : 8234397: add OS uptime information to os::print_os_info output

@@ -167,10 +167,26 @@
   }
 #endif
   return available;
 }
 
+// for more info see :
+// https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/sysctl.3.html
+void os::Bsd::print_uptime_info(outputStream* st) {
+  struct timeval boottime;
+  size_t len = sizeof(boottime);
+  int mib[2];
+  mib[0] = CTL_KERN;
+  mib[1] = KERN_BOOTTIME;
+
+  if (sysctl(mib, 2, &boottime, &len, NULL, 0) >= 0) {
+    time_t bootsec = boottime.tv_sec, currsec = time(NULL);
+    double tdiff = difftime(currsec, bootsec);
+    st->print_cr("OS uptime (in days): %.2lf", tdiff/(60.0*60.0*24.0));
+  }
+}
+
 julong os::physical_memory() {
   return Bsd::physical_memory();
 }
 
 // Return true if user is running as root.

@@ -1568,10 +1584,12 @@
 void os::print_os_info(outputStream* st) {
   st->print("OS:");
 
   os::Posix::print_uname_info(st);
 
+  os::Bsd::print_uptime_info(st);
+
   os::Posix::print_rlimit_info(st);
 
   os::Posix::print_load_average(st);
 }
 
< prev index next >