Mercurial > hg > graal-compiler
comparison src/os/windows/vm/os_windows.cpp @ 3928:0a63380c8ac8
7090069: Java launcher hangs in infinite loop on windows when UseNUMA[Interleaving] is specified
Summary: Fix _numa_used_node_list array size specification
Reviewed-by: kvn, johnc, jmasa, ysr
author | iveresov |
---|---|
date | Tue, 13 Sep 2011 16:58:35 -0700 |
parents | a6128a8ed624 |
children | 436b4a3231bf |
comparison
equal
deleted
inserted
replaced
3927:f1b4e0e0bdad | 3928:0a63380c8ac8 |
---|---|
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; |