2600 assert((intptr_t)(addr + bytes) % alignment_hint == 0, "End should be aligned."); |
2600 assert((intptr_t)(addr + bytes) % alignment_hint == 0, "End should be aligned."); |
2601 Solaris::set_mpss_range(addr, bytes, alignment_hint); |
2601 Solaris::set_mpss_range(addr, bytes, alignment_hint); |
2602 } |
2602 } |
2603 |
2603 |
2604 // Tell the OS to make the range local to the first-touching LWP |
2604 // Tell the OS to make the range local to the first-touching LWP |
2605 void os::numa_make_local(char *addr, size_t bytes) { |
2605 void os::numa_make_local(char *addr, size_t bytes, int lgrp_hint) { |
2606 assert((intptr_t)addr % os::vm_page_size() == 0, "Address should be page-aligned."); |
2606 assert((intptr_t)addr % os::vm_page_size() == 0, "Address should be page-aligned."); |
2607 if (madvise(addr, bytes, MADV_ACCESS_LWP) < 0) { |
2607 if (madvise(addr, bytes, MADV_ACCESS_LWP) < 0) { |
2608 debug_only(warning("MADV_ACCESS_LWP failed.")); |
2608 debug_only(warning("MADV_ACCESS_LWP failed.")); |
2609 } |
2609 } |
2610 } |
2610 } |