Suggested fix for JDK-4724038 (Add unmap method to MappedByteBuffer)
Andrew Haley
aph at redhat.com
Tue Sep 8 13:10:20 UTC 2015
On 09/08/2015 12:37 PM, David M. Lloyd wrote:
> On 09/08/2015 04:30 AM, Andrew Haley wrote:
>> On 09/08/2015 09:58 AM, Paul Sandoz wrote:
>
>> However, I think that some cleverness in HotSpot could make that cost
>> go away. For example, we could associate with every
>> MappedByteBufferForwardingObject a protection page in memory. When
>> the forwarding object is unmapped that page is write-protected. Every
>> access to the mapped file is preceded by a write to the page; there
>> don't have to be any memory fence instructions. The protection page
>> would stay until the forwarding object was unmapped.
Sorry, I meant "until the forwarding object was collected".
> If you're already doing this, why not skip the level of indirection and
> mprotect the entire mapped region to PROT_NONE when the user unmaps?
Because one page has to hang around until the forwarding object is
garbage collected. The entire mapping doesn't.
Andrew.
More information about the core-libs-dev
mailing list