Hi Peter,

> On Apr 5, 2016, at 7:41 AM, Peter Levart <peter.lev...@gmail.com> wrote:
> 
> The bottom line is that we need a mechanism that:
> 
> - triggers reference discovery when native memory limit is approached or 
> reached
> - retires native memory reservation at appropriate time slots until 
> succeeding or until all pending references have been processed and Cleanables 
> executed at which time native memory reservation can fail with OOME.
> - if possible, doesn't execute cleanup functions by the allocating thread but 
> just waits for system threads to do the job.
> - when triggered, does not make native memory allocation a bottleneck.
> 
> I think that what I did in my latest webrevs with ReferenceHandler thread is 
> an improvement in minimizing contended synchronization and interference of 
> allocating thread(s) with Reference enqueue-ing. But interaction of 
> allocating thread(s) with Cleaner background thread could be improved and I 
> have a couple of ideas to explore.

This is about timely native memory deallocation.  Since direct byte buffer is 
the only one using jdk.internal.ref.Cleaner, I am inclined to suggest keep 
jdk.internal.ref.Cleaner as is and replaced it with a better mechanism when 
it’s available, either panama or better pending reference enqueuing that you 
and Per discussed.   Given the time we have, I think it’s likely post JDK 9 
timeframe.

Minimizing contention and interference of allocating threads and 
ReferenceHandler may worth exploring.
 
Mandy

Reply via email to