< prev index next >

src/hotspot/os/linux/os_linux.cpp

Print this page
rev 56821 : imported patch 8220310.mut.0
rev 56822 : imported patch 8220310.mut.1
rev 56824 : imported patch 8220310.mut.3
rev 56825 : imported patch 8220310.mut.4
rev 56826 : imported patch 8220310.mut.5
rev 56827 : imported patch 8220310.mut.6
rev 56828 : imported patch 8220310.mut.7
rev 56837 : imported patch 8220312.stat.4-move_pages

*** 3006,3026 **** } return 0; } int os::numa_get_group_id_for_address(const void* address) { ! #ifndef MPOL_F_NODE ! #define MPOL_F_NODE (1<<0) // Return next IL mode instead of node mask ! #endif ! ! #ifndef MPOL_F_ADDR ! #define MPOL_F_ADDR (1<<1) // Look up VMA using address ! #endif ! int id = 0; ! ! if (syscall(SYS_get_mempolicy, &id, NULL, 0, const_cast<void*>(address), MPOL_F_NODE | MPOL_F_ADDR) == -1) { return -1; } return id; } --- 3006,3022 ---- } return 0; } int os::numa_get_group_id_for_address(const void* address) { ! void** pages = const_cast<void**>(&address); ! int id = -1; ! if (os::Linux::numa_move_pages(0, 1, pages, NULL, &id, 0) == -1) { ! return -1; ! } ! if (id < 0) { return -1; } return id; }
*** 3150,3159 **** --- 3146,3157 ---- libnuma_dlsym(handle, "numa_distance"))); set_numa_get_membind(CAST_TO_FN_PTR(numa_get_membind_func_t, libnuma_v2_dlsym(handle, "numa_get_membind"))); set_numa_get_interleave_mask(CAST_TO_FN_PTR(numa_get_interleave_mask_func_t, libnuma_v2_dlsym(handle, "numa_get_interleave_mask"))); + set_numa_move_pages(CAST_TO_FN_PTR(numa_move_pages_func_t, + libnuma_dlsym(handle, "numa_move_pages"))); if (numa_available() != -1) { set_numa_all_nodes((unsigned long*)libnuma_dlsym(handle, "numa_all_nodes")); set_numa_all_nodes_ptr((struct bitmask **)libnuma_dlsym(handle, "numa_all_nodes_ptr")); set_numa_nodes_ptr((struct bitmask **)libnuma_dlsym(handle, "numa_nodes_ptr"));
*** 3284,3293 **** --- 3282,3292 ---- os::Linux::numa_set_bind_policy_func_t os::Linux::_numa_set_bind_policy; os::Linux::numa_bitmask_isbitset_func_t os::Linux::_numa_bitmask_isbitset; os::Linux::numa_distance_func_t os::Linux::_numa_distance; os::Linux::numa_get_membind_func_t os::Linux::_numa_get_membind; os::Linux::numa_get_interleave_mask_func_t os::Linux::_numa_get_interleave_mask; + os::Linux::numa_move_pages_func_t os::Linux::_numa_move_pages; os::Linux::NumaAllocationPolicy os::Linux::_current_numa_policy; unsigned long* os::Linux::_numa_all_nodes; struct bitmask* os::Linux::_numa_all_nodes_ptr; struct bitmask* os::Linux::_numa_nodes_ptr; struct bitmask* os::Linux::_numa_interleave_bitmask;
< prev index next >