RFR (L) 8171392 Move Klass pointers outside of ConstantPool entries so ConstantPool can be read-only

Volker Simonis volker.simonis at gmail.com
Wed Apr 12 09:19:58 UTC 2017


Hi Ioi,

thanks for considering our ports. At least ppc64 and s390 require some
additions tough :)
I'm currently working on them and will provide the full ppc64/s390 versions
shortly.

Regards,
Volker


On Tue, Apr 11, 2017 at 8:26 AM, Ioi Lam <ioi.lam at oracle.com> wrote:

> Hi,please review the following change
>
> https://bugs.openjdk.java.net/browse/JDK-8171392
> http://cr.openjdk.java.net/~iklam/jdk10/8171392_make_constan
> tpool_read_only.v01/
>
> *Summary:**
> *
>   Before:
>   + ConstantPool::klass_at(i) finds the Klass from the i-th slot of
> ConstantPool.
>   + When a klass is resolved, the ConstantPool is modified to store the
> Klass pointer.
>
>   After:
>   + ConstantPool::klass_at(i) finds the at this->_resolved_klasses->at(i)
>   + When a klass is resolved, _resolved_klasses->at(i) is modified.
>
>
>   In addition:
>     + I moved _resolved_references and _reference_map from ConstantPool
>       to ConstantPoolCache.
>     + Now _flags is no longer modified for shared ConstantPools.
>
>   As a result, none of the fields in shared ConstantPools are modified at
> run time,
>   so we can move them into the RO region in the CDS archive.
>
> *Testing:**
> *
>   - Benchmark results show no performance regression, despite the extra
> level of
>     indirection, which has a negligible overhead for the interpreter.
>   - RBT testing for tier2 and tier3.
>
> *Ports:**
> *
>   - I have tested only the Oracle-support ports. For the aarch64, ppc and
> s390 ports,
>     I have added some code without testing (it's probably incomplete)
>
>   - Port owners, please check if my patch work for you, and I can
> incorporate your
>     changes in my push. Alternatively, you can wait for my push and
> provide fixes
>     (if necessary) in a new changeset, and I will be happy to sponsor it.
>
> Thanks
> - Ioi
>
>


More information about the hotspot-dev mailing list