RFR (S) 8140685: Fix backtrace building to not rely on constant pool merging

David Holmes david.holmes at oracle.com
Tue Jan 24 00:11:22 UTC 2017


Hi Coleen,

On 24/01/2017 9:00 AM, Coleen Phillimore wrote:
> Summary: Store Symbol* for the name in the backtrace
>
> There was some thought that storing a u2 for cpref would be more memory
> efficient than storing Symbol* in the backtraces, but recent runs of
> Jetty show that this doesn't cause footprint increases or performance
> decreases.   Storing the Symbol* for the method name guarantees it is
> there when creating the StackTraceElement, whereas cpref relies on
> constant pool merging for redefinition and is dependent on being an
> index in the right constant pool, which has been a source of bugs in the
> past.

This all sounds reasonable. But I'm not very clear on the Symbol 
ref-counting protocol, so can't really say if this may leak them or not.

> dev-submit performance testing was run with no regressions.  Also, all
> hotspot jtreg tests were run.
>
> This is a change for JDK10 whenever that opens.
>
> open webrev at http://cr.openjdk.java.net/~coleenp/8140685.01/webrev
> bug link https://bugs.openjdk.java.net/browse/JDK-8140685

The bug refers to a method-id to Method* change, nothing about cpref to 
Symbol*. Can you update the bug so that it reflects the actual change 
please.

Thanks,
David

> Thanks,
> Coleen


More information about the hotspot-runtime-dev mailing list