hotspot/src/os/bsd/vm/os_bsd.cpp
changeset 12735 3e2e491f4f69
parent 12101 ce40623cb187
child 13195 be27e1b6a4b9
equal deleted inserted replaced
12734:98682ebd7a8b 12735:3e2e491f4f69
  2338      st->print("Can not get library information for pid = %d\n", pid);
  2338      st->print("Can not get library information for pid = %d\n", pid);
  2339    }
  2339    }
  2340 #endif
  2340 #endif
  2341 }
  2341 }
  2342 
  2342 
       
  2343 void os::print_os_info_brief(outputStream* st) {
       
  2344   st->print("Bsd");
       
  2345 
       
  2346   os::Posix::print_uname_info(st);
       
  2347 }
  2343 
  2348 
  2344 void os::print_os_info(outputStream* st) {
  2349 void os::print_os_info(outputStream* st) {
  2345   st->print("OS:");
  2350   st->print("OS:");
  2346 
  2351   st->print("Bsd");
  2347   // Try to identify popular distros.
  2352 
  2348   // Most Bsd distributions have /etc/XXX-release file, which contains
  2353   os::Posix::print_uname_info(st);
  2349   // the OS version string. Some have more than one /etc/XXX-release file
  2354 
  2350   // (e.g. Mandrake has both /etc/mandrake-release and /etc/redhat-release.),
  2355   os::Posix::print_rlimit_info(st);
  2351   // so the order is important.
  2356 
  2352   if (!_print_ascii_file("/etc/mandrake-release", st) &&
  2357   os::Posix::print_load_average(st);
  2353       !_print_ascii_file("/etc/sun-release", st) &&
       
  2354       !_print_ascii_file("/etc/redhat-release", st) &&
       
  2355       !_print_ascii_file("/etc/SuSE-release", st) &&
       
  2356       !_print_ascii_file("/etc/turbobsd-release", st) &&
       
  2357       !_print_ascii_file("/etc/gentoo-release", st) &&
       
  2358       !_print_ascii_file("/etc/debian_version", st) &&
       
  2359       !_print_ascii_file("/etc/ltib-release", st) &&
       
  2360       !_print_ascii_file("/etc/angstrom-version", st)) {
       
  2361       st->print("Bsd");
       
  2362   }
       
  2363   st->cr();
       
  2364 
       
  2365   // kernel
       
  2366   st->print("uname:");
       
  2367   struct utsname name;
       
  2368   uname(&name);
       
  2369   st->print(name.sysname); st->print(" ");
       
  2370   st->print(name.release); st->print(" ");
       
  2371   st->print(name.version); st->print(" ");
       
  2372   st->print(name.machine);
       
  2373   st->cr();
       
  2374 
       
  2375 #ifndef _ALLBSD_SOURCE
       
  2376   // Print warning if unsafe chroot environment detected
       
  2377   if (unsafe_chroot_detected) {
       
  2378     st->print("WARNING!! ");
       
  2379     st->print_cr(unstable_chroot_error);
       
  2380   }
       
  2381 
       
  2382   // libc, pthread
       
  2383   st->print("libc:");
       
  2384   st->print(os::Bsd::glibc_version()); st->print(" ");
       
  2385   st->print(os::Bsd::libpthread_version()); st->print(" ");
       
  2386   if (os::Bsd::is_BsdThreads()) {
       
  2387      st->print("(%s stack)", os::Bsd::is_floating_stack() ? "floating" : "fixed");
       
  2388   }
       
  2389   st->cr();
       
  2390 #endif
       
  2391 
       
  2392   // rlimit
       
  2393   st->print("rlimit:");
       
  2394   struct rlimit rlim;
       
  2395 
       
  2396   st->print(" STACK ");
       
  2397   getrlimit(RLIMIT_STACK, &rlim);
       
  2398   if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
       
  2399   else st->print("%uk", rlim.rlim_cur >> 10);
       
  2400 
       
  2401   st->print(", CORE ");
       
  2402   getrlimit(RLIMIT_CORE, &rlim);
       
  2403   if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
       
  2404   else st->print("%uk", rlim.rlim_cur >> 10);
       
  2405 
       
  2406   st->print(", NPROC ");
       
  2407   getrlimit(RLIMIT_NPROC, &rlim);
       
  2408   if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
       
  2409   else st->print("%d", rlim.rlim_cur);
       
  2410 
       
  2411   st->print(", NOFILE ");
       
  2412   getrlimit(RLIMIT_NOFILE, &rlim);
       
  2413   if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
       
  2414   else st->print("%d", rlim.rlim_cur);
       
  2415 
       
  2416 #ifndef _ALLBSD_SOURCE
       
  2417   st->print(", AS ");
       
  2418   getrlimit(RLIMIT_AS, &rlim);
       
  2419   if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
       
  2420   else st->print("%uk", rlim.rlim_cur >> 10);
       
  2421   st->cr();
       
  2422 
       
  2423   // load average
       
  2424   st->print("load average:");
       
  2425   double loadavg[3];
       
  2426   os::loadavg(loadavg, 3);
       
  2427   st->print("%0.02f %0.02f %0.02f", loadavg[0], loadavg[1], loadavg[2]);
       
  2428   st->cr();
       
  2429 #endif
       
  2430 }
  2358 }
  2431 
  2359 
  2432 void os::pd_print_cpu_info(outputStream* st) {
  2360 void os::pd_print_cpu_info(outputStream* st) {
  2433   // Nothing to do for now.
  2361   // Nothing to do for now.
  2434 }
  2362 }