2642 DWORD_PTR sys_aff_mask; |
2642 DWORD_PTR sys_aff_mask; |
2643 if (!GetProcessAffinityMask(GetCurrentProcess(), &proc_aff_mask, &sys_aff_mask)) return false; |
2643 if (!GetProcessAffinityMask(GetCurrentProcess(), &proc_aff_mask, &sys_aff_mask)) return false; |
2644 ULONG highest_node_number; |
2644 ULONG highest_node_number; |
2645 if (!os::Kernel32Dll::GetNumaHighestNodeNumber(&highest_node_number)) return false; |
2645 if (!os::Kernel32Dll::GetNumaHighestNodeNumber(&highest_node_number)) return false; |
2646 free_node_list(); |
2646 free_node_list(); |
2647 _numa_used_node_list = NEW_C_HEAP_ARRAY(int, highest_node_number); |
2647 _numa_used_node_list = NEW_C_HEAP_ARRAY(int, highest_node_number + 1); |
2648 for (unsigned int i = 0; i <= highest_node_number; i++) { |
2648 for (unsigned int i = 0; i <= highest_node_number; i++) { |
2649 ULONGLONG proc_mask_numa_node; |
2649 ULONGLONG proc_mask_numa_node; |
2650 if (!os::Kernel32Dll::GetNumaNodeProcessorMask(i, &proc_mask_numa_node)) return false; |
2650 if (!os::Kernel32Dll::GetNumaNodeProcessorMask(i, &proc_mask_numa_node)) return false; |
2651 if ((proc_aff_mask & proc_mask_numa_node)!=0) { |
2651 if ((proc_aff_mask & proc_mask_numa_node)!=0) { |
2652 _numa_used_node_list[_numa_used_node_count++] = i; |
2652 _numa_used_node_list[_numa_used_node_count++] = i; |