RFR: 8245203/8245204/8245208: ZGC: Don't hold the ZPageAllocator lock while committing/uncommitting memory

Per Liden per.liden at oracle.com
Mon Jun 1 20:08:47 UTC 2020


On 6/1/20 7:06 PM, Per Liden wrote:
> 
> On 6/1/20 7:32 AM, Per Liden wrote:
>> On 5/18/20 11:23 PM, Per Liden wrote:
>> [...]
>>> 3) 8245208: ZGC: Don't hold the ZPageAllocator lock while 
>>> committing/uncommitting memory
>>>
>>> We're currently holding the ZPageAllocator lock while performing a 
>>> number of expensive operations, such as committing and uncommitting 
>>> memory. This can have a very negative impact on latency, for example, 
>>> when a Java thread is trying to allocate a page from the page cache 
>>> while the ZUncommitter thread is uncommitting a portion of the heap.
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8245208
>>> Webrev: http://cr.openjdk.java.net/~pliden/8245208/webrev.0
>>
> 
> Another update, after receiving some more comments from Stefan and Erik:
> 
> * 8245208: ZGC: Don't hold the ZPageAllocator lock while 
> committing/uncommitting memory
> Full: http://cr.openjdk.java.net/~pliden/8245208/webrev.2/
> Diff: http://cr.openjdk.java.net/~pliden/8245208/webrev.2-diff/

Just a heads up. I found a nicer way to structure the uncommit_run() 
function and updated the webrev in-place.

cheers,
Per

> 
> * 8246220: ZGC: Introduce ZUnmapper to asynchronous unmap pages
> Full: http://cr.openjdk.java.net/~pliden/8246220/webrev.1/
> Diff: http://cr.openjdk.java.net/~pliden/8246220/webrev.1-diff/
> 
> 
> ... and the above patches sits on top of these, which have not been 
> modified in this round:
> 
> * 8246265: ZGC: Introduce ZConditionLock
> http://cr.openjdk.java.net/~pliden/8246265/webrev.0/
> 
> * 8245204: ZGC: Introduce ZListRemoveIterator
> http://cr.openjdk.java.net/~pliden/8245204/webrev.0/
> 
> * 8245203: ZGC: Don't track size in ZPhysicalMemoryBacking
> http://cr.openjdk.java.net/~pliden/8245203/webrev.0/
> 
> cheers,
> Per


More information about the hotspot-gc-dev mailing list