Turn on UseNUMA by default when prudent

Jesper Wilhelmsson jesper.wilhelmsson at oracle.com
Tue May 29 19:56:35 UTC 2012

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) {

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?


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