Prepared by: | never on Thu Mar 31 10:59:18 PDT 2011 |
---|---|
Workspace: | /net/smite.us.oracle.com/export/ws/merged |
Compare against: | ssh://hg.openjdk.java.net/jdk7/hotspot-comp-gate/hotspot |
Summary of changes: | 81 lines changed: 33 ins; 41 del; 7 mod; 6989 unchg |
Patch of changes: | 7032129.patch |
Author comments: |
7032129: Native memory usage grow unexpectedly for vm/oom/*InternedString tests Reviewed-by: StringTable::verify uses as_unicode_string to verify the hash code we keep in the table but the only resource mark is outside the loop. This means that verification makes a copy of the entire StringTable in a resource area. Now that interned strings aren't in perm the StringTable can become as large as the Java heap which means verification can overflow the address space. The fix is to compute the hash directly from the char[] instead of making a copy. I moved the hash_string logic into java_lang_String and updated the users appropriately. Tested with test case that allocates interned strings until we run out of heap. |
Bug id: | Bug Database |
Legend: |
Modified file Deleted file New file |
Cdiffs
Udiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/classfile/symbolTable.hpp
3 lines changed: 0 ins; 2 del; 1 mod; 274 unchg
Cdiffs
Udiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/classfile/symbolTable.cpp
34 lines changed: 0 ins; 30 del; 4 mod; 641 unchg
Cdiffs
Udiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/classfile/javaClasses.hpp
24 lines changed: 24 ins; 0 del; 0 mod; 1290 unchg
Cdiffs
Udiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/classfile/javaClasses.cpp
9 lines changed: 9 ins; 0 del; 0 mod; 3212 unchg
Cdiffs
Udiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/memory/dump.cpp
11 lines changed: 0 ins; 9 del; 2 mod; 1572 unchg
This code review page was prepared using /never/bin/webrev (vers 23.18-hg-never).