Please review 7178670: runtime/7158800/BadUtf8.java fails in SymbolTable::rehash_table
coleen.phillimore at oracle.com
Fri Jun 22 19:17:43 PDT 2012
Thanks for the additional review.
On 6/22/2012 1:01 AM, Karen Kinnear wrote:
> Good catch - I am glad you caught that in the unlink assumptions.
> Both sets of changes look good - just a minor question.
> So - why is line 723 in symbolTable.cpp able to reference the_table()->bucket(i) for StringTable and
> lines 99-100 needs to do the make_ptr stuff?
I should have had that code instead. It's only when p comes from _next
that make_ptr() is needed.
> On Jun 21, 2012, at 11:40 PM, Coleen Phillimore wrote:
>> After some discussions about the preserving shared state in move_to, it occurred to me that after rehashing, the shared entries were no longer last in the buckets. The walking in StringTable and SymbolTable assumed this. I also added more of a comment about preserving the state. It could be nicer code and safer but it would also introduce some risk or possible performance impact. These are the latest webrevs which I've tested with rehash_count=2 and rehash_multipier=1 to make it rehash a lot.
>> open webrev at http://cr.openjdk.java.net/~coleenp/hashmap_cds2
>> open webrev at http://cr.openjdk.java.net/~coleenp/hashmap_7u6_cds2/
>> On 6/21/2012 3:25 PM, Coleen Phillimore wrote:
>>> Summary: Cannot delete _buckets and HashtableEntries in shared space (CDS)
>>> Tested with the tests that I added using Class Data Sharing (on and off). This is both a patch for 7u6 and main.
>>> open webrev at http://cr.openjdk.java.net/~coleenp/hashmap_cds/
>>> open webrev at http://cr.openjdk.java.net/~coleenp/hashmap_7u6_cds/
More information about the hotspot-runtime-dev