request for review (M), 6458402: 3 jvmti tests fail with CMS and +ExplicitGCInvokesConcurrent

Keith McGuigan keith.mcguigan at
Thu Jan 6 14:13:21 UTC 2011

On Jan 6, 2011, at 9:01 AM, Alan Bateman wrote:

> Keith McGuigan wrote:
>> :
>> I'll find and fix those comments.  Can you expand upon what you  
>> mean by "re-hash to the same slot"?  I don't understand how that  
>> would work.
> Sorry for the delay getting back to you on this. I was just  
> wondering about JvmtiTagMap::do_weak_oops and whether the  
> delayed_add list could be avoided. Maybe not and I was just  
> wondering about the cost of visiting objects that were re-hashed to  
> higher slots. I guess it's an is_alive vs. iterating over the  
> delay_add list to put the entries into the right place. The hashing  
> code would be the same.

Actually, we cannot re-visit an object that was re-hashed to a higher  
slot.   The body of one of those closures asserts out if you pass an  
oop in it's new location (I think it's expecting to see a fowarding  
pointer and doesn't see it).  This is why I added the delayed_add list  
originally.   We could flag these entries as "already-moved" or  
something like that, and reset the flag as we encounter them instead  
of passing them to the iterator.   I didn't do that at first because I  
didn't want to make the entries bigger and use more memory, but maybe  
I could do some bit tricks in the oop*.  I'd rather not have to resort  
to that unless the cost of processing the delayed list is an issue.   
It doesn't appear to be at the moment.

- Keith

More information about the hotspot-gc-dev mailing list