src/os/linux/vm/os_linux.cpp

Print this page
rev 6853 : 8046070: Class Data Sharing clean up and refactoring
Summary: Cleaned up CDS to be more configurable, maintainable and extensible
Reviewed-by: dholmes, coleenp, acorn, mchung


2229             os::available_memory() >> 10);
2230   st->print(", swap " UINT64_FORMAT "k",
2231             ((jlong)si.totalswap * si.mem_unit) >> 10);
2232   st->print("(" UINT64_FORMAT "k free)",
2233             ((jlong)si.freeswap * si.mem_unit) >> 10);
2234   st->cr();
2235 }
2236 
2237 void os::pd_print_cpu_info(outputStream* st) {
2238   st->print("\n/proc/cpuinfo:\n");
2239   if (!_print_ascii_file("/proc/cpuinfo", st)) {
2240     st->print("  <Not Available>");
2241   }
2242   st->cr();
2243 }
2244 
2245 void os::print_siginfo(outputStream* st, void* siginfo) {
2246   const siginfo_t* si = (const siginfo_t*)siginfo;
2247 
2248   os::Posix::print_siginfo_brief(st, si);
2249 
2250   if (si && (si->si_signo == SIGBUS || si->si_signo == SIGSEGV) &&
2251       UseSharedSpaces) {
2252     FileMapInfo* mapinfo = FileMapInfo::current_info();
2253     if (mapinfo->is_in_shared_space(si->si_addr)) {
2254       st->print("\n\nError accessing class data sharing archive."   \
2255                 " Mapped file inaccessible during execution, "      \
2256                 " possible disk/network problem.");
2257     }
2258   }

2259   st->cr();
2260 }
2261 
2262 
2263 static void print_signal_handler(outputStream* st, int sig,
2264                                  char* buf, size_t buflen);
2265 
2266 void os::print_signal_handlers(outputStream* st, char* buf, size_t buflen) {
2267   st->print_cr("Signal Handlers:");
2268   print_signal_handler(st, SIGSEGV, buf, buflen);
2269   print_signal_handler(st, SIGBUS , buf, buflen);
2270   print_signal_handler(st, SIGFPE , buf, buflen);
2271   print_signal_handler(st, SIGPIPE, buf, buflen);
2272   print_signal_handler(st, SIGXFSZ, buf, buflen);
2273   print_signal_handler(st, SIGILL , buf, buflen);
2274   print_signal_handler(st, INTERRUPT_SIGNAL, buf, buflen);
2275   print_signal_handler(st, SR_signum, buf, buflen);
2276   print_signal_handler(st, SHUTDOWN1_SIGNAL, buf, buflen);
2277   print_signal_handler(st, SHUTDOWN2_SIGNAL , buf, buflen);
2278   print_signal_handler(st, SHUTDOWN3_SIGNAL , buf, buflen);




2229             os::available_memory() >> 10);
2230   st->print(", swap " UINT64_FORMAT "k",
2231             ((jlong)si.totalswap * si.mem_unit) >> 10);
2232   st->print("(" UINT64_FORMAT "k free)",
2233             ((jlong)si.freeswap * si.mem_unit) >> 10);
2234   st->cr();
2235 }
2236 
2237 void os::pd_print_cpu_info(outputStream* st) {
2238   st->print("\n/proc/cpuinfo:\n");
2239   if (!_print_ascii_file("/proc/cpuinfo", st)) {
2240     st->print("  <Not Available>");
2241   }
2242   st->cr();
2243 }
2244 
2245 void os::print_siginfo(outputStream* st, void* siginfo) {
2246   const siginfo_t* si = (const siginfo_t*)siginfo;
2247 
2248   os::Posix::print_siginfo_brief(st, si);
2249 #if INCLUDE_CDS
2250   if (si && (si->si_signo == SIGBUS || si->si_signo == SIGSEGV) &&
2251       UseSharedSpaces) {
2252     FileMapInfo* mapinfo = FileMapInfo::current_info();
2253     if (mapinfo->is_in_shared_space(si->si_addr)) {
2254       st->print("\n\nError accessing class data sharing archive."   \
2255                 " Mapped file inaccessible during execution, "      \
2256                 " possible disk/network problem.");
2257     }
2258   }
2259 #endif
2260   st->cr();
2261 }
2262 
2263 
2264 static void print_signal_handler(outputStream* st, int sig,
2265                                  char* buf, size_t buflen);
2266 
2267 void os::print_signal_handlers(outputStream* st, char* buf, size_t buflen) {
2268   st->print_cr("Signal Handlers:");
2269   print_signal_handler(st, SIGSEGV, buf, buflen);
2270   print_signal_handler(st, SIGBUS , buf, buflen);
2271   print_signal_handler(st, SIGFPE , buf, buflen);
2272   print_signal_handler(st, SIGPIPE, buf, buflen);
2273   print_signal_handler(st, SIGXFSZ, buf, buflen);
2274   print_signal_handler(st, SIGILL , buf, buflen);
2275   print_signal_handler(st, INTERRUPT_SIGNAL, buf, buflen);
2276   print_signal_handler(st, SR_signum, buf, buflen);
2277   print_signal_handler(st, SHUTDOWN1_SIGNAL, buf, buflen);
2278   print_signal_handler(st, SHUTDOWN2_SIGNAL , buf, buflen);
2279   print_signal_handler(st, SHUTDOWN3_SIGNAL , buf, buflen);