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;