2103 }
2104 return 0;
2105 }
2106
2107 void os::print_os_info_brief(outputStream* st) {
2108 os::Linux::print_distro_info(st);
2109
2110 os::Posix::print_uname_info(st);
2111
2112 os::Linux::print_libversion_info(st);
2113
2114 }
2115
2116 void os::print_os_info(outputStream* st) {
2117 st->print("OS:");
2118
2119 os::Linux::print_distro_info(st);
2120
2121 os::Posix::print_uname_info(st);
2122
2123 // Print warning if unsafe chroot environment detected
2124 if (unsafe_chroot_detected) {
2125 st->print("WARNING!! ");
2126 st->print_cr("%s", unstable_chroot_error);
2127 }
2128
2129 os::Linux::print_libversion_info(st);
2130
2131 os::Posix::print_rlimit_info(st);
2132
2133 os::Posix::print_load_average(st);
2134
2135 os::Linux::print_full_memory_info(st);
2136
2137 os::Linux::print_proc_sys_info(st);
2138
2139 os::Linux::print_ld_preload_file(st);
2140
2141 os::Linux::print_container_info(st);
2142
2287 _print_ascii_file("/proc/sys/vm/max_map_count", st);
2288 st->cr();
2289 st->cr();
2290
2291 st->print_cr("/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers):");
2292 _print_ascii_file("/proc/sys/kernel/pid_max", st);
2293 st->cr();
2294 st->cr();
2295 }
2296
2297 void os::Linux::print_full_memory_info(outputStream* st) {
2298 st->print("\n/proc/meminfo:\n");
2299 _print_ascii_file("/proc/meminfo", st);
2300 st->cr();
2301 }
2302
2303 void os::Linux::print_ld_preload_file(outputStream* st) {
2304 _print_ascii_file("/etc/ld.so.preload", st, "\n/etc/ld.so.preload:");
2305 st->cr();
2306 }
2307
2308 void os::Linux::print_container_info(outputStream* st) {
2309 if (!OSContainer::is_containerized()) {
2310 return;
2311 }
2312
2313 st->print("container (cgroup) information:\n");
2314
2315 const char *p_ct = OSContainer::container_type();
2316 st->print("container_type: %s\n", p_ct != NULL ? p_ct : "not supported");
2317
2318 char *p = OSContainer::cpu_cpuset_cpus();
2319 st->print("cpu_cpuset_cpus: %s\n", p != NULL ? p : "not supported");
2320 free(p);
2321
2322 p = OSContainer::cpu_cpuset_memory_nodes();
2323 st->print("cpu_memory_nodes: %s\n", p != NULL ? p : "not supported");
2324 free(p);
2325
2326 int i = OSContainer::active_processor_count();
|
2103 }
2104 return 0;
2105 }
2106
2107 void os::print_os_info_brief(outputStream* st) {
2108 os::Linux::print_distro_info(st);
2109
2110 os::Posix::print_uname_info(st);
2111
2112 os::Linux::print_libversion_info(st);
2113
2114 }
2115
2116 void os::print_os_info(outputStream* st) {
2117 st->print("OS:");
2118
2119 os::Linux::print_distro_info(st);
2120
2121 os::Posix::print_uname_info(st);
2122
2123 os::Linux::print_uptime_info(st);
2124
2125 // Print warning if unsafe chroot environment detected
2126 if (unsafe_chroot_detected) {
2127 st->print("WARNING!! ");
2128 st->print_cr("%s", unstable_chroot_error);
2129 }
2130
2131 os::Linux::print_libversion_info(st);
2132
2133 os::Posix::print_rlimit_info(st);
2134
2135 os::Posix::print_load_average(st);
2136
2137 os::Linux::print_full_memory_info(st);
2138
2139 os::Linux::print_proc_sys_info(st);
2140
2141 os::Linux::print_ld_preload_file(st);
2142
2143 os::Linux::print_container_info(st);
2144
2289 _print_ascii_file("/proc/sys/vm/max_map_count", st);
2290 st->cr();
2291 st->cr();
2292
2293 st->print_cr("/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers):");
2294 _print_ascii_file("/proc/sys/kernel/pid_max", st);
2295 st->cr();
2296 st->cr();
2297 }
2298
2299 void os::Linux::print_full_memory_info(outputStream* st) {
2300 st->print("\n/proc/meminfo:\n");
2301 _print_ascii_file("/proc/meminfo", st);
2302 st->cr();
2303 }
2304
2305 void os::Linux::print_ld_preload_file(outputStream* st) {
2306 _print_ascii_file("/etc/ld.so.preload", st, "\n/etc/ld.so.preload:");
2307 st->cr();
2308 }
2309
2310 void os::Linux::print_uptime_info(outputStream* st) {
2311 struct sysinfo sinfo;
2312 int ret = sysinfo(&sinfo);
2313 if (ret == 0) {
2314 st->print_cr("OS uptime (in days): %.2lf", (double) sinfo.uptime/(60*60*24) );
2315 }
2316 }
2317
2318
2319 void os::Linux::print_container_info(outputStream* st) {
2320 if (!OSContainer::is_containerized()) {
2321 return;
2322 }
2323
2324 st->print("container (cgroup) information:\n");
2325
2326 const char *p_ct = OSContainer::container_type();
2327 st->print("container_type: %s\n", p_ct != NULL ? p_ct : "not supported");
2328
2329 char *p = OSContainer::cpu_cpuset_cpus();
2330 st->print("cpu_cpuset_cpus: %s\n", p != NULL ? p : "not supported");
2331 free(p);
2332
2333 p = OSContainer::cpu_cpuset_memory_nodes();
2334 st->print("cpu_memory_nodes: %s\n", p != NULL ? p : "not supported");
2335 free(p);
2336
2337 int i = OSContainer::active_processor_count();
|