Request for reviews (S): 6826736: CMS: core dump with -XX:+UseCompressedOops

John Coomes John.Coomes at sun.com
Wed Jul 22 13:44:50 PDT 2009


Vladimir Kozlov (Vladimir.Kozlov at Sun.COM) wrote:
> 
> http://cr.openjdk.java.net/~kvn/6826736/webrev.01
> 
> Fixed 6826736: CMS: core dump with -XX:+UseCompressedOops
> 
> Problem:
> Compiled code may produce decoded oop = narrow_oop_base
> when a narrow oop implicit null check is used.
> ...
> Solution:
> Fix deoptimization code and GC to check for such oops values.
> During deoptimization convert them to NULL.
> And ignore them for GC (like NULL values are ignored).

Looks reasonable to me, but I don't know this code.  Spotted a couple
of typos:

412              // is interesting in NULL.

Change to interesting to interested.



432           assert((*loc) == (oop)NULL || Universe::narrow_oop_base() != (address)(void*)(*loc),
433                  "found non valid value pointer");

Change "non valid" to invalid.

FWIW, I also like Paul's suggestion of is_narrow_oop_base(void*).

-John




More information about the hotspot-compiler-dev mailing list