RFR: 8151436: Leaner ArrayAllocator and BitMaps

Thomas Schatzl thomas.schatzl at oracle.com
Wed Mar 9 15:56:39 UTC 2016


Hi,

On Wed, 2016-03-09 at 15:28 +0100, Stefan Karlsson wrote:
> Hi all,
> 
> I found a bug in the ArrayAllocator code. ArrayAllocator::free 
> incorrectly calls should_use_malloc(size_for_malloc(length)) when the
> call should be should_use_malloc(length).
> 
> There is an -XX:+ExecuteInternalVMTests that exercises this code
> path, 
> and try to find these kinds of bugs. The test actually manages to
> call 
> allocate_malloc and then tries to free the memory with free_mmap, but
> the JVM doesn't crash. One reason why it doesn't crash is that 
> os::release_memory, which is used by free_mmap, fails to unmap the 
> malloced memory and we silently ignores that.
> 
> This patch:
> 1) Adds an assert to ensure that the os::release_memory call
> succeeds. 
> This immediately shows the problem when we execute our internal vm
> tests.
> 2) Moves the implementation of should_use_malloc to the inline file,
> so 
> that it can reuse size_for_malloc.
> 3) Fix the bug.
> 
> http://cr.openjdk.java.net/~stefank/8151436/webrev.01.delta/
> http://cr.openjdk.java.net/~stefank/8151436/webrev.01/

  looks good.

Thomas



More information about the hotspot-dev mailing list