Code Review for 7028374

Prepared by:never on Thu Mar 17 20:40:02 PDT 2011
Workspace:/net/smite.us.oracle.com/export/ws/scav
Compare against: /net/smite.us.oracle.com/export/ws/statics
Summary of changes: 116 lines changed: 103 ins; 1 del; 12 mod; 11180 unchg
Patch of changes: 7028374.patch
Author comments:
7028374: race in fix_oop_relocations for scavengeable nmethods
Reviewed-by: kvn

In ScavengeRootsInCode mode oops could sometimes be udpated after
their relocations had been updated, resulting in stale oops in
generated code. The fix is to move the rewriting of the relocations
to the epilogue part of the scavenge nmethods logic. I also added
verification of the CodeCache which would have detected this problem
immediately. The statics in Class changes will be laid on top of
these changes. Tested with statics changes with jbb.

Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/code/codeCache.hpp

1 line changed: 1 ins; 0 del; 0 mod; 187 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/code/codeCache.cpp

14 lines changed: 13 ins; 1 del; 0 mod; 946 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/code/nmethod.hpp

1 line changed: 1 ins; 0 del; 0 mod; 714 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/code/nmethod.cpp

15 lines changed: 15 ins; 0 del; 0 mod; 2818 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/memory/universe.cpp

2 lines changed: 2 ins; 0 del; 0 mod; 1595 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/code/relocInfo.hpp

10 lines changed: 9 ins; 0 del; 1 mod; 1349 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/code/relocInfo.cpp

8 lines changed: 8 ins; 0 del; 0 mod; 1212 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/nativeInst_sparc.hpp

1 line changed: 1 ins; 0 del; 0 mod; 926 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/nativeInst_sparc.cpp

16 lines changed: 16 ins; 0 del; 0 mod; 1012 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/relocInfo_sparc.cpp

27 lines changed: 21 ins; 0 del; 6 mod; 204 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/relocInfo_x86.cpp

21 lines changed: 16 ins; 0 del; 5 mod; 217 unchg

This code review page was prepared using /never/bin/webrev (vers 23.18-hg-never).