RFR(M) : 8064669 : compiler/whitebox/AllocationCodeBlobTest.java crashes / asserts

Igor Ignatyev igor.ignatyev at oracle.com
Fri Nov 14 15:03:38 UTC 2014

261 lines changed: 231 ins; 22 del; 8 mod;

Hi all,

Please review patch:

0. NMethodSweeper::possibly_sweep is executed outside CodeCacheSweeperThread
1. DummyBlob is initialized after the lock is released, so other threads 
are able to see uninitialized blob
2. NMethodSweeper::sweep_code_cache can pass null to process_nmethod, 
this also can lead to a crash. this situation can happen if safepoint 
happens during sweeping and after safepoint another thread iterates over 
all nmethods.

0. WB_ForceNMethodSweep use CodeCacheSweeperThread to execute possibly_sweep
1. move ctor invocation to locked section
2. handle safepoint after processing nmethod in 

3. added new test to verify that forceNMethodSweep actually work
4. AllocationCodeBlobTest is modified
  - to checks that deoptimization works fine w/ dummy blobs
  - to execute forceNMethodSweep more often to increase a chance to 
catch such kind problems

testing: jprt + compiler/whitebox tests

More information about the hotspot-compiler-dev mailing list