RFR (M) 8207359: Make SymbolTable increment_refcount disallow zero

Kim Barrett kim.barrett at oracle.com
Thu Jul 19 16:47:59 UTC 2018


> On Jul 19, 2018, at 8:34 AM, coleen.phillimore at oracle.com wrote:
> 
> Please review the revision to this change.   Summary:
> 
> * made decrement_refcount() use CAS loop.
> * fixed duplicated logic in try_increment_refcount() thanks to Kim
> * added gtest case for decrement_refcount.
> * fixed SA code.
> * added a bunch of comments
> 
> open webrev at http://cr.openjdk.java.net/~coleenp/8207359.02/webrev
> 
> Retested with hs-tier1-3.
> Thanks,
> Coleen

Looks good.

A few minor nits for which I don't need another webrev.

------------------------------------------------------------------------------
test/hotspot/gtest/classfile/test_symbolTable.cpp
  87   for (int i = 0; i < PERM_REFCOUNT + 100; i++) {
  88     bigsym->decrement_refcount();
  89   }
  90   ASSERT_EQ(bigsym->refcount(), PERM_REFCOUNT) << "should be sticky";

I think one decrement is enough; no need for the loop.

------------------------------------------------------------------------------
src/hotspot/os/solaris/dtrace/jhelper.d

The comment added for nameSymbolLength also applies to the other
symbol lengths.

------------------------------------------------------------------------------ 
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/Symbol.java
  78   public long getLength() {
  79     long i = length.getValue(this.addr);
  80     return (i >> 16) & 0xffff;

I forgot to mention this before, but I think the length field should
be renamed to lengthAndRefcount.

------------------------------------------------------------------------------



More information about the hotspot-runtime-dev mailing list