RFR: 8344032: InterpreterRuntime::verify_mdp() missing lock while printing MethodData on failure

Aleksey Shipilev shade at openjdk.org
Wed Nov 13 18:38:57 UTC 2024


On Wed, 13 Nov 2024 17:20:48 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

> Added locking.  I injected some MethodData printing with logging to test this to verify that there wasn't a lock ranking assert.
> 
> Tested with tier1-4.

src/hotspot/share/oops/methodData.cpp line 1561:

> 1559: 
> 1560: void MethodData::print_data_on(outputStream* st) const {
> 1561:   MutexLocker ml(extra_data_lock(), Mutex::_no_safepoint_check_flag);

Are we sure nothing calls this method when lock is already held? Safer to use `ConditionalMutexLocker` with self-locked check?

src/hotspot/share/oops/methodData.hpp line 2514:

> 2512:   void clean_method_data(bool always_clean);
> 2513:   void clean_weak_method_links();
> 2514:   Mutex* extra_data_lock() const { return const_cast<Mutex*>(&_extra_data_lock); }

Not sure what this const-ness gains us :)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22082#discussion_r1840981366
PR Review Comment: https://git.openjdk.org/jdk/pull/22082#discussion_r1840981990


More information about the hotspot-dev mailing list