1638 if (os::Aix::on_aix()) {
1639 jio_snprintf(buffer, sizeof(buffer),
1640 " physical total : %llu\n"
1641 " physical free : %llu\n"
1642 " swap total : %llu\n"
1643 " swap free : %llu\n",
1644 mi.real_total,
1645 mi.real_free,
1646 mi.pgsp_total,
1647 mi.pgsp_free);
1648 } else {
1649 Unimplemented();
1650 }
1651 st->print_raw(buffer);
1652 } else {
1653 st->print_cr(" (no more information available)");
1654 }
1655 }
1656
1657 void os::pd_print_cpu_info(outputStream* st, char* buf, size_t buflen) {
1658 // cpu
1659 st->print("CPU:");
1660 st->print("total %d", os::processor_count());
1661 // It's not safe to query number of active processors after crash
1662 // st->print("(active %d)", os::active_processor_count());
1663 st->print(" %s", VM_Version::cpu_features());
1664 st->cr();
1665 }
1666
1667 void os::print_siginfo(outputStream* st, void* siginfo) {
1668 // Use common posix version.
1669 os::Posix::print_siginfo_brief(st, (const siginfo_t*) siginfo);
1670 st->cr();
1671 }
1672
1673 static void print_signal_handler(outputStream* st, int sig,
1674 char* buf, size_t buflen);
1675
1676 void os::print_signal_handlers(outputStream* st, char* buf, size_t buflen) {
1677 st->print_cr("Signal Handlers:");
1678 print_signal_handler(st, SIGSEGV, buf, buflen);
1679 print_signal_handler(st, SIGBUS , buf, buflen);
1680 print_signal_handler(st, SIGFPE , buf, buflen);
1681 print_signal_handler(st, SIGPIPE, buf, buflen);
1682 print_signal_handler(st, SIGXFSZ, buf, buflen);
1683 print_signal_handler(st, SIGILL , buf, buflen);
1684 print_signal_handler(st, INTERRUPT_SIGNAL, buf, buflen);
3466 FLAG_SET_ERGO(bool, Use64KPages, false);
3467 }
3468 } else {
3469 // datapsize = 64k. Data segment, thread stacks are 64k paged.
3470 // This normally means that we can allocate 64k pages dynamically.
3471 // (There is one special case where this may be false: EXTSHM=on.
3472 // but we decided to not support that mode).
3473 assert0(g_multipage_support.can_use_64K_pages);
3474 Aix::_page_size = SIZE_64K;
3475 trcVerbose("64K page mode");
3476 FLAG_SET_ERGO(bool, Use64KPages, true);
3477 }
3478
3479 // Short-wire stack page size to base page size; if that works, we just remove
3480 // that stack page size altogether.
3481 Aix::_stack_page_size = Aix::_page_size;
3482
3483 // For now UseLargePages is just ignored.
3484 FLAG_SET_ERGO(bool, UseLargePages, false);
3485 _page_sizes[0] = 0;
3486 _large_page_size = -1;
3487
3488 // debug trace
3489 trcVerbose("os::vm_page_size %s\n", describe_pagesize(os::vm_page_size()));
3490
3491 // Next, we need to initialize libo4 and libperfstat libraries.
3492 if (os::Aix::on_pase()) {
3493 os::Aix::initialize_libo4();
3494 } else {
3495 os::Aix::initialize_libperfstat();
3496 }
3497
3498 // Reset the perfstat information provided by ODM.
3499 if (os::Aix::on_aix()) {
3500 libperfstat::perfstat_reset();
3501 }
3502
3503 // Now initialze basic system properties. Note that for some of the values we
3504 // need libperfstat etc.
3505 os::Aix::initialize_system_info();
3506
|
1638 if (os::Aix::on_aix()) {
1639 jio_snprintf(buffer, sizeof(buffer),
1640 " physical total : %llu\n"
1641 " physical free : %llu\n"
1642 " swap total : %llu\n"
1643 " swap free : %llu\n",
1644 mi.real_total,
1645 mi.real_free,
1646 mi.pgsp_total,
1647 mi.pgsp_free);
1648 } else {
1649 Unimplemented();
1650 }
1651 st->print_raw(buffer);
1652 } else {
1653 st->print_cr(" (no more information available)");
1654 }
1655 }
1656
1657 void os::pd_print_cpu_info(outputStream* st, char* buf, size_t buflen) {
1658 }
1659
1660 void os::print_siginfo(outputStream* st, void* siginfo) {
1661 // Use common posix version.
1662 os::Posix::print_siginfo_brief(st, (const siginfo_t*) siginfo);
1663 st->cr();
1664 }
1665
1666 static void print_signal_handler(outputStream* st, int sig,
1667 char* buf, size_t buflen);
1668
1669 void os::print_signal_handlers(outputStream* st, char* buf, size_t buflen) {
1670 st->print_cr("Signal Handlers:");
1671 print_signal_handler(st, SIGSEGV, buf, buflen);
1672 print_signal_handler(st, SIGBUS , buf, buflen);
1673 print_signal_handler(st, SIGFPE , buf, buflen);
1674 print_signal_handler(st, SIGPIPE, buf, buflen);
1675 print_signal_handler(st, SIGXFSZ, buf, buflen);
1676 print_signal_handler(st, SIGILL , buf, buflen);
1677 print_signal_handler(st, INTERRUPT_SIGNAL, buf, buflen);
3459 FLAG_SET_ERGO(bool, Use64KPages, false);
3460 }
3461 } else {
3462 // datapsize = 64k. Data segment, thread stacks are 64k paged.
3463 // This normally means that we can allocate 64k pages dynamically.
3464 // (There is one special case where this may be false: EXTSHM=on.
3465 // but we decided to not support that mode).
3466 assert0(g_multipage_support.can_use_64K_pages);
3467 Aix::_page_size = SIZE_64K;
3468 trcVerbose("64K page mode");
3469 FLAG_SET_ERGO(bool, Use64KPages, true);
3470 }
3471
3472 // Short-wire stack page size to base page size; if that works, we just remove
3473 // that stack page size altogether.
3474 Aix::_stack_page_size = Aix::_page_size;
3475
3476 // For now UseLargePages is just ignored.
3477 FLAG_SET_ERGO(bool, UseLargePages, false);
3478 _page_sizes[0] = 0;
3479
3480 // debug trace
3481 trcVerbose("os::vm_page_size %s\n", describe_pagesize(os::vm_page_size()));
3482
3483 // Next, we need to initialize libo4 and libperfstat libraries.
3484 if (os::Aix::on_pase()) {
3485 os::Aix::initialize_libo4();
3486 } else {
3487 os::Aix::initialize_libperfstat();
3488 }
3489
3490 // Reset the perfstat information provided by ODM.
3491 if (os::Aix::on_aix()) {
3492 libperfstat::perfstat_reset();
3493 }
3494
3495 // Now initialze basic system properties. Note that for some of the values we
3496 // need libperfstat etc.
3497 os::Aix::initialize_system_info();
3498
|