RFR (S) 8169867 Method::restore_unshareable_info does not invoke Method::link_method

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Nov 21 17:48:39 UTC 2016


On 11/20/16 10:58 PM, Ioi Lam wrote:
> https://bugs.openjdk.java.net/browse/JDK-8169867
> http://cr.openjdk.java.net/~iklam/jdk9/8169867_cds_not_calling_link_method.v01/

Looks good to me.

>
>
> Thanks to Tobias for finding the bug. I have done the following
>
> + integrated Tobias' suggested fix
> + fixed Method::restore_unshareable_info to call Method::link_method
> + added comments and a diagram to illustrate how the CDS method entry
>   trampolines work.
>
> BTW, I am a little unhappy about the name ConstMethod::_adapter_trampoline.
> It's basically an extra level of indirection to get to the adapter.
> However.
> The word "trampoline" usually is used for and extra jump in executable
> code,
> so it may be a little confusing when we use it for a data pointer here.
>
> Any suggest for a better name?

_adapter_cds_entry ?

Thanks,
Vladimir

>
>
> Testing:
> [1] I have tested Tobias' TestInterpreterMethodEntries.java class and
>     now it produces the correct assertion. I won't check in this test,
> though,
>     since it won't assert anymore after Tobias fixes 8169711.
>
> # after -XX: or in .hotspotrc:  SuppressErrorAt=/method.cpp:1035
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  Internal Error
> (/home/iklam/jdk/ul/hotspot/src/share/vm/oops/method.cpp:1035),
> pid=16840, tid=16843
> #  assert(entry != __null && entry == _i2i_entry && entry ==
> _from_interpreted_entry) failed:
> #  should be correctly set during dump time
>
> [2] Ran RBT in fastdebug build for
> hotspot/test/:hotspot_all,vm.parallel_class_loading,vm.runtime.testlist
>     All tests passed.
>
> Thanks
> - Ioi
>


More information about the hotspot-dev mailing list