RFR: 8259067: bootclasspath append takes out object lock [v3]

David Holmes dholmes at openjdk.java.net
Wed Jan 6 22:11:56 UTC 2021


On Wed, 6 Jan 2021 00:18:19 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> See CR for details.
>> I made the classpath append list lock-free.  Calling experts in Atomic operations...
>> Tested with tier1-6.
>> Thanks,
>> Coleen
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Move locking into function where exclusive access is needed.

Hi Coleen,

Just a quick skim, but I think you need acquire/release for the lock-free path.

Thanks,
David

src/hotspot/share/classfile/classLoader.cpp line 837:

> 835:       _last_append_entry = new_entry;
> 836:       assert(first_append_entry() == NULL, "boot loader's append class path entry list not empty");
> 837:       Atomic::store(&_first_append_entry_list, new_entry);

This should probably be `OrderAccess::release_store`.

src/hotspot/share/classfile/classLoader.hpp line 220:

> 218:   static ClassPathEntry* volatile _first_append_entry_list;
> 219:   static ClassPathEntry* first_append_entry() {
> 220:     return Atomic::load(&_first_append_entry_list);

This should probably be a load_acquire.

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

Changes requested by dholmes (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/1935


More information about the serviceability-dev mailing list