RFR: 8079315: UseCondCardMark broken in conjunction with CMS precleaning

Andrew Haley aph at redhat.com
Tue May 5 19:34:23 UTC 2015

On 05/05/2015 05:53 PM, Aleksey Shipilev wrote:
> But I am suspicious about the whole interaction between mutator and collector. Cautiously speaking, every time I see a conditional update in a concurrent code, I expect some form of atomic CAS that provides a global order w.r.t. the particular memory location.
> What exactly happens when collector transits card to "clean"? How does the mutator sees the proper "clean" value for the card mark? Can it miss the card mark update with UseCondCardMark because it saw the "outdated" card mark value?

That's what worries me too.  But my attitude is coloured by some of
the hardware I've been using recently, where some stale values in
cache I've seen can only be explained by missing updates that happened
not microseconds nor even milliseconds, but actual seconds ago.  And
so I know this: whatever is not forbidden will happen, and more often
than I expect!


More information about the hotspot-dev mailing list