RFR: 8232651: Add implementation of os::processor_id() for Windows

Stefan Karlsson stefan.karlsson at oracle.com
Mon Oct 21 20:14:13 UTC 2019


Hi Bob,

On 2019-10-21 16:41, Bob Vandette wrote:
> Have you considered using GetCurrentProcessorNumberEx so you can handle a system with more than 64 CPUs?

If I understand the Windows documentation I linked to below, you need to 
opt-in to multi-groups to be able to take advantage of more than 64 
logical processors. I couldn't find any code that explicitly scheduled 
threads to other groups than the one the JVM starts in. Neither 
os::processor_count() nor os::active_processor_count() includes the 
number of CPUs outside of the current group. If those observations are 
correct, I don't think it would be appropriate to use 
GetCurrentProcessorNumberEx without also updating the other Windows code.

Do you agree with this assessment?

Thanks,
StefanK

>
> Bob.
>
>
>> On Oct 21, 2019, at 10:23 AM, Stefan Karlsson <stefan.karlsson at oracle.com> wrote:
>>
>> Hi all,
>>
>> Please review this patch to add an implementation of os::processor_id() for Windows.
>>
>> https://cr.openjdk.java.net/~stefank/8232651/webrev.01/
>> https://bugs.openjdk.java.net/browse/JDK-8232651
>>
>> We need an implementation of this function on Windows, to be able to run ZGC there.
>>
>> Note that GetCurrentProcessorNumber only "returns the processor number within the processor group to which the logical processor is assigned". AFAICT, there's no support for multi-groups in HotSpot, and therefore this seems like an adequate function to use.
>>
>> See this page for more information about processor groups:
>> https://docs.microsoft.com/en-us/windows/win32/procthread/processor-groups
>>
>> Thanks,
>> StefanK



More information about the hotspot-runtime-dev mailing list