Turn on UseNUMA by default when prudent

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue May 29 20:09:09 UTC 2012

Jesper Wilhelmsson wrote:
> Hi Eric,
> As long as this is based on actual data and not just a hunch, I 
> personally think it is a good idea. I don't know if we have any policies 
> about platform specific optimizations like this though.
> I have some comments on the code layout and there are a few typos, but I 
> guess this is still a draft so I won't pick on that right now.
> One thing I wonder though is in os_linux_x86.cpp:
> if (VM_Version::cpu_family() == 0x15 || VM_Version::cpu_family() == 0x10) {

Yes, this code should be in vm_version_x86.cpp file. I also would like to see 
this more general for all OSes.


> Is this the only way to identify the proper processor family? It doesn't 
> seem very future proof. How often would you have to change this code to 
> keep it up to date with new hardware?
> Regards,
> /Jesper
> On 2012-05-29 20:54, Eric Caspole wrote:
>> Hi Hotspot team,
>> We sometimes notice on multi-socket systems large run to run variation 
>> in some
>> benchmarks which seems to be attributed to bad/unlucky numa behavior. 
>> So we
>> would like to add simple checks to turn on +UseNUMA for AMD platforms 
>> in the
>> right situations; for example, max heap >= 4GB and we detect a 
>> multi-socket
>> system. This should be a useful out-of-box improvement for most customers
>> since UseParallelGC is the default.
>> For benchmarks with a large heap, it helps give better out-of-box 
>> performance
>> in many cases.
>> Here is my first webrev to turn on NUMA for AMD systems when it is a numa
>> system and the heap is set >= 4GB.
>> http://cr.openjdk.java.net/~ecaspole/numa_default/
>> Please let me know your thoughts on the merit of doing this and if it is
>> worthwhile what should be the structure of the change in the 
>> shared/os/cpu
>> specific code.
>> Thanks,
>> Eric

More information about the hotspot-gc-dev mailing list