RFR: 8166607: G1 needs klass_or_null_acquire

Kim Barrett kim.barrett at oracle.com
Wed Nov 16 17:28:09 UTC 2016


> On Nov 16, 2016, at 4:21 AM, Thomas Schatzl <thomas.schatzl at oracle.com> wrote:
> 
> Hi Kim,
> 
> On Tue, 2016-11-15 at 18:58 -0500, Kim Barrett wrote:
>>> 
>>> On Nov 15, 2016, at 5:21 AM, Thomas Schatzl <thomas.schatzl at oracle.
>>> com> wrote:
>>> 
>>> Hi Kim,
>>> 
>>> On Mon, 2016-11-07 at 14:38 -0500, Kim Barrett wrote:
>>>> 
>>>>> 
>>>>> 
>>>>> On Nov 7, 2016, at 5:53 AM, Thomas Schatzl <thomas.schatzl at orac
>>>>> le.c
>>>>> om> wrote:
>>>>> Maybe it would be cleaner to call a method in the barrier set
>>>>> instead of inlining the dirtying + enqueuing in lines 685 to
>>>>> 691?
>>>>> Maybe as an additional RFE.
>>>> We could use _ct_bs->invalidate(dirtyRegion).  That's rather
>>>> overgeneralized and inefficient for this situation, but this
>>>> situation should occur *very* rarely; it requires a stale card
>>>> get
>>>> processed just as a humongous object is in the midst of being
>>>> allocated in the same region.
>>> I kind of think for these reasons we should use _ct_bs-
>>>> invalidate() as
>>> it seems clearer to me. There is the mentioned drawback of having
>>> no
>>> other more efficient way, so I will let you decide about this.
>> I've made the change to call invalidate, and also updated some
>> comments.
>> 
>> CR:
>> https://bugs.openjdk.java.net/browse/JDK-8166607
>> 
>> Webrevs:
>> full: http://cr.openjdk.java.net/~kbarrett/8166607/webrev.03/
>> incr: http://cr.openjdk.java.net/~kbarrett/8166607/webrev.03.inc/
>> 
> 
>   thanks, looks good.
> 
> Thomas

Thanks.



More information about the hotspot-dev mailing list