10 RFR: 8175221: Cleanup DirtyCardQueueSet::concatenate_log
Kim Barrett
kim.barrett at oracle.com
Tue Feb 21 15:35:17 UTC 2017
> On Feb 21, 2017, at 7:01 AM, Thomas Schatzl <thomas.schatzl at oracle.com> wrote:
>
> Hi Kim,
>
> On Sun, 2017-02-19 at 16:38 -0500, Kim Barrett wrote:
>> Please review this simplification of concatenate_log and removal of
>> some thereby unused public functions from DirtyCardQueue.
>>
>> We change concatenate_log to call flush, rather than inlining more or
>> less equivalent code. The flush is conditional on the queue
>> containing any data, as we prefer to leave an empty buffer in place
>> in the queue when concatenating.
>>
>> We also changed flush to support this; flush was a nop when the queue
>> is "permanent", which is not what we want for concatenate_log. This
>> behavior was because flush was called by the queue destructor, and
>> performing a flush when destroying the shared queue for a set was
>> problematic. However, JDK-8048949 changed things so that only the
>> DirtyCardQueue destructor called flush, and only if the queue is
>> non-permanent. So the permanent check in flush is no longer needed,
>> and removing it makes it suitable for use by concatenate_log.
>>
>> CR:
>> https://bugs.openjdk.java.net/browse/JDK-8175221
>>
>> Webrev:
>> http://cr.openjdk.java.net/~kbarrett/8175221/hotspot.00/
>>
>
> looks good to me.
Thanks.
> Given your description, and some short look through
> the callers of the code, is it useful to assert that flush is not
> called on permanent ptrqueues?
No. The new concatenate_log use of flush violates that.
More information about the hotspot-gc-dev
mailing list