RFR: 8221360: Eliminate Shared_DirtyCardQ_lock [v2]
Kim Barrett
kbarrett at openjdk.java.net
Tue Aug 24 11:37:53 UTC 2021
On Mon, 23 Aug 2021 14:02:32 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
>>> Another reason probably why these cards are put into the shared DCQS was that that card will be processed at a time when that situation can't re-occur. So this change might cause that card (buffer) to be re-enqueued and reprocessed many times while waiting for that object to get fully visible.
>>
>> Dirty card buffers are processed in fifo order, so this single-card buffer
>> starts at the end of the line. Also, we generally keep some number of cards in
>> the queue. So it's going to take some time for this card to make it through
>> all that and be reconsidered.
>
>> > Another reason probably why these cards are put into the shared DCQS was that that card will be processed at a time when that situation can't re-occur. So this change might cause that card (buffer) to be re-enqueued and reprocessed many times while waiting for that object to get fully visible.
>>
>> Dirty card buffers are processed in fifo order, so this single-card buffer
>> starts at the end of the line. Also, we generally keep some number of cards in
>> the queue. So it's going to take some time for this card to make it through
>> all that and be reconsidered.
>
> I agree that there should typically be enough delay until that buffer/card gets reprocessed.
Thanks @tschatzl and @walulyai for reviews.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5118
More information about the hotspot-dev
mailing list