review request (S) - 8014611: reserve_and_align() assumptions

Bengt Rutisson bengt.rutisson at oracle.com
Fri May 17 07:52:37 PDT 2013


Hi John,

On 5/15/13 6:59 PM, John Coomes wrote:
> Please review this change for hs24:
>
> 	8014611: reserve_and_align() assumptions are invalid on windows
>
> 	http://cr.openjdk.java.net/~jcoomes/8014611-reserve-and-align/
>
> The webrev has more info about the problem and the fix.
>
> -John

I don't really understand how this fix helps the Windows issue. The 
problem on Windows is that if you try to release any part of a reserved 
region it will actually release the whole region instead of the part 
that you specified. Or did I miss understand the problem?

If that is the underlying issue then I would have expected this code in 
ReservedSpace::align_reserved_region():

   83   if (beg_delta != 0) {
   84     os::release_partial_region(addr, beg_delta);
   85   }
   86
   87   if (end_delta != 0) {
   88     char* release_addr = (char*) (s + beg_delta + required_size);
   89     os::release_partial_region(release_addr, end_delta);
   90   }

to be:

if (beg_delta != 0 && os::can_release_partial_region()) {
   ...
}

if (end_delta != 0 && os::can_release_partial_region()) {
   ...
}

And that os::release_partial_region() on Windows should be implemented as:

bool os::release_partial_region(char* addr, size_t bytes) {
   ShouldNotReachHere();
}

I guess I am missing something. Can you explain in more detail why your 
approach solves the Windows uncommit problem?

Thanks,
Bengt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130517/59e8006c/attachment.html 


More information about the hotspot-runtime-dev mailing list